Ë
    ¨ŒjLŸ  ã                   óî   — d dl 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 ddl	m
Z
 d„ Zd„ Zdd„Zd„ Zd	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e!dk(  r e «        yy)é    N)ÚDictÚListÚSeté   )Úpymupdfc                 ó,   — d| z  j                  dd«      S )Nz %s éK   Ú-)Úcenter)Úxs    úZ/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pymupdf/__main__.pyÚmycenterr      s   € Ø�Q‰J×Ñ˜r 3Ó'Ð'ó    c                 ó   — |d   }|d   }|dk(  r| j                  |«      S d„ }t        j                  | |«      }t        j                  | |«      }	 |j                  |j                  k(  r1|j                  |j                  cxk(  rdk(  rn n|j
                  dk(  s9t        j                  d||fz  «       t        j                  |«       d} ||«      S t        j                  |«      }|j                  |j                  «       dx}} ||«      S )zReturn image for a given XREF.r   r   c                 ó„   — | j                   j                  dk7  r| S t        j                  t        j                  | «      }|S )Né   )Ú
colorspaceÚnr   ÚPixmapÚcsRGB)ÚpixÚtpixs     r   Úgetimagezrecoverpix.<locals>.getimage   s2   € Ø�>‰>×Ñ˜qÒ ØˆJÜ�~‰~œgŸm™m¨SÓ1ˆØˆr   z&Warning: unsupported /SMask %i for %i:N)	Úextract_imager   r   ÚirectÚalphar   ÚmessageÚ	set_alphaÚsamples)ÚdocÚitemr   Úsr   Úpix1Úpix2r   s           r   Ú
recoverpixr%      sî   € àˆQ‰€AØˆQ‰€AØˆA‚vØ× Ñ  Ó#Ð#òô �>‰>˜#˜qÓ!€DÜ�>‰>˜#˜qÓ!€Dðð
 �J‰J˜$Ÿ*™*Ò$¨¯©°t·z±zÔ)FÀQÕ)FÈ4Ï6É6ÐUVÊ;Ü�‰Ð@ÀAÀqÀ6ÑIÔJÜ�‰˜ÔØˆÙ˜‹~Ðä
�.‰.˜Ó
€CØ‡M�M�$—,‘,ÔØÐ€Dˆ4ñ �C‹=Ðr   c                 ó|  — t        j                  | «      }|j                  s|du rt        j                  d«       d}|j
                  s|S |rM|j                  |«      }|st        j                  d«       |du rt        j                  |dkD  rddz  nd«       |S t        j                  d	|j                  z  «       |S )
z!Open and authenticate a document.Tz$this command supports PDF files onlyéÿÿÿÿzauthentication unsuccessfulé   zauthenticated as %sÚownerÚuserz'%s' requires a password)	r   ÚopenÚis_pdfÚsysÚexitÚ
needs_passÚauthenticater   Úname)ÚfilenameÚpasswordÚshowÚpdfr    Úrcs         r   Ú	open_filer7   9   s£   € ä
�,‰,�xÓ
 €CØ�:Š:˜# ™+Ü�‰Ð7Ô8Ø	€BØ�>Š>Øˆ
ÙØ×Ñ˜hÓ'ˆÙÜ�H‰HÐ2Ô3Ø�4‰<Ü�O‰O¸rÀAºvÐ1°GÒ;È6ÔRð €Jô 	�‰Ð+¨c¯h©hÑ6Ô7Ø€Jr   c                 óú   — t        | j                  «       D �cg c]  }t        |«      ‘Œ c}«      dz   }| j                  «       D ]0  \  }}|j	                  |«      ›d|›�}t        j                  |«       Œ2 yc c}w )zPrint a Python dictionary.r   ú: N)ÚmaxÚkeysÚlenÚitemsÚrjustr   r   )r!   ÚkÚlÚvÚmsgs        r   Ú
print_dictrC   L   sa   € ä˜TŸY™Yœ[Ó)™[˜ŒS��V˜[Ñ)Ó*¨QÑ.€AØ—
‘
–‰ˆˆ1ØŸ'™' !�*¡aÐ(ˆÜ�‰˜Õñ ùò *s   ˜A8c                 óÂ  — t        j                  d|z  «       | j                  |«      }t        j                  |«       | j                  |«      rj|j	                  «       }	 |j                  d«      dz   }||   }|j                  d«      rd}t        j                  d|z  «       t        j                  d«       t        j                  d«       y	# t        $ r d}Y ŒPw xY w)
z�Print an object given by XREF number.

    Simulate the PDF source in "pretty" format.
    For a stream also print its size.
    z%i 0 objz/Lengthr   z0 RÚunknownzstream
...%s bytesÚ	endstreamÚendobjN)r   r   Úxref_objectÚxref_is_streamÚsplitÚindexÚendswithÚ	Exception)r    ÚxrefÚxref_strÚtempÚidxÚsizes         r   Ú
print_xrefrS   T   s½   € ô ‡O�O�J Ñ%Ô&Ø�‰˜tÓ$€HÜ‡O�O�HÔØ
×Ñ˜$ÔØ�~‰~Óˆð	Ø—*‘*˜YÓ'¨!Ñ+ˆCØ˜‘9ˆDØ�}‰}˜UÔ#Ø �ô 	�‰Ð-°Ñ4Ô5Ü�‰˜Ô$Ü‡O�O�HÕøô	 ò 	ØŠDð	ús   Á!,C ÃCÃCc           	      ó:  — t        |dz
  «      }| j                  d|«      j                  dd«      } | j                  d«      }g }t        |«      D �]  \  }}|dz   }|j	                  «       rOt        |«      }	d|	cxk  r|k  rn n|j                  t        |«      «       nt        j                  d||fz  «       Œk	 |j                  d«      \  }
}t        |
«      }
t        |«      }d
cxk  r|k  rn ndcxk  r|k  sn t        j                  d||fz  «       |
k(  r|j                  |
«       Œâ|
|k  r|t        t        |
|dz   «      «      z  }�Œ|t        t        |
|dz
  d	«      «      z  }�Œ" |S # t        $ r t        j                  d||fz  «       Y Œ´w xY w)
aK  Transform a page / xref specification into a list of integers.

    Args
    ----
        rlist: (str) the specification
        limit: maximum number, i.e. number of pages, number of objects
        what: a string to be used in error messages
    Returns
    -------
        A list of integers representing the specification.
    r   ÚNÚ Ú Ú,zbad %s specification at item %ir
   z%bad %s range specification at item %ir'   )ÚstrÚreplacerJ   Ú	enumerateÚ	isdecimalÚintÚappendr-   r.   rM   ÚlistÚrange)ÚrlistÚlimitÚwhatrU   Ú	rlist_arrÚout_listÚseqr!   r   ÚiÚi1Úi2s               r   Úget_listrj   k   s}  € ô 	ˆE�A‰I‹€AØ�M‰M˜#˜qÓ!×)Ñ)¨#¨rÓ2€EØ—‘˜CÓ €IØ€HÜ˜y×)‰	ˆˆTØ�!‰GˆØ�>‰>ÔÜ�D“	ˆAØ�AŒ~˜�~Ø—‘¤ D£	Õ*ä—‘Ð:¸dÀA¸YÑFÔGØð	JØ—Z‘Z “_‰FˆB�Ü�R“ˆBÜ�R“ˆBð �R”˜%• A¨¤O¨e¤OÜ�H‰HÐ<ÀÀa¸yÑHÔIà�Š8Ø�O‰O˜BÔØà�Š7ØœœU 2 r¨A¡vÓ.Ó/Ñ/ŠHàœœU 2 r¨A¡v¨rÓ2Ó3Ñ3ŠHð5 *ð8 €Oøô ò 	JÜ�H‰HÐ<ÀÀa¸yÑHÖIð	Jús   Â;*E4Å4#FÆFc                 óò  — t        | j                  | j                  d«      }t        j                  j                  | j                  «      dz  }d}|dkD  r|dz  }d}t        |d«      }|j                  }t        j                  d| j                  |j                  |j                  «       dz
  |||d   |d	   fz  «       |j                  }|d
