Ë
    }ÜÍjI4  ã                   óÈ   — d Z ddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
 dZd„ Zd„ Zdd„Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Zd„ Zd„ Zd„ Zedk(  r e«        yy)uÌ  
PDF æ–‡å­—ç§»é™¤ï¼šè§£æž�å…§å®¹æµ�ï¼Œç§»é™¤å­—å…ƒä¸­å¿ƒè�½åœ¨æŒ‡å®šçŸ©å½¢å…§çš„æ–‡å­—ï¼ˆå�« Form XObject å…§çš„æ–‡å­—ï¼‰ã€‚
è¢«ç§»é™¤çš„å­—å…ƒä»¥ TJ ä½�ç§»è£œå„Ÿï¼Œå�Œä¸€è¡Œå…¶é¤˜æ–‡å­—ä½�ç½®ä¸�è®Šã€‚

ç”¨æ³•ï¼š pdftool_textedit.py --in in.pdf --out out.pdf --rects rects.json
  rects.json = [{"page":1,"box":[x1,y1,x2,y2]}, ...]   box ç‚ºæœªæ—‹è½‰ã€�åŽŸé»žç‚ºé �é�¢å·¦ä¸‹çš„ä½¿ç”¨è€…åº§æ¨™
è¼¸å‡ºï¼š {"ok":true,"counts":[æ¯�å€‹çŸ©å½¢ç§»é™¤çš„å­—å…ƒæ•¸,...]}
é    N)ÚArrayÚ
DictionaryÚNameÚOperatorÚStreamÚString)ç      ð?ç        r
   r	   r
   r
   c           	      ó&  — | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   | d   |d   z  | d   |d   z  z   |d   z   | d   |d   z  | d   |d   z  z   |d   z   fS )u9   å…ˆå¥—ç”¨ a å†�å¥—ç”¨ bï¼ˆPDF åˆ—å�‘é‡�æ…£ä¾‹ï¼ša Ã— bï¼‰r   é   é   é   é   é   © )ÚaÚbs     úbin/pdftool_textedit.pyÚmmulr      sÝ   € ð 	
ˆ!‰ˆq�‰t‰�a˜‘d˜Q˜q™T‘kÑ! 1 Q¡4¨!¨A©$¡;°°1±¸¸!¹±Ñ#<Ø	ˆ!‰ˆq�‰t‰�a˜‘d˜Q˜q™T‘kÑ! 1 Q¡4¨!¨A©$¡;°°1±¸¸!¹±Ñ#<Ø	ˆ!‰ˆq�‰t‰�a˜‘d˜Q˜q™T‘kÑ! A a¡DÑ(¨!¨A©$°°1±©+¸¸!¹¸qÀ¹t¹Ñ*CÀaÈÁdÑ*Jðð ó    c                 ó^   — | d   |z  | d   |z  z   | d   z   | d   |z  | d   |z  z   | d   z   fS )Nr   r   r   r   r   r   r   )ÚmÚxÚys      r   Úapply_ptr      sI   € Øˆa‰D�1‰H�q˜‘t˜a‘xÑ ! A¡$Ñ&¨¨!©¨q©°1°Q±4¸!±8Ñ(;¸aÀ¹dÑ(BÐCÐCr   c                 ó<   — 	 t        | «      S # t        $ r |cY S w xY w©N)ÚfloatÚ	Exception)ÚoÚdefaults     r   Únumr"   !   s$   € ðÜ�Q‹xˆøÜò ØŠðús   ‚
 �šc                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚFontInfoc                 óL  — d| _         d| _        d| _        i | _        g | _        d| _        	 t        |j                  dd«      «      }|dk(  rad| _         |j                  d	«      d   }t        |j                  d