kD  r1|j                  «       }t        j                  d||dk7  rdndfz  «       |j                  «       }|d
kD  rt        j                  d|z  «       t        j                  «        | j                  rNt        j                  t!        d«      «       |j#                  «       }t%        ||«       t        j                  «        | j                  rGt        j                  t!        d«      «       t'        |j                  «       t        j                  «        | j(                  rkt        j                  t!        d«      «       t+        | j(                  |j                  «       d¬«      }|D ]"  }t%        ||«       t        j                  «        Œ$ | j,                  r–t        j                  t!        d«      «       t+        | j,                  |j                  dz   «      }	|	D ]P  }
|
dz
  }|j/                  |«      }t        j                  d|
z  «       t%        ||«       t        j                  «        ŒR | j0                  rUt        j                  t!        d«      «       t        j                  |j3                  «       «       t        j                  «        |j5                  «        y )NTi   ÚKBiè  ÚMBr   z7'%s', pages: %i, objects: %i, %g %s, %s, encryption: %sÚformatÚ
encryptionr   z5document contains %i root form fields and is %ssignedé   znot rW   z#document contains %i embedded fileszPDF catalogzPDF metadatazobject informationrN   )rc   zpage informationzPage %i:zPDF trailer)r7   Úinputr3   ÚosÚpathÚgetsizeÚroundÚmetadatar   r   Ú
page_countÚxref_lengthÚis_form_pdfÚget_sigflagsÚembfile_countÚcatalogr   Úpdf_catalogrS   rC   Úxrefsrj   ÚpagesÚ	page_xrefÚtrailerÚpdf_trailerÚclose)Úargsr    rR   ÚflagÚmetar   r"   rN   ÚxreflÚpagelÚpnos              r   r4   r4   š   s“  € Ü
�D—J‘J §¡¨tÓ
4€CÜ�7‰7�?‰?˜4Ÿ:™:Ó&¨Ñ-€DØ€DØˆd‚{Ø�‰ˆØˆÜ��q‹>€DØ�<‰<€DÜ‡O�OØAà�J‰JØ�N‰NØ�O‰OÓ Ñ!ØØØ�‰NØ�Ñð
ñ		
ôð 	�‰€AØˆ1‚uØ×ÑÓˆÜ�‰ØCØ˜A šF‘&¨Ð+ñ,ô	
ð 	×ÑÓ€AØˆ1‚uÜ�‰Ð=ÀÑAÔBÜ‡O�OÔØ‡|‚|Ü�‰œ Ó/Ô0Ø�‰Ó ˆÜ�3˜ÔÜ�‰ÔØ‡}‚}Ü�‰œ Ó0Ô1Ü�3—<‘<Ô Ü�‰ÔØ‡z‚zÜ�‰œÐ!5Ó6Ô7Ü˜Ÿ™ S§_¡_Ó%6¸VÔDˆÛˆDÜ�s˜DÔ!Ü�O‰OÕð ð ‡z‚zÜ�‰œÐ!3Ó4Ô5Ü˜Ÿ™ S§^¡^°aÑ%7Ó8ˆÛˆCØ�a‘ˆAØ—=‘= Ó#ˆDÜ�O‰O˜J¨Ñ,Ô-Ü�s˜DÔ!Ü�O‰OÕð ð ‡|‚|Ü�‰œ Ó/Ô0Ü�‰˜Ÿ™Ó)Ô*Ü�‰ÔØ‡I�I…Kr   c                 óŠ  — t        | j                  | j                  d¬«      }| j                  }dj	                  |«      }| j
                  s�|j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  || j                  | j                  | j                   ¬«       y t#        | j
                  |j$                  dz   «      }t'        j(                  «       }|D ]  }|dz
  }|j+                  |||¬«       Œ |j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  || j                  | j                  | j                   ¬«       |j-                  «        |j-                  «        y )NT©r5   ©ÚkeepÚnonezrc4-40zrc4-128zaes-128zaes-256)
ÚgarbageÚdeflateÚprettyÚcleanÚasciiÚlinearro   Úowner_pwÚuser_pwÚpermissionsr   ©Ú	from_pageÚto_page)r7   rq   r3   ro   rK   r   ÚsaveÚoutputr�   Úcompressr‘   Úsanitizer“   r”   r)   r*   Ú
permissionrj   rw   r   r+   Ú
insert_pdfrƒ   )r„   r    ro   Úencryptr   Úoutdocr‰   r   s           r   r’   r’   Ù   s]  € Ü
�D—J‘J §¡°4Ô
8€CØ—‘€JØI×OÑOØó€Gð �:Š:Ø�‰Ø�K‰KØ—L‘LØ—M‘MØ—;‘;Ø—-‘-Ø—*‘*Ø—;‘;ØØ—Z‘ZØ—I‘IØŸ™ð 	ô 	
ð 	ô �T—Z‘Z §¡°!Ñ!3Ó4€EÜ�\‰\‹^€FÛˆØ�!‰GˆØ×Ñ˜#¨°AÐÕ6ð ð ‡K�KØ�‰Ø—‘Ø—‘Ø�{‰{Ø�m‰mØ�j‰jØ�{‰{ØØ—‘Ø—	‘	Ø—O‘Oð ô ð ‡I�I„KØ
‡L�L„NØ
r   c                 ó4  — | j                   }t        j                  «       }|D ]Å  }|j                  d«      }t	        |«      dkD  r|d   nd}t        |d   |d¬«      }dj                  |dd «      }|r,t        dj                  |dd «      |j                  dz   «      }nt        d|j                  dz   «      }|D ]  }	|j                  ||	dz
  |	dz
  ¬«       Œ |j                  «        ŒÇ |j                  | j                  d	d¬
«       |j                  «        y)z&Join pages from several PDF documents.rX   r   Nr   Tr‹   r(   r˜   r   )r�   r�   )rq   r   r+   rJ   r<   r7   Újoinrj   rw   r`   r    rƒ   r›   rœ   )
r„   Údoc_listr    Úsrc_itemÚsrc_listr3   Úsrcr   Ú	page_listrg   s
             r   Údoc_joinrª     sô   € à�z‰z€HÜ
�,‰,‹.€CÛˆØ—>‘> #Ó&ˆÜ"% h£-°!Ò"3�8˜A’;¸ˆÜ˜ ™ X°4Ô8ˆØ—‘˜ ! "˜Ó&ˆÙÜ  §¡¨(°1°2¨,Ó!7¸¿¹È!Ñ9KÓL‰Iä˜a §¡°!Ñ!3Ó4ˆIÛˆAØ�N‰N˜3¨!¨a©%¸¸Q¹ˆNÕ?ð à�	‰	�ð ð ‡H�HˆT�[‰[ !¨T€HÔ2Ø‡I�I…Kr   c           	      óP  — t        | j                  | j                  d¬«      }|j                  «       s:| j                  r| j                  | j                  k(  rt        j                  d«       t        | j                  | j                  «      }| j                  rt        | j                  «      n	t        «       }t        |j                  «       «      }|r||k  st        j                  d«       n|}|st        j                  d«       |t        |j                  «       «      z  }|r!t        j                  dt        |«      z  «       |D ]i  }|j                  |«      }|j                  |«      }|j                  |||d   |d   |d	   ¬
«       t!        j"                  d|›d|j                  ›d�«       Œk |j%                  «        | j                  r7| j                  | j                  k7  r|j'                  | j                  d¬«       n|j)                  «        |j%                  «        y)z!Copy embedded files between PDFs.Tr‹   úcannot save PDF incrementallyz%not all names are contained in sourceznothing to copyz2following names already exist in receiving PDF: %sr2   Ú	ufilenameÚdesc©r2   r­   r®   zcopied entry 'z' from 'Ú'rp   ©r�   N)r7   rq   r3   Úcan_save_incrementallyrœ   r-   r.   ÚsourceÚ	pwdsourcer1   ÚsetÚembfile_namesrY   Úembfile_infoÚembfile_getÚembfile_addr   r   rƒ   r›   ÚsaveIncr)	r„   r    r¨   ÚnamesÚ	src_namesÚ	intersectr!   ÚinfoÚbuffs	            r   Úembedded_copyrÀ     s—  € ä
�D—J‘J §¡°4Ô
8€CØ×%Ñ%Ô'Ø�KŠK˜4Ÿ;™;¨$¯*©*Ò4ä�‰Ð0Ô1Ü
�D—K‘K §¡Ó
0€CØ"ŸišiŒC�—	‘	ŒN¬S«U€EÜ�C×%Ñ%Ó'Ó(€IÙØ˜	Ò!Ü�H‰HÐ<Õ=àˆÙÜ�‰Ð"Ô#Øœ˜C×-Ñ-Ó/Ó0Ñ0€IÙÜ�‰ÐEÌÈIËÑVÔWãˆØ×Ñ Ó%ˆØ�‰˜tÓ$ˆØ�‰ØØØ˜*Ñ%Ø˜;Ñ'Ø�f‘ð 	ô 	
ô 	�Šº¸s¿x»xÐHÕIð ð ‡I�I„KØ‡{‚{�t—{‘{ d§j¡jÒ0Ø�‰�—‘ aˆÕ(à�‰ŒØ‡I�I…Kr   c                 ó„  — t        | j                  | j                  d¬«      }|j                  «       s:| j                  r| j                  | j                  k(  rt        j                  d«       	 |j                  | j                  «       | j                  r| j                  | j                  k(  r|j                  «        n|j                  | j                  d¬«       |j                  «        y# t        t        j                  j                  f$ r/}t        j                  d| j                  ›d|› �«       Y d}~Œ±d}~ww xY w)	zDelete an embedded file entry.Tr‹   r¬   úno such embedded file r9   Nr   r±   )r7   rq   r3   r²   rœ   r-   r.   Úembfile_delr1   Ú
ValueErrorr   ÚmupdfÚFzErrorBaserº   r›   rƒ   )r„   r    Úes      r   Úembedded_delrÈ   E  sÜ   € ä
�D—J‘J §¡°4Ô
8€CØ×%Ñ%Ô'Ø�KŠK˜4Ÿ;™;¨$¯*©*Ò4ä�‰Ð0Ô1ð>Ø�‰˜Ÿ	™	Ô"ð �;Š;˜$Ÿ+™+¨¯©Ò3Ø�‰�à�‰�—‘ aˆÔ(Ø‡I�I…Køô œŸ™×1Ñ1Ð2ò >Ü�‰Ð)¨$¯)©)¨°b¸¸Ð<×=Ñ=ûð>ús   Á.C- Ã-#D?Ä%D:Ä:D?c                 ój  — t        | j                  | j                  d¬«      }	 |j                  | j                  «      }|j                  | j                  «      }| j                  r| j                  nd   }t        |d«      5 }|j                  «       ddd«       t        j                  d| j                  ›d	|›d
�«       |j!                  «        y# t        t        j                  j                  f$ r/}t        j                  d| j                  ›d|› �«       Y d}~ŒÇd}~ww xY w# 1 sw Y   Œ•xY w)z&Retrieve contents of an embedded file.Tr‹   rÂ   r9   Nr2   Úwbzsaved entry 'z' as 'r°   )r7   rq   r3   r¸   r1   r·   rÄ   r   rÅ   rÆ   r-   r.   rœ   r+   Úwriter   rƒ   )r„   r    ÚstreamÚdrÇ   r2   rœ   s          r   Úembedded_getrÎ   X  sà   € ä
�D—J‘J §¡°4Ô
8€Cð>Ø—‘ §¡Ó+ˆØ×Ñ˜TŸY™YÓ'ˆð #Ÿkškˆt�{Š{¨q°©}€HÜ	ˆh˜Ô	 Ø�‰�VÔ÷ 
ä‡O‚O°$·)³)ºXÐFÔGØ‡I�I…Køô œŸ™×1Ñ1Ð2ò >Ü�‰Ð)¨$¯)©)¨°b¸¸Ð<×=Ñ=ûð>ú÷ 
Ð	ús#   ¤6C ÂD)Ã#D&Ã7%D!Ä!D&Ä)D2c                 ó.  — t        | j                  | j                  d¬«      }|j                  «       s:| j                  �| j                  | j                  k(  rt        j                  d«       	 |j                  | j                  «       t        j                  d| j                  z  «       t        j                  j                  | j                  «      r)t        j                  j                  | j                  «      s"t        j                  d| j                  z  «       t        | j                  d«      5 }|j                  «       }ddd«       | j                  }|}| j                   s|}n| j                   }|j#                  | j                  |||¬«       | j                  r| j                  | j                  k(  r|j%                  «        n|j'                  | j                  d	¬
«       |j)                  «        y# t        $ r Y �Œ\w xY w# 1 sw Y   ŒÆxY w)zInsert a new embedded file.Tr‹   Nr¬   zentry '%s' already existszno such file '%s'Úrbr¯   rp   r±   )r7   rq   r3   r²   rœ   r-   r.   rÃ   r1   rM   rr   rs   ÚexistsÚisfiler+   Úreadr®   r¹   rº   r›   rƒ   ©r„   r    ÚfrÌ   r2   r­   r®   s          r   Úembedded_addrÖ   g  sr  € ä
�D—J‘J §¡°4Ô
8€CØ×%Ñ%Ô'Ø�‰Ð˜tŸ{™{¨d¯j©jÒ8ä�‰Ð0Ô1ðØ�‰˜Ÿ	™	Ô"Ü�‰Ð,¨t¯y©yÑ8Ô9ô �7‰7�>‰>˜$Ÿ)™)Ô$¬B¯G©G¯N©N¸4¿9¹9Ô,EÜ�‰Ð$ t§y¡yÑ0Ô1Ü	ˆd�i‰i˜Ô	 !Ø—‘“ˆ÷ 
à�y‰y€HØ€IØ�9Š9Ø‰à�y‰yˆØ‡O�OØ�	‰	�6 H¸	Èð ô ð �;Š;˜$Ÿ+™+¨¯©Ò3Ø�‰�à�‰�—‘ aˆÔ(Ø‡I�I…Køô) ò Úðú÷
 
Ð	ús   Á.=G; Ä5HÇ;	HÈHÈHc                 óŒ  — t        | j                  | j                  d¬«      }|j                  «       s:| j                  �| j                  | j                  k(  rt        j                  d«       	 |j                  | j                  «       | j                  �‚t        j                  j                  | j                  «      rYt        j                  j                  | j                  «      r0t        | j                  d«      5 }|j                  «       }ddd«       nd}| j                   r| j                   }nd}| j"                  r| j"                  }n| j                   r| j                   }nd}| j$                  r| j$                  }nd}|j'                  | j                  |||¬«       | j                  �| j                  | j                  k(  r|j)                  «        n|j+                  | j                  d¬	«       |j-                  «        y# t        $ r& t        j                  d| j                  z  «       Y �Œ¬w xY w# 1 sw Y   �Œ*xY w)
z0Update contents or metadata of an embedded file.Tr‹   Nr¬   úno such embedded file '%s'rÐ   r¯   rp   r±   )r7   rq   r3   r²   rœ   r-   r.   r·   r1   rM   rs   rr   rÑ   rÒ   r+   rÓ   r2   r­   r®   Úembfile_updrº   r›   rƒ   rÔ   s          r   Úembedded_updrÚ   ‰  s   € ä
�D—J‘J §¡°4Ô
8€CØ×%Ñ%Ô'Ø�‰Ð˜tŸ{™{¨d¯j©jÒ8ä�‰Ð0Ô1ð;Ø×Ñ˜Ÿ™Ô#ð
 	�	‰	ÐÜ�G‰G�N‰N˜4Ÿ9™9Ô%Ü�G‰G�N‰N˜4Ÿ9™9Ô%ä�$—)‘)˜TÔ" aØ—V‘V“XˆF÷ #Ð"ð ˆà‡}‚}Ø—=‘=‰àˆà‡~‚~Ø—N‘N‰	Ø	�ŠØ—M‘M‰	àˆ	à‡y‚yØ�y‰y‰àˆà‡O�OØ�	‰	�6 H¸	Èð ô ð ‡{�{Ð˜dŸk™k¨T¯Z©ZÒ7Ø�‰�à�‰�—‘ aˆÔ(Ø‡I�I…KøôK ò ;Ü�‰Ð-°·	±	Ñ9×:ð;ú÷ #Ñ"ús   Á.H Ã=H9È+H6È5H6È9Ic                 ó  — t        | j                  | j                  d¬«      }|j                  «       }| j                  �Å| j                  |vr#t        j                  d| j                  z  «       n”t        j                  «        t        j                  dt        |«      t        |«      dkD  rdndfz  «       t        j                  «        t        |j                  | j                  «      «       t        j                  «        y|s#t        j                  d	|j                  z  «       yt        |«      dkD  rd
|j                  t        |«      fz  }nd|j                  z  }t        j                  |«       t        j                  «        |D ]c  }| j                  st        j                  |«       Œ%|j                  |«      }t        |j                  |«      «       t        j                  «        Œe |j                  «        y)zList embedded files.Tr‹   NrØ   z!printing 1 of %i embedded file%s:r   r"   rW   z'%s' contains no embedded filesz-'%s' contains the following %i embedded filesz)'%s' contains the following embedded file)r7   rq   r3   r¶   r1   r-   r.   r   r   r<   rC   r·   Údetailrƒ   )r„   r    r»   rB   r1   Ú_s         r   Úembedded_listrÞ   »  sr  € ä
�D—J‘J §¡°4Ô
8€CØ×ÑÓ€EØ‡y�yÐØ�9‰9˜EÑ!Ü�H‰HÐ1°D·I±IÑ=Õ>ä�O‰OÔÜ�O‰OØ3Ü�u“:¤c¨%£j°1¢n™s¸"Ð=ñ>ôô �O‰OÔÜ�s×'Ñ'¨¯	©	Ó2Ô3Ü�O‰OÔØÙÜ�‰Ð9¸C¿H¹HÑDÔEØÜ
ˆ5ƒz�A‚~Ø=ÀÇÁÌ3ÈuË:Ð@VÑV‰à9¸C¿H¹HÑDˆÜ‡O�O�CÔÜ‡O�OÔÛˆØ�{Š{Ü�O‰O˜DÔ!ØØ×Ñ˜TÓ"ˆÜ�3×#Ñ# DÓ)Ô*Ü�‰Õð ð ‡I�I…Kr   c           
      óŒ  — | j                   s!| j                  st        j                  d«       t	        | j
                  | j                  d¬«      }| j                  r$t        | j                  |j                  dz   «      }nt        d|j                  dz   «      }| j                  s.t        j                  j                  t        j                  «      }nb| j                  }t        j                  j!                  |«      rt        j                  j#                  |«      st        j                  d|z  «       t%        «       }t%        «       }|D �]î  }| j                   r´|j'                  |dz
  «      }|D ]›  }|d   }	|	|vsŒ|j)                  |	«       |j+                  |	«      \  }
}}}|dk(  s|sŒ<t        j                  j-                  ||
j/                  dd	«      › d	|	› d
|› �«      }t1        |d«      5 }|j3                  |«       ddd«       d}Œ� | j                  sŒÑ|j5                  |dz
  «      }|D �]  }|d   }	|	|vsŒ|j)                  |	«       t7        ||«      }t9        |«      t:        u rV|d   }|d   }t        j                  j-                  |d|	|fz  «      }t1        |d«      5 }|j3                  |«       ddd«       Œ’t        j                  j-                  |d|	z  «      }|j<                  j>                  dk  r|n#tA        jB                  t@        jD                  |«      }|jG                  |«       �Œ �Œñ | j                   r#tA        jH                  dtK        |«      |fz  «       | j                  r#tA        jH                  dtK        |«      |fz  «       |jM                  «        y# 1 sw Y   �Œ«xY w# 1 sw Y   �Œ‘xY w)z)Extract images and / or fonts from a PDF.z"neither fonts nor images requestedTr‹   r   z"output directory %s does not existr   zn/arV   r
   Ú.rÊ   NÚextÚimagez	img-%i.%sz
img-%i.pngr   zsaved %i fonts to '%s'zsaved %i images to '%s')'ÚfontsÚimagesr-   r.   r7   rq   r3   r   rj   rw   r`   rœ   rr   rs   ÚabspathÚcurdirrÑ   Úisdirrµ   Úget_page_fontsÚaddÚextract_fontr¤   rZ   r+   rË   Úget_page_imagesr%   ÚtypeÚdictr   r   r   r   r   r›   r   r<   rƒ   )r„   r    r   Úout_dirÚ
font_xrefsÚimage_xrefsr‰   Úitemlistr!   rN   Úfontnamerá   rÝ   ÚbufferÚoutnameÚoutfiler   Úimgdatar$   s                      r   Úextract_objectsr÷   ß  sþ  € à�:Š:˜dŸkškÜ�‰Ð5Ô6Ü
�D—J‘J §¡°4Ô
8€Cà‡z‚zÜ˜Ÿ™ S§^¡^°aÑ%7Ó8‰ä�a˜Ÿ™¨!Ñ+Ó,ˆà�;Š;Ü—'‘'—/‘/¤"§)¡)Ó,‰à—+‘+ˆÜ—‘—‘˜wÔ'¬B¯G©G¯M©M¸'Ô,BÜ�H‰HÐ9¸GÑCÔDä“€JÜ“%€KäˆØ�:Š:Ø×)Ñ)¨#°©'Ó2ˆHÛ �Ø˜A‘w�Ø˜zÒ)Ø—N‘N 4Ô(Ø/2×/?Ñ/?ÀÓ/EÑ,�H˜c 1 fØ˜e’|©6Ø Ü Ÿg™gŸl™lØ H×$4Ñ$4°S¸#Ó$>Ð#?¸qÀÀÀaÈÀuÐ!Mó�Gô ˜g tÔ,°ØŸ™ fÔ-÷ -à!‘Fð !ð �;‹;Ø×*Ñ*¨3°©7Ó3ˆHÜ �Ø˜A‘w�Ø˜{Ò*Ø—O‘O DÔ)Ü$ S¨$Ó/�CÜ˜C“y¤DÑ(Ø! %™j˜Ø"% g¡,˜Ü"$§'¡'§,¡,¨w¸ÀtÈSÀkÑ8QÓ"R˜Ü! '¨4Ô0°GØ#ŸM™M¨'Ô2÷ 1Ð0ô #%§'¡'§,¡,¨w¸ÀtÑ8KÓ"L˜ð  #Ÿ~™~×/Ñ/°!Ò3ñ  ä!(§¡´·±¸sÓ!Cð ð
 Ÿ	™	 'Ö*ò% !ð% ðL ‡z‚zÜ�‰Ð0´C¸