d«      d«      | _        |j                  d«      }|�õ| j                  |«       y t        t        |j                  dd«      «      «      | _        |j                  d«      }|�tt        |«      D ��ci c]  \  }}| j
                  |z   t        |«      “Œ  c}}| _        d| _        |j                  d«      }|� t        |j                  dd«      «      | _        |dk(  r-|j                  d«      }	|	�t        |	d   d«      dz  nd| _        y y y c c}}w # t        $ r Y y w xY w)NFr	   g     @@r   ú/SubtypeÚ z/Type0Tz/DescendantFontsz/DWiè  ç     @�@z/Wz
/FirstCharz/Widthsr
   z/FontDescriptorz/MissingWidthz/Type3z/FontMatrixgü©ñÒMbP?)ÚtwoÚscaleÚdwÚwidthsÚrangesÚfirstÚstrÚgetr"   Ú_parse_wÚintÚ	enumerater   )
ÚselfÚfdÚsubÚdescÚwÚwsÚiÚvÚfdescÚfms
             r   Ú__init__zFontInfo.__init__)   s„  € ØˆŒØˆŒ
ØˆŒØˆŒØˆŒØˆŒ
ð	Ü�b—f‘f˜Z¨Ó,Ó-ˆCØ�hŠØ�”Ø—v‘vÐ0Ó1°!Ñ4�Ü˜dŸh™h u¨dÓ3°VÓ<�”Ø—H‘H˜T“N�Ø�=Ø—M‘M !Õ$ä ¤ R§V¡V¨L¸!Ó%<Ó!=Ó>�”
Ø—V‘V˜IÓ&�Ø�>ÜFOÐPRÃm×"T¹d¸aÀ 4§:¡:°¡>´3°q³6Ñ#9Ó"T�D”KØ!�D”GØŸF™FÐ#4Ó5�EØÐ(Ü"% e§i¡i°ÀÓ&CÓ"D˜œØ˜(’?ØŸ™ Ó.�BØ?A¸~¤ R¨¡U¨EÓ!2°VÒ!;ÐSV�D•Jð #ð !ùó #Uøô ò 	Ùð	ús,   ¬B F Â-A
F Ã7#FÄA4F ÆF Æ	F#Æ"F#c           	      ó°  — dt        |«      }}||k  rÄt        t        ||   «      «      }|dz   |k  r||dz      nd }t        |t        «      r4t        |«      D ]   \  }}t        |«      | j                  ||z   <   Œ" |dz  }nP|�M|dz   |k  rE| j                  j                  |t        t        |«      «      t        ||dz      «      f«       |dz  }ny ||k  rŒÃy y )Nr   r   r   r   )	Úlenr2   r"   Ú
isinstancer   r3   r,   r-   Úappend)r4   r8   r:   ÚnÚcÚnxtÚkr;   s           r   r1   zFontInfo._parse_wH   sÑ   € Ø”#�a“&ˆ1ˆØ�!ŠeÜ”C˜˜!™“I“ˆAØ !™e aši�!�A˜‘E’(¨TˆCÜ˜#œuÔ%Ü% c›Nò 0‘D�A�qÜ),¨Q«�D—K‘K  A¡Ò&ð0à�Q‘‘Ø� Q¨¡U¨Q¢YØ—‘×"Ñ" A¤s¬3¨s«8£}´c¸!¸AÀ¹E¹(³mÐ#DÔEØ�Q‘‘àð �!�er   c                 óÄ   — | j                   j                  |«      }|€'| j                  D ]  \  }}}||cxk  r|k  sŒn Œ|} n |€| j                  }|| j                  z  S r   )r,   r0   r-   r+   r*   )r4   Úcoder;   r   r   Úwws         r   ÚwidthzFontInfo.widthW   sc   € Ø�K‰K�O‰O˜DÓ!ˆØˆ9Ø ŸK™Kò ‘��1�bØ˜”> –>Ø�AÙðð ˆ9Ø—‘ˆAØ�4—:‘:‰~Ðr   c              #   ó   K  — | j                   rgd}|t        |«      k  rV|dz   t        |«      k  r!|||dz    ||   dz  ||dz      z  f–— |dz  }n|||dz    ||   f–— |dz  }|t        |«      k  rŒUy y |D ]  }t        |g«      |f–— Œ y ­w)Nr   r   r   é   )r)   r@   Úbytes)r4   Údatar:   r   s       r   ÚcodeszFontInfo.codesb   s°   è ø€ Ø�8Š8ØˆAØ”c˜$“i’-Ø�q‘5œ3˜t›9Ò$Ø˜q  Q¡˜-¨$¨q©'°Q©,¸$¸qÀ1¹u¹+Ñ)EÐEÒEØ˜‘F‘Aà˜q  Q¡˜-¨¨a©Ð0Ò0Ø˜‘F�Að ”c˜$“i•-ð ò $�Ü˜Q˜C“j !�mÓ#ñ$ùs   ‚A1BÁ4BN)Ú__name__Ú
__module__Ú__qualname__r>   r1   rJ   rO   r   r   r   r$   r$   (   s   „ òò>ò	ó$r   r$   c                   ó   — e Zd Zd„ Zy)ÚStatec                 ó®   — || _         g | _        t        | _        t        | _        d | _        d| _        d| _        d| _        d| _	        d| _
        d| _        y )Nr
   r	   )ÚctmÚstackÚIDENTÚtmÚtlmÚfontÚfsÚtcÚtwÚthÚtlÚrise)r4   rV   s     r   r>   zState.__init__r   sO   € ØˆŒØˆŒ
ÜˆŒÜˆŒØˆŒ	ØˆŒØˆŒØˆŒØˆŒØˆŒØˆ�	r   N)rP   rQ   rR   r>   r   r   r   rT   rT   q   s   „ ór   rT   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zy)	ÚEditorc                 óV   — || _         || _        dgt        |«      z  | _        i | _        y )Nr   )ÚpdfÚrectsr@   ÚcountsÚ
font_cache)r4   re   rf   s      r   r>   zEditor.__init__�   s)   € ØˆŒØˆŒ
Ø�cœC ›JÑ&ˆŒØˆ�r   c                 ó    — t        | j                  «      D ]6  \  }\  }}}}|dz
  |cxk  r	|dz   k  sŒn Œ |dz
  |cxk  r|dz   k  sŒ2|c S  Œ8 y)Ng      à?éÿÿÿÿ)r3   rf   )r4   r   r   r:   Úx1Úy1Úx2Úy2s           r   Úhitz
Editor.hit‡   sa   € Ü#,¨T¯Z©ZÓ#8ò 	ÑˆAÑ��B˜˜BØ�C‰x˜1Ô(  S¡Ö(¨R°#©X¸Ô-F¸bÀ3¹hÓ-FØ’ñ .Gð	ð r   c                 ó@  — 	 |j                  d«      j                  |«      }|€t        t        «       «      S |j                  st        |«      n|j                  }|| j                  vrt        |«      | j                  |<   | j                  |   S # t        $ r d }Y Œzw xY w)Nz/Font)r0   r   r$   r   Úis_indirectÚidÚobjgenrh   )r4   Ú	resourcesÚnamer5   Úkeys        r   Úfont_forzEditor.font_for�   sŒ   € ð	Ø—‘˜wÓ'×+Ñ+¨DÓ1ˆBð ˆ:ÜœJ›LÓ)Ð)ØŸNšNŒb�Œf°·	±	ˆØ�d—o‘oÑ%Ü#+¨B£<ˆD�O‰O˜CÑ Ø�‰˜sÑ#Ð#øô ò 	ØŠBð	ús   ‚ B ÂBÂBc                 óŽ
  — t        |«      }g }d}|D �]-  \  }	}