³OÀWÐ3MÑMÔNØ‡{‚{Ü�‰Ð1´S¸Ó5EÀwÐ4OÑOÔPØ‡I�I…K÷; -Ñ,ú÷ 1Ñ0ús   Ç1N,Ê)N9Î,N6Î9Oc                 óÜ   — |rdnt        dg«      }| j                  d|¬«      }|s|s|j                  |«       y |j                  |j                  dd¬«      «       |j                  |«       y )Nó   
é   Útext©ÚflagsÚutf8Úsurrogatepass©Úerrors)ÚbytesÚget_textrË   Úencode)	ÚpageÚtextoutÚGRIDÚfontsizeÚ
noformfeedÚ
skip_emptyrý   Úeoprû   s	            r   Úpage_simpler  !  s`   € Ù‰%¤5¨"¨£;€CØ�=‰=˜ uˆ=Ó-€DÙÙØ�M‰M˜#ÔØØ‡M�M�$—+‘+˜f¨_�+Ó=Ô>Ø‡M�M�#ÔØ
r   c                 ó  — |rdnt        dg«      }| j                  d|¬«      }|g k(  r|s|j                  |«       y |j                  d„ ¬«       |D ]'  }	|j                  |	d   j	                  dd	¬
«      «       Œ) |j                  |«       y )Nrù   rú   Úblocksrü   c                 ó   — | d   | d   fS )Nrp   r   © )Úbs    r   Ú<lambda>z page_blocksort.<locals>.<lambda>4  s   € ˜q ™t Q q¡T™lr   ©Úkeyr   rþ   rÿ   r   )r  r  rË   Úsortr  )
r  r  r  r  r	  r
  rý   r  r  r  s
             r   Úpage_blocksortr  -  s�   € Ù‰%¤5¨"¨£;€CØ�]‰]˜8¨5ˆ]Ó1€FØ�‚|ÙØ�M‰M˜#ÔØØ
‡K�KÑ*€KÔ+ÛˆØ�‰�a˜‘d—k‘k &°�kÓAÕBð à‡M�M�#ÔØ
r   c                 óÂ  ‡‡!— |rdnt        dg«      }dt        t           dt        dt        fd„}dt        t           dt        fd„}	d	t        t           d
t
        j                  fˆˆ!fd„}
dt        dt        fd„Š!d„ }| j                  d|¬«      d	   } |
|| «      \  }}}}}|g k(  r|s|j                  |«       y  |	||«      }|j                  d„ ¬«       i }|D ]:  }|\  }}}} |||«      }|j                  |g «      }|j                  |«       |||<   Œ< t        |j                  «       «      }|j                  «        ||z
  }i }|D ]c  }||   }t        |«      }|dk  rd||<   Œ|D �cg c]  }|d   ‘Œ	 }}|j                  «        t!        j"                  |«      }||k  r|}|d   ||<   Œe ||d   |d   z
  z  |t        |«      z  z  dz  }|d   }|j                  d«       |D ]^  }||k  r|j                  d«       ||z  }||k  rŒ |||||   ||   «      } |j                  | dz   j%                  dd¬«      «       ||z   }Œ` |j                  |«       y c c}w )Nrù   rú   ÚvaluesÚvalueÚreturnc                 ób   — t        j                  | |«      }|r| |dz
     S t        d|| fz  «      ‚)zôFind the right row coordinate.

        Args:
            values: (list) y-coordinates of rows.
            value: (int) lookup for this value (y-origin of char).
        Returns:
            y-ccordinate of appropriate line for value.
        r   zLine for %g not found in %s)ÚbisectÚbisect_rightÚRuntimeError)r  r  rg   s      r   Úfind_line_indexz$page_layout.<locals>.find_line_index?  s<   € ô ×Ñ ¨Ó.ˆÙØ˜!˜a™%‘=Ð ÜÐ8¸EÀ6¸?ÑJÓKÐKr   Úrowsc                 ó–   — t        | «      } | j                  «        | d   g}| dd  D ]  }||d   |z   k\  sŒ|j                  |«       Œ! |S )Nr   r   r'   )r_   r  r^   )r   r  ÚnrowsÚhs       r   Úcurate_rowsz page_layout.<locals>.curate_rowsN  sR   € Ü�D‹zˆØ�	‰	ŒØ�a‘�	ˆØ�a�b“ˆAØ�E˜"‘I Ñ$Ó$Ø—‘˜Q•ð ð ˆr   r  r  c           
      ó  •— t        «       }|j                  j                  }|j                  j                  }|}|}d}g }| D �]4  }	|	d   D �](  }
|
d   dk7  rŒ|
d   \  }}}}|dk  s||j                  j                  kD  rŒ6||z
  }||kD  r|}|
d   D ]ß  }|d   ‰k  rŒ|d   D ]Ì  }|d   \  }}}}||z
  }|d	   \  }}t	        t        |«      «      }|j                  |«       |d
   }||kD  r|dk7  r|}||k  r|}|dk(  r\|g k7  rW|d   \  }}}}||k(  rH|t        d«      k7  r ‰||z   «      }n$|dk(  rt        d«      }n|dk(  rt        d«      }n|}||||f|d<   Œ¸|j                  ||||f«       ŒÎ Œá �Œ+ �Œ7 |||||fS )Nr   ÚlinesÚdir)r   r   ÚbboxÚspansrR   ÚcharsÚoriginÚcrV   r'   é û  rg   éû  r@   éû  )	rµ   ÚrectÚwidthÚheightr]   ru   ré   Úchrr^   )r  r  r   Ú
page_widthÚpage_heightÚ	rowheightÚleftÚrightr*  ÚblockÚlineÚx0Úy0Úx1Úy1r2  Úspanr,  rÝ   ÚcwidthÚoxÚoyÚchÚold_chÚold_oxÚold_oyÚ
old_cwidthÚligr  Újoinligatures                               €€r   Úprocess_blocksz#page_layout.<locals>.process_blocksW  s×  ø€ Ü‹uˆØ—Y‘Y—_‘_ˆ
Ø—i‘i×&Ñ&ˆØˆ	ØˆØˆØˆÜˆEØ˜g��Ø˜‘; &Ò(ØØ!% f¡‘��B˜˜BØ˜’6˜R $§)¡)×"2Ñ"2Ò2Øà˜b™�à˜vÒ%Ø &�IØ  œM�DØ˜F‘| xÒ/Ø Ø! 'œ]˜Ø'(¨¡y™˜˜A˜r 1Ø!# b¡˜Ø!" 8¡™˜˜BÜ ¤ r£›^˜ØŸ™ œØ˜s™V˜Ø "š9¨¨sªØ#%˜DØ  2š:Ø$&˜Eà! Qš;¨5°Bª;ØAFÀrÁÑ>˜F F¨F°JØ%¨š|Ø#)¬S°«[Ò#8Ù*6°vÀ±{Ó*C¡Cà%'¨3¢YÜ*-¨f«+¡CØ%'¨3¢YÜ*-¨f«+¡Cà*0 CØ-0°&¸&À*Ð,M  b¡	Ø (ØŸ™ b¨"¨b°&Ð%9Õ:ñ5 +ò *ò 'ð ðT �d˜D %¨Ð2Ð2r   rH  c                 óæ   — | dk(  rt        d«      S | dk(  rt        d«      S | dk(  rt        d«      S | dk(  rt        d«      S | d	k(  rt        d
«      S | dk(  rt        d«      S | dk(  rt        d«      S | S )zËReturn ligature character for a given pair / triple of characters.

        Args:
            lig: (str) 2/3 characters, e.g. "ff"
        Returns:
            Ligature, e.g. "ff" -> chr(0xFB00)
        Úffr-  Úfiiû  Úfliû  Úffir.  Úfflr/  Úftiû  Ústiû  )r3  )rH  s    r   rI  z!page_layout.<locals>.joinligature‹  s€   € ð �$Š;Ü�v“;ÐØ�DŠ[Ü�v“;ÐØ�DŠ[Ü�v“;ÐØ�EŠ\Ü�v“;ÐØ�EŠ\Ü�v“;ÐØ�DŠ[Ü�v“;ÐØ�DŠ[Ü�v“;ÐØˆ
r   c                 ó†  — d}d}d}d}|t         j                  k  rt        d|z  «      ‚|D ]„  }|\  }	}
}}|
| z
  }