t        |
«      }|dk(  r‹|j                  j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  f
«       �ny|dk(  rf|j                  �rg|j                  j                  «       \
  |_        |_        |_        |_        |_        |_	        |_
        |_        |_        |_        �n|dk(  r;t        |	«      dk(  r-t!        t#        d„ |	D «       «      |j                  «      |_        �nÎ|dk(  rt$        |_        t$        |_        �n±|dk(  rFt        |	«      d	k(  r8| j'                  |t        |	d
   «      «      |_        t)        |	d   «      |_        �nf|dk(  rt)        |	d
   «      |_	        �nL|dk(  rt)        |	d
   «      |_
        �n2|dk(  rt)        |	d
   d«      dz  |_        �n|dk(  rt)        |	d
   «      |_        �nú|dk(  rt)        |	d
   «      |_        �nà|dv rkt        |	«      d	k(  r]t)        |	d
   «      t)        |	d   «      }}|dk(  r| |_        t!        dd
d
d||f|j                  «      |_        |j                  |_        �nq|dk(  r?t!        dd
d
dd
|j                   f|j                  «      |_        |j                  |_        �n-|dk(  r8t        |	«      dk(  r*t#        d„ |	D «       «      |_        |j
                  |_        �nð|dv �r­g }|dk(  rRt!        dd
d
dd
|j                   f|j                  «      |_        |j                  |_        g t+        d«      fg}|	d
   g}n¸|dk(  r™t)        |	d
   «      t)        |	d   «      c|_
        |_	        t!        dd
d
dd
|j                   f|j                  «      |_        |j                  |_        |	d
   gt+        d«      f|	d   gt+        d«      fg t+        d«      fg}|	d	   g}n|dk(  r|	d
   g}nt-        |	d
   «      }| j/                  ||«      \  }}|r:d}|j1                  |«       |j                  t3        |«      gt+        d«      f«       nI|dv r2|j1                  |«       |j                  |d
   gt+        d«      f«       n|j                  |	|
f«       �ŒÝ|dk(  r9|dk  r4t        |	«      dk(  r&| j5                  |	d
   ||j                  ||«      }|rd}|j                  |	|