|
|z   }||	k(  r|
|z
  |dz  k  rŒ%|	dk(  r||
z
  |z  dkD  rŒ6|	}|
||z   k  r
||	z  }|}|
}ŒJ|	dk(  rŒPt        |
|z  «      t	        |«      z
  }|
|kD  r|dkD  r|d|z  z  }||	z  }|}|
}Œ† |j                  «       S )a†  Produce the text of one output line.

        Args:
            left: (float) left most coordinate used on page
            slot: (float) avg width of one character in any font in use.
            minslot: (float) min width for the characters in this line.
            chars: (list[tuple]) characters of this line.
        Returns:
            text: (str) text string for this line
        rW   r   z%program error: minslot too small = %ggš™™™™™É?rV   gš™™™™™é?r   )r   ÚEPSILONr  r]   r<   Úrstrip)r7  ÚslotÚminslotÚlcharsrû   Úold_charÚold_x1rE  r,  ÚcharrA  rÝ   r@  r=  Údeltas                  r   Úmake_textlinez"page_layout.<locals>.make_textline¥  s  € ð ˆØˆØˆØˆØ”g—o‘oÒ%ÜÐFÈÑPÓQÐQãˆAØ"#ÑˆD�"�a˜Ø�d‘ˆBØ�f‘ˆBð ˜4Ò B¨¡K°6¸C±<Ò$?Øð �sŠ{ ¨¡¨vÑ5¸Ò;ØàˆHà�F˜WÑ$Ò$Ø˜‘�Ø�Ø�Øð
 �sŠ{ØÜ˜˜T™	“N¤S¨£YÑ.ˆEØ�FŠ{˜u qšyØ˜˜e™Ñ#�à�D‰LˆDØˆFØ‰FðA ðB �{‰{‹}Ðr   Úrawdictrü   c                 ó   — | d   S )Nr   r  )r,  s    r   r  zpage_layout.<locals>.<lambda>ç  s   € ˜Q˜qšTr   r  r(   r   rp   r   r'   g333333ó?Ú
rþ   rÿ   r   )r  r   r]   r   r   r   ÚPagerY   r  rË   r  Úgetr^   r_   r;   r<   Ú
statisticsÚmedianr  )"r  r  r  r  r	  r
  rý   r  r  r$  rJ  r]  r  r*  r   r7  r8  r6  r&  r,  rÝ   rB  ÚyrX  r;   rV  Úminslotsr?   ÚccountÚwidthsÚ	this_slotÚrowposrû   rI  s"      `                             @r   Úpage_layoutrk  ;  s   ù€ Ù‰%¤5¨"¨£;€CðL¤¤S¡	ð L´#ð L¼#ó Lðœ#œc™(ð ¬Tó ð23œt¤D™zð 23´·±ö 23ðhœ#ð ¤#ó ò43ðl �]‰]˜9¨Eˆ]Ó2°8Ñ<€FÙ*8¸ÀÓ*FÑ'€Eˆ4��u˜ià�‚{ÙØ�M‰M˜#ÔØá�t˜TÓ"€Dð 
‡J�J‘>€JÔ"ð €EÛˆØ‰ˆˆ1ˆb�!Ù˜D "Ó%ˆØ—‘˜1˜bÓ!ˆØ�‰�aÔØˆˆaŠð ô �—
‘
“Ó€DØ‡I�I„Kð �4‰<€DØ€HÛˆØ�q‘ˆÜ�V“ˆØ�AŠ:ØˆH�Q‰KØÙ &Ó'¡˜1�!�A“$ ˆÐ'Ø�‰ŒÜ×%Ñ% fÓ-ˆ	Ø�tÒØˆDØ˜Q‘iˆ�Šð ð ˜T "™X¨¨Q©Ñ/Ñ0°IÄÀDÃ	Ñ4IÑJÈSÑP€IØ�!‰W€FØ‡M�M�%ÔÛˆØ�qŠjØ�M‰M˜%Ô Ø�iÑˆFð �q‹jñ ˜T 4¨°!©°e¸A±hÓ?ˆØ�‰�t˜d‘{×*Ñ*¨6¸/Ð*ÓJÔKØ�Y‘‰ð ð ‡M�M�#Õùò' (s   Å-Ic                 ó  — t        | j                  | j                  d¬«      }t        | j                  |j
                  dz   «      }| j                  }|€1t        j                  j                  |j                  «      \  }}|dz   }t        |d«      5 }t        j                  t        j                  z  }| j                  r|t        j                  z  }| j                   r|t        j                  z  }| j"                  r|t        j$                  z  }t&        t(        t*        dœ}|D ]N  }	||	dz
     }
 || j,                     |
|| j.                  | j0                  | j2                  | j4                  |¬«       ŒP 	 d d d «       y # 1 sw Y   y xY w)NFr‹   r   z.txtrÊ   ©Úsimpler  Úlayoutrü   )r7   rq   r3   rj   r   rw   rœ   rr   rs   Úsplitextr1   r+   r   ÚTEXT_PRESERVE_LIGATURESÚTEXT_PRESERVE_WHITESPACEÚconvert_whiteÚnoligaturesÚextra_spacesÚTEXT_INHIBIT_SPACESr  r  rk  ÚmodeÚgridr  r	  r
  )r„   r    rˆ   rœ   r2   rÝ   r  rý   Úfuncr‰   r  s              r   Úgettextrz    s>  € Ü