f«       �Œ0 ||fS )NFÚqÚQÚcmé   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   ©r"   ©Ú.0r;   s     r   ú	<genexpr>z!Editor.process.<locals>.<genexpr>¦   s   è ø€ Ò#=¨q¤C¨§FÑ#=ùó   ‚ÚBTÚTfr   r   r   ÚTcÚTwÚTzg      Y@ÚTLÚTs)ÚTdÚTDr‹   zT*ÚTmc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r~   r   s     r   r�   z!Editor.process.<locals>.<genexpr>Á   s   è ø€ Ò7¨œc !ŸfÑ7ùr‚   )ÚTjÚTJú'ú"r�   r‘   rŽ   Tr�   )r�   r‘   ÚDo)rT   r/   rW   rB   rV   rY   rZ   r[   r\   r]   r^   r_   r`   ra   Úpopr@   r   ÚtuplerX   rw   r"   r   ÚlistÚshowÚextendr   Údo_form)r4   Úopsrt   rV   ÚholderÚdepthÚstÚoutÚchangedÚoperandsÚopr    ÚtxÚtyÚpreÚitemsÚ	new_itemsÚremovedÚdones                      r   ÚprocesszEditor.processš   s¥  € Ü�3‹ZˆØˆØˆØó F	'‰LˆH�bÜ�B“ˆAØ�CŠxØ—‘—‘ §¡¨¯©°·±¸¿¹ÀÇÁÈÏÉÈrÏuÉuÐVX×V[ÑV[Ð]_×]bÑ]bÐdf×dkÑdkÐ lÖmØ�c’Ø—8“8Øac×aiÑai×amÑamÓaoÑ^�B”F˜BœE 2¤6¨2¬7°B´E¸2¼5À"Ä%ÈÌÐPRÔPUÐWYÖW^Ø�d’œs 8›}°Ò1ÜœeÑ#=°HÔ#=Ó=¸r¿v¹vÓF�–Ø�d’Ü�”Ü�–Ø�d’œs 8›}°Ò1ØŸ-™-¨	´3°xÀ±{Ó3CÓD�”Ü˜H Q™KÓ(�–Ø�d’Ü˜H Q™KÓ(�–Ø�d’Ü˜H Q™KÓ(�–Ø�d’Ü˜H Q™K¨Ó/°%Ñ7�–Ø�d’Ü˜H Q™KÓ(�–Ø�d’Ü˜h q™kÓ*�–Ø�lÑ"¤s¨8£}¸Ò'9Ü˜X a™[Ó)¬3¨x¸©{Ó+;�B�Ø˜’9Ø˜C�B”EÜ˜q ! Q¨¨2¨rÐ2°B·F±FÓ;�”ØŸ™�–Ø�d’Ü˜q ! Q¨¨1¨r¯u©u¨fÐ5°r·v±vÓ>�”ØŸ™�–Ø�d’œs 8›}°Ò1ÜÑ7¨hÔ7Ó7�”ØŸ™�–ØÐ,Ò,Ø�Ø˜’8Ü! 1 a¨¨A¨q°2·5±5°&Ð"9¸2¿6¹6ÓB�B”FØŸF™F�B”EØ¤¨£Ð/Ð0�CØ% a™[˜M‘EØ˜#’XÜ#& x°¡{Ó#3´S¸À!¹Ó5E�L�B”E˜2œ5Ü! 1 a¨¨A¨q°2·5±5°&Ð"9¸2¿6¹6ÓB�B”FØŸF™F�B”EØ% a™[˜M¬8°D«>Ð:¸hÀq¹k¸]ÌHÐUYËNÐ<[Ð^`ÔbjÐkoÓbpÐ]qÐr�CØ% a™[˜M‘EØ˜$’YØ% a™[˜M‘Eä  ¨!¡Ó-�EØ%)§Y¡Y¨r°5Ó%9Ñ"�	˜7ÙØ"�GØ—J‘J˜s”OØ—J‘J¤ yÓ!1Ð 2´H¸T³NÐCÕDà˜J‘ØŸ
™
 3œØŸ
™
 U¨1¡X J´¸³Ð#?Õ@àŸ
™
 H¨b >Ô2ÙØ�d’˜u qšy¬S°«]¸aÒ-?Ø—|‘| H¨Q¡K°¸B¿F¹FÀFÈEÓR�ÙØ"�GØ�J‰J˜ "�~Ö&ðMF	'ðN �Gˆ|Ðr   c           
      ór  — |j                   xs t        t        «       «      }|j                  |j                  }}g }d}d}|D �]Ó  }	t        |	t        «      �rZt        |	«      }
|j                  |
«      D �]8  \  }}|j                  |«      }|dz  |z  |j                  z   t        |«      dk(  r|dk(  r|j                  ndz   |z  }|dz  |z  |z  d|z  |j                  z   }}t        t        |j                   |j"                  «      ||«      \  }}|r| j%                  ||«      nd	}|d
k\  r[||z  d
k7  rS| j&                  |xx   dz  cc<   d}|r|j)                  t        |«      «       d}|j)                  | dz  ||z  z  «       n||z  }t        dd
d
d|d
f|j                   «      |_        �Œ; �Œot+        |	«      }|r|j)                  t        |«      «       d}|j)                  |	«       t        dd
d
d| dz  |z  |z  d
f|j                   «      |_        �ŒÖ |r|j)                  t        |«      «       ||fS )uH   å›žå‚³ (æ–°çš„ TJ é™£åˆ—å…ƒç´ , æ˜¯å�¦ç§»é™¤äº†å­—å…ƒ)ï¼Œä¸¦æ›´æ–° st.tmr   Fr(   r   é    r
   g     @Ÿ@g333333Ó?rj   r   T)r[   r$   r   r\   r_   rA   r   rM   rO   rJ   r]   r@   r^   ra   r   r   rY   rV   ro   rg   rB   r"   )r4   rœ   r¤   r[   r\   r_   ÚnewÚbufÚremoved_anyÚitrN   ÚchunkrH   r8   r¡   ÚcxÚcyÚpxÚpyÚidxrC   s                        r   r–   zEditor.showç   s  € à�w‰wÒ0œ(¤:£<Ó0ˆØ—‘˜Ÿ™ˆBˆØˆØˆØˆØó 	LˆBÜ˜"œfÕ%Ü˜R“y�Ø#'§:¡:¨dÓ#3ó =‘K�E˜4ØŸ
™
 4Ó(�AØ˜f™* r™/¨B¯E©EÑ1¼sÀ5»zÈQºÐSWÐ[]ÒS]°R·U²UÐdgÑhÐlnÑn�BØ ™Z¨"™_¨rÑ1°3¸±8¸b¿g¹gÑ3E˜�BÜ%¤d¨2¯5©5°"·&±&Ó&9¸2¸rÓB‘F�B˜Ù.0˜$Ÿ(™( 2 rÔ*°b�CØ˜a’x B¨¡G¨q¢LØŸ™ CÓ(¨AÑ-Ó(Ø&*˜ÙØŸJ™J¤v¨c£{Ô3Ø"%˜CØŸ
™
 B 3¨¡<°2¸±7Ñ#;Õ<à˜u™˜Ü  ! Q¨¨1¨b°!Ð!4°b·e±eÓ<�B–Eò=ô" ˜“G�ÙØ—J‘Jœv c›{Ô+Ø�CØ—
‘
˜2”Ü˜a  A q¨1¨"¨v©+¸Ñ*:¸RÑ*?ÀÐCÀRÇUÁUÓK�–ð3	Lñ4 Ø�J‰J”v˜c“{Ô#Ø�KÐÐr   c                 ó$  — 	 |j                  d«      }|j                  |«      }|�t        |j                  dd«      «      dk7  ry|j                  d«      }|� t        |«      dk(  rt	        d„ |D «       «      nt
        }	|j                  d	«      xs |}
	 t        t        j                  |«      «      }t        |
j                  «       D ��ci c]  \  }}||“Œ
 c}}«      }|
j                  d«      }|�-t        |j                  «       D ��ci c]  \  }}||“Œ
 c}}«      n	t        «       }||d<   | j                  ||t        |	|«      d
|i|dz   «      \  }}|sy| j                  j                  t        j                  |«      «      }|j                  «       D ]  \  }}|dvsŒ|||<   Œ | j                  j!                  |«      |d	<   | j                  j!                  |«      |d
   |<   y# t        $ r Y yw xY w# t        $ r Y yw xY wc c}}w c c}}w )Nú/XObjectFr&   r'   z/Formz/Matrixr|   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r~   r   s     r   r�   z!Editor.do_form.<locals>.<genexpr>  s   è ø€ Ò%˜a”3�q—6Ñ%ùr‚   ú