�D—J‘J §¡°5Ô
9€CÜ�T—Z‘Z §¡°!Ñ!3Ó4€EØ�[‰[€FØ€~Ü—g‘g×&Ñ& s§x¡xÓ0‰ˆ�!Ø˜FÑ"ˆÜ	ˆf�dÔ	˜wÜ×/Ñ/´'×2RÑ2RÑRˆØ×ÒØ”W×5Ñ5Ñ5ˆEØ×ÒØ”W×4Ñ4Ñ4ˆEØ×ÒØ”W×0Ñ0Ñ0ˆEä!Ü$Ü!ñ
ˆó
 ˆCØ�s˜Q‘w‘<ˆDØˆD�—‘‰OØØØ—	‘	Ø—‘Ø—‘Ø—‘Øöñ ÷ 
×	Ñ	ús   ÂC$E?Å?Fc                 óX   — t        j                  d«       t        j                  d«       y )NzThis is from PyMuPDF message().zThis is from PyMuPDF log().)r   r   Úlog)r„   s    r   Ú	_internalr}  =  s   € Ü‡O�OÐ5Ô6Ü‡K�KÐ-Õ.r   c                  ó�  — t        j                  dt        d«      ¬«      } | j                  dd¬«      }|j	                  dt        d«      ¬	«      }|j                  d
t        d¬«       |j                  dd¬«       |j                  ddd¬«       |j                  ddd¬«       |j                  ddd¬«       |j                  dt        d¬«       |j                  dt        d¬«       |j                  t        ¬«       |j	                  dt        d«      ¬	«      }|j                  d
t        d¬«       |j                  dt        d ¬«       |j                  dd¬«       |j                  d!d"d#d$¬%«       |j                  d&t        d'¬«       |j                  d(t        d)¬«       |j                  d*t        d+t        d,«      d-¬.«       |j                  d/dd0d1¬2«       |j                  d3dd0d4¬2«       |j                  d5dd0d6¬2«       |j                  d7t        d8d9¬:«       |j                  d;dd0d<¬2«       |j                  d=dd0d>¬2«       |j                  dd?¬«       |j                  t        ¬«       |j	                  d@t        dA«      dB¬C«      }|j                  d
dDdE¬F«       |j                  dGdHdI¬J«       |j                  t        ¬«       |j	                  dKt        dL«      ¬	«      }|j                  d
t        d¬«       |j                  dMddN¬«       |j                  dOddP¬«       |j                  dGdQ¬«       |j                  dd¬«       |j                  dt        dR¬«       |j                  t        ¬«       |j	                  dSt        dT«      ¬	«      }|j                  d
d¬«       |j                  dUdV¬«       |j                  dWddX¬«       |j                  dd¬«       |j                  t        ¬«       |j	                  dYt        dZ«      ¬	«      }|j                  d
d¬«       |j                  dd¬«       |j                  dGd[¬«       |j                  dUdHd\¬J«       |j                  d]dHd^¬J«       |j                  d_d`¬«       |j                  t        ¬«       |j	                  dat        db«      ¬	«      }|j                  d
d¬«       |j                  dd¬«       |j                  dGd[¬«       |j                  dUdHdc¬J«       |j                  t         ¬«       |j	                  ddt        de«      df¬C«      }|j                  d
d¬«       |j                  dUdHdg¬J«       |j                  dd¬«       |j                  dGdh¬«       |j                  d]di¬«       |j                  djdk¬«       |j                  dldm¬«       |j                  d_dn¬«       |j                  t"        ¬«       |j	                  dot        dp«      ¬	«      }	|	j                  d
t        d¬«       |	j                  dUdHdg¬J«       |	j                  dd¬«       |	j                  dGdq¬«       |	j                  t$        ¬«       |j	                  drt        ds«      ¬	«      }
|
j                  d
t        dt¬«       |
j                  ddu¬«       |
j                  dGdv¬«       |
j                  dwdHdx¬J«       |
j                  dydz¬«       |
j                  dUdDd{¬F«       |
j                  t&        ¬«       |j	                  d|t        d}«      ¬	«      }|j                  d
t        d~¬«       |j                  dd¬«       |j                  d€t        d�d‚dƒ¬.«       |j                  dt        d„d…¬†«       |j                  d‡ddˆd0¬‰«       |j                  dŠdd‹d0¬‰«       |j                  dŒdd�d0¬‰«       |j                  dŽdd�d0¬‰«       |j                  d�dd‘d0¬‰«       |j                  dGd’¬«       |j                  d“t(        d”d•¬†«       |j                  d–t(        d—d˜¬†«       |j                  t*        ¬«       |j	                  d™t        dš«      ¬	«      }|j                  t,        ¬«       | j/                  «       }t1        |d›«      s| j3                  «        yœ|j5                  |«       yœ)�zDefine command configurations.r   zBasic PyMuPDF Functions)ÚprogÚdescriptionÚSubcommandsz/Enter 'command -h' for subcommand specific help)ÚtitleÚhelpr4   zdisplay PDF information)r€  rq   zPDF filename)rì   rƒ  z	-passwordr3   )rƒ  z-catalogÚ
store_truezshow PDF catalog)Úactionrƒ  z-trailerzshow PDF trailerz	-metadatazshow PDF metadataz-xrefsz&show selected objects, format: 1,5-7,Nz-pagesz'show selected pages, format: 1,5-7,50-N)ry  r’   z.optimize PDF, or create sub-PDF if pages givenrœ   zoutput PDF filenamez-encryptionzencryption methodrŒ   rŽ   )rƒ  ÚchoicesÚdefaultz-ownerzowner passwordz-userzuser passwordz-garbagezgarbage collection levelé   r   )rì   rƒ  r†  r‡  z	-compressFzcompress (deflate) output)r…  r‡  rƒ  z-asciizASCII encode binary dataz-linearzformat for fast web displayz-permissionr'   zinteger with permission levels)rì   r‡  rƒ  z	-sanitizezsanitize / clean contentsz-prettyzprettify PDF structurez/output selected pages pages, format: 1,5-7,50-Nr¤   zjoin PDF documentsz3specify each input as 'filename[,password[,pages]]')r€  ÚepilogÚ*zinput filenames)Únargsrƒ  z-outputTzoutput filename)Úrequiredrƒ  Úextractz extract images and fonts to diskz-imageszextract imagesz-fontszextract fontsz-folder to receive output, defaults to currentz-consider these pages only, format: 1,5-7,50-Nz
embed-infozlist embedded filesz-namezif given, report only this onez-detailzdetail informationz	embed-addzadd embedded filez-output PDF filename, incremental save if nonezname of new entryz-pathzpath to data for new entryz-desczdescription of new entryz	embed-delzdelete embedded filezname of entry to deletez	embed-updzupdate embedded filez*except '-name' all parameters are optionalzname of entryz-Output PDF filename, incremental save if nonezpath to new data for entryz	-filenameznew filename to store in entryz
-ufilenamez&new unicode filename to store in entryz!new description to store in entryzembed-extractzextract embedded file to diskz'output filename, default is stored namez
embed-copyz copy embedded files between PDFszPDF to receive embedded fileszpassword of inputz2output PDF, incremental save to 'input' if omittedz-sourcezcopy embedded files from herez
-pwdsourcezpassword of 'source' PDFzrestrict copy to these entriesrz  z(extract text in various formatting modeszinput document filenamezpassword for input documentz-modez-mode: simple, block sort, or layout (default)rm  ro  z select pages, format: 1,5-7,50-Nz1-N)rì   rƒ  r‡  z-noligaturesz*expand ligature characters (default False))r…  rƒ  r‡  z-convert-whitez6convert whitespace characters to white (default False)z-extra-spacesz%fill gaps with spaces (default False)z-noformfeedz-write linefeeds, no formfeeds (default False)z-skip-emptyz+suppress pages with no text (default False)z3store text in this file (default inputfilename.txt)z-gridz+merge lines if closer than this (default 2)r(   z	-fontsizez4only include text with a larger fontsize (default 3)rp   Úinternalzinternal testingry  N)ÚargparseÚArgumentParserr   Úadd_subparsersÚ
add_parserÚadd_argumentrY   Úset_defaultsr4   r]   r`   r’   rª   r÷   rÞ   rÖ   rÈ   rÚ   rÎ   rÀ   Úfloatrz  r}  Ú
parse_argsÚhasattrÚ
print_helpry  )ÚparserÚsubpsÚps_showÚps_cleanÚps_joinÚ
ps_extractÚps_embed_addÚps_embed_delÚps_embed_updÚps_embed_extractÚps_embed_copyÚ
ps_gettextÚps_internalr„   s                 r   Úmainr¦  A  s
  € ä×$Ñ$ØÜÐ6Ó7ô€Fð ×!Ñ!ØÐ"Sð "ó €Eð ×Ñ˜v´8Ð<UÓ3VÐÓW€GØ×Ñ˜¤s°ÐÔ@Ø×Ñ˜¨:ÐÔ6Ø×Ñ˜¨LÐ?QÐÔRØ×Ñ˜¨LÐ?QÐÔRØ×Ñ˜¨\Ð@SÐÔTØ×ÑØ”sÐ!Ið ô ð ×ÑØ”sÐ!Jð ô ð ×ÑœdÐÔ#ð
 ×ÑØœXÐ&VÓWð  ó €Hð ×Ñ˜'¬°.ÐÔAØ×Ñ˜(¬Ð3HÐÔIØ×Ñ˜+¨JÐÔ7à×ÑØØ ØKØð	 ô ð ×Ñ˜(¬Ð3CÐÔDØ×Ñ˜'¬°/ÐÔBà×ÑØÜØ'Ü�a“Øð ô ð ×ÑØØØØ(ð	 ô ð ×ÑØ˜¨uÐ;Uð ô ð ×ÑØØØØ*ð	 ô ð ×ÑØœC¨Ð2Rð ô ð ×ÑØØØØ(ð	 ô ð ×ÑØ˜,°Ð<Tð ô ð ×ÑØÐHð ô ð ×ÑœuÐÔ%ð
 ×ÑØÜÐ1Ó2ØDð ó €Gð
 ×Ñ˜¨Ð2CÐÔDØ×Ñ˜¨TÐ8IÐÔJØ×ÑœhÐÔ'ð
 ×!Ñ!ØœxÐ(JÓKð "ó €Jð ×Ñ˜G¬#°NÐÔCØ×Ñ˜I¨lÐAQÐÔRØ×Ñ˜H¨\ÀÐÔPØ×ÑØÐGð ô ð ×Ñ˜K¨jÐÔ9Ø×ÑØ”sÐ!Pð ô ð ×Ñ¤ÐÔ1ð
 ×ÑØ¤(Ð+@Ó"Að ó €Gð ×Ñ˜ ~ÐÔ6Ø×Ñ˜Ð'GÐÔHØ×Ñ˜¨<Ð>RÐÔSØ×Ñ˜¨:ÐÔ6Ø×ÑœmÐÔ,ð
 ×#Ñ#Ø¤Ð*=Ó!>ð $ó €Lð ×Ñ˜g¨NÐÔ;Ø×Ñ˜k°
ÐÔ;Ø×ÑØÐGð ô ð ×Ñ˜g°Ð;NÐÔOØ×Ñ˜g°Ð;WÐÔXØ×Ñ˜gÐ,FÐÔGØ×Ñ¤<ÐÔ0ð
 ×#Ñ#Ø¤Ð*@Ó!Að $ó €Lð ×Ñ˜g¨NÐÔ;Ø×Ñ˜k°
ÐÔ;Ø×ÑØÐGð ô ð ×Ñ˜g°Ð;TÐÔUØ×Ñ¤<ÐÔ0ð
 ×#Ñ#ØÜÐ3Ó4Ø;ð $ó €Lð
 ×Ñ˜g¨NÐÔ;Ø×Ñ˜g°¸?ÐÔKØ×Ñ˜k°
ÐÔ;Ø×ÑØÐGð ô ð ×Ñ˜gÐ,HÐÔIØ×Ñ˜kÐ0PÐÔQØ×ÑØÐCð ô ð ×Ñ˜gÐ,OÐÔPØ×Ñ¤<ÐÔ0ð
 ×'Ñ'Ø¤XÐ.MÓ%Nð (ó Ðð ×!Ñ! '´¸.Ð!ÔIØ×!Ñ! '°D¸Ð!ÔOØ×!Ñ! +°JÐ!Ô?Ø×!Ñ!ØÐAð "ô ð ×!Ñ!¤|Ð!Ô4ð
 ×$Ñ$Ø¤(Ð+MÓ"Nð %ó €Mð ×Ñ˜w¬SÐ7VÐÔWØ×Ñ˜{Ð1DÐÔEØ×ÑØÐLð ô ð ×ÑØ˜DÐ'Fð ô ð ×Ñ˜|Ð2LÐÔMØ×ÑØ�sÐ!Að ô ð ×Ñ¤MÐÔ2ð
 ×!Ñ!ØœxÐ(RÓSð "ó €Jð ×Ñ˜G¬#Ð4MÐÔNØ×Ñ˜KÐ.KÐÔLØ×ÑØÜØ<Ø.Øð ô ð ×ÑØÜØ/Øð	 ô ð ×ÑØØØ9Øð	 ô ð ×ÑØØØEØð	 ô ð ×ÑØØØ4Øð	 ô ð ×ÑØØØ<Øð	 ô ð ×ÑØØØ:Øð	 ô ð ×ÑØØBð ô ð ×ÑØÜØ:Øð	 ô ð ×ÑØÜØCØð	 ô ð ×Ñ¤ÐÔ)ð
 ×"Ñ"Ø¤Ð);Ó <ð #ó €Kð ×Ñ¤)ÐÔ,ð
 ×ÑÓ€DÜ�4˜Ô Ø×ÑÕà�	‰	�$�r   Ú__main__)FT)r  )"r�  r  rr   r-   rc  Útypingr   r   r   rW   r   r   r%   r7   rC   rS   rj   r4   r’   rª   rÀ   rÈ   rÎ   rÖ   rÚ   rÞ   r÷   r  r  rk  rz  r}  r¦  Ú__name__r  r   r   Ú<module>rª     s¯   ðó Û Û 	Û 
Û ß "Ñ "å ò(ò!óHò&òó.,ò^<ò~,ò^ò*%òPò&òòD/òd!òH?òD	òò^òBòB/òoðd	 ˆzÒÙ…Fð r   