/ResourcesÚxobjr   )z/Lengthz/Filterz/DecodeParmsT)r0   r   r/   r@   r”   rX   r•   ÚpikepdfÚparse_content_streamr   r¤   r¨   r   re   Úmake_streamÚunparse_content_streamÚmake_indirect)r4   ru   rt   rV   rš   r›   ÚxoÚformr   r=   Úsub_resÚsub_opsrF   r;   ÚownÚsxÚown_xoÚnew_opsrž   Únew_forms                       r   r˜   zEditor.do_form  së  € ð	Ø—‘˜zÓ*ˆBØ—6‘6˜$“<ˆDð ˆ<œ3˜tŸx™x¨
°BÓ7Ó8¸GÒCØØ�H‰H�YÓˆØ)*¨¼3¸q»6ÀQº;ŒUÑ% 1Ô%Ô%ÌEˆØ—(‘(˜<Ó(Ò5¨Iˆð	Üœ7×7Ñ7¸Ó=Ó>ˆGô ¨7¯=©=«?×;¡4 1 a˜!˜Q™$Ó;Ó<ˆØ�[‰[˜Ó$ˆØ>@¸n”¨b¯h©h«j×9¡d a¨˜Q ™TÓ9Ô:ÔR\ÓR^ˆØ ˆˆJ‰ØŸ<™<¨°´d¸2¸s³mÀfÈfÐEUÐW\Ð_`ÑW`ÓaÑˆ�ÙØà—8‘8×'Ñ'¬×(FÑ(FÀwÓ(OÓPˆØ—J‘J“Lò 	 ‰DˆAˆqØÐ>Ò>Ø�˜’ð	 ð "&§¡×!7Ñ!7¸Ó!<ˆ�ÑØ#Ÿx™x×5Ñ5°hÓ?ˆˆv‰�tÑØøô3 ò 	Ùð	ûô ò 	Ùð	üã;ùã9s/   ‚"G( ÂG7 Ã
H
Ä
H
Ç(	G4Ç3G4Ç7	HÈHN)r   )	rP   rQ   rR   r>   ro   rw   r¨   r–   r˜   r   r   r   rc   rc   €   s#   „ òòò
$óKòZ# óJr   rc   c                 ó„   — | j                   }|�)|j                  d«      }|�|S |j                  d«      }|�Œ)t        «       S )Nr¸   z/Parent)Úobjr0   r   )ÚpageÚnodeÚrs      r   Úfind_resourcesrÍ   ,  sI   € Ø�8‰8€DØ
Ð
Ø�H‰H�\Ó"ˆØˆ=ØˆHØ�x‰x˜	Ó"ˆð	 Ñ
ô
 ‹<Ðr   c                 ól  — d\  }}|j                   j                  d«      xs |j                   j                  d«      }|�t        |d   «      t        |d   «      }}|D �cg c]   }|d   |z   |d   |z   |d   |z   |d   |z   f‘Œ" c}|_        t	        |«      }t        |j                  «       D �	�
ci c]  \  }	}
|	|
“Œ
 c}
}	«      }|j                  d«      }|�-t        |j                  «       D �	�
ci c]  \  }	}
|	|
“Œ
 c}
}	«      n	t        «       }||d<   t        t        j                  |«      «      }d	|i}|j                  ||t        |d«      \  }}|rO| j                  |«      |j                   d
<   | j                  t        j                  |«      «      |j                   d<   |S c c}w c c}
}	w c c}
}	w )N)r
   r
   z/CropBoxz	/MediaBoxr   r   r   r   r¶   r¹   r¸   z	/Contents)rÉ   r0   r"   rf   rÍ   r   r¤   r•   rº   r»   r¨   rX   r¾   r¼   r½   )re   rÊ   Ú
rects_userÚedÚoxÚoyÚboxrÌ   ÚresrF   r;   Úown_resr¿   rÅ   r™   rš   rÆ   rž   s                     r   Ú	edit_pagerÖ   6  sƒ  € Ø�F€BˆØ
�(‰(�,‰,�zÓ
"Ò
? d§h¡h§l¡l°;Ó&?€CØ
€Ü�S˜‘V“œc # a¡&›kˆBˆØFPÖQÀ��1‘˜‘˜A˜a™D 2™I q¨¡t¨b¡y°!°A±$¸±)Ò<ÒQ€B„HÜ
˜Ó
€Cä¨3¯9©9«;×7¡4 1 a˜!˜Q™$Ó7Ó8€GØ	�‰�Ó	€BØ:<¸.ŒZ¨"¯(©(«*×5¡$ ! Q˜˜A™Ó5Ô6ÌjËl€FØ €GˆJÑÜ
Œw×+Ñ+¨DÓ1Ó
2€CØ�fÐ€FØ—z‘z # w´°v¸qÓAÑ€GˆWÙØ!$×!2Ñ!2°7Ó!;ˆ�‰�ÑØ #§¡´×0NÑ0NÈwÓ0WÓ Xˆ�‰�ÑØ€Nùò Rùó 8ùã5s   Á %F%Â0F*
Ã0F0
c                  ó  — t        j                  «       } | j                  ddd¬«       | j                  dd¬«       | j                  dd¬«       | j                  «       }	 t	        |j
                  d¬	«      5 }t        j                  |«      }d d d «       t        j                  |j                  «      }t        |g «      }d
gt        «      z  }i }t        |«      D ]N  \  }}	|j                  t        |	d   «      g «      j                  ||	d   D �
cg c]  }
t!        |
«      ‘Œ c}
f«       ŒP d
}|j#                  «       D ]•  \  }}|dk  s|t        |j$                  «      kD  rŒ$d
gt        |«      z  |_        t)        ||j$                  |dz
     |D ��cg c]  \  }}|‘Œ	 c}}|«      r|dz  }t        |«      D ]  \  }\  }}|j&                  |   ||<   Œ Œ— |j+                  |j,                  «       t/        t        j0                  d||dœ«      «       y # 1 sw Y   �ŒŠxY wc c}
w c c}}w # t2        $ rN}t/        t        j0                  dt5        |«      d d dœd¬«      «       t7        j8                  d«       Y d }~y d }~ww xY w)Nz--inÚinpT)ÚdestÚrequiredz--out)rÚ   z--rectszutf-8)Úencodingr   rÊ   rÓ   r   )Úokrg   Úpages_changedFi,  )rÜ   Úerror)Úensure_asciir   )ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsÚopenrf   ÚjsonÚloadrº   rØ   rc   r@   r3   Ú
setdefaultr2   rB   r   r¤   Úpagesrg   rÖ   Úsaver�   ÚprintÚdumpsr   r/   ÚsysÚexit)Úapr   Úfrf   re   rÐ   rg   Úby_pager:   rÌ   r;   Úchanged_pagesÚpnoÚlstÚ_r   rF   Úes                     r   Úmainrö   K  s+  € Ü	×	 Ñ	 Ó	"€BØ‡O�O�F °€OÔ6Ø‡O�O�G d€OÔ+Ø‡O�O�I¨€OÔ-Ø
�‰‹€AðÜ�!—'‘' GÔ,ð 	!°Ü—I‘I˜a“LˆE÷	!ä�l‰l˜1Ÿ5™5Ó!ˆÜ�C˜‹_ˆØ�”s˜5“zÑ!ˆØˆÜ˜eÓ$ò 	]‰DˆAˆqØ×Ñœs 1 V¡9›~¨rÓ2×9Ñ9¸1ÐQRÐSXÑQYÖ>ZÈA¼uÀQ½xÒ>ZÐ:[Õ\ð	]àˆØŸ™›ò 	)‰HˆC�Ø�QŠw˜#¤ C§I¡I£Ò.ØØ˜œc #›h™ˆBŒIÜ˜˜cŸi™i¨¨a©Ñ0À×2E¹¸¸A²1Ó2EÀrÔJØ Ñ"�Ü& s›^ò )‘	�‘6�A�qØŸI™I a™L��q’	ñ)ð	)ð 	�‰�—‘ŒÜŒd�j‰j °ÈÑWÓXÕY÷%	!ñ 	!üò ?[ùó 3Føô ò ÜŒd�j‰j ´°A³°t¸°Ñ=ÈEÔRÔSÜ�‰��‰ûðúsL   Á H- Á7HÂBH- ÄH"Ä#A0H- ÆH'ÆA5H- ÈHÈH- È-	JÈ6AI?É?JÚ__main__)r
   )Ú__doc__rà   rå   rì   rº   r   r   r   r   r   r   rX   r   r   r"   r$   rT   rc   rÍ   rÖ   rö   rP   r   r   r   ú<module>rù      sz   ðñó Û Û 
ã ß E× Eà&€òòDó÷F$ñ F$÷Rñ ÷iñ iòXòò*ð> ˆzÒÙ…Fð r   