+
    f0iܒ                     F   ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t	 ^ RI
HtHtHtHt ^ RIHtHtHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IH t  ^ RI!H"t"H#t#H$t$H%t% ^ RI&H't'H(t(H)t) ^ RI*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3 ^ RI4H5t5 ^ RI6H7t7H8t8H9t9 ^ RI:H;t;H<t<H=t=H>t>H?t?H@t@ ]P                  ! ]B4      tC ! R R])4      tD ! R R]E4      tF ! R R]"4      tG ! R R]"4      tH ! R R]"4      tI ! R R]"4      tJ ! R R]J4      tK ! R R ]L4      tM ! R! R"]L4      tN ! R# R$]J4      tO]8! R%4      tP]8! R&4      tQ]8! R'4      tR ! R( R)4      tS ! R* R+]S4      tT ! R, R-]T4      tU ! R. R/]S4      tV ! R0 R14      tW ! R2 R3]W4      tX ! R4 R5]X4      tY ! R6 R74      tZ ! R8 R9] 4      t[R# ):    N)CallableIterableIteratorKeysViewSequence)md5sha256sha384sha512)AnyClassVarcast)default_backend)Cipher
algorithmsmodes)settings)Arcfour)safe_int)
NumberTree)PDFExceptionPDFKeyErrorPDFObjectNotFoundPDFTypeError)	PDFParserPDFStreamParserPDFSyntaxError)	DecipherCallable	PDFStreamdecipher_all
dict_value	int_value
list_value	str_valuestream_value
uint_value)PSEOF)KWDLITliteral_name)choplistdecode_textformat_int_alphaformat_int_romannunpack	unpad_aesc                       ] tR t^4tRtR# )PDFNoValidXRef N__name__
__module____qualname____firstlineno____static_attributes__r3       Z/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/pdfminer/pdfdocument.pyr2   r2   4       r:   r2   c                       ] tR t^8tRtRtR# )PDFNoValidXRefWarningzlLegacy warning for missing xref.

Not used anymore because warnings.warn is replaced by logger.Logger.warn.
r3   Nr5   r6   r7   r8   __doc__r9   r3   r:   r;   r>   r>   8       r:   r>   c                       ] tR t^?tRtR# )PDFNoOutlinesr3   Nr4   r3   r:   r;   rC   rC   ?   r<   r:   rC   c                       ] tR t^CtRtR# )PDFNoPageLabelsr3   Nr4   r3   r:   r;   rE   rE   C   r<   r:   rE   c                       ] tR t^GtRtR# )PDFDestinationNotFoundr3   Nr4   r3   r:   r;   rG   rG   G   r<   r:   rG   c                       ] tR t^KtRtR# )PDFEncryptionErrorr3   Nr4   r3   r:   r;   rI   rI   K   r<   r:   rI   c                       ] tR t^OtRtR# )PDFPasswordIncorrectr3   Nr4   r3   r:   r;   rK   rK   O   r<   r:   rK   c                       ] tR t^StRtRtR# )PDFEncryptionWarningzqLegacy warning for failed decryption.

Not used anymore because warnings.warn is replaced by logger.Logger.warn.
r3   Nr?   r3   r:   r;   rM   rM   S   rA   r:   rM   c                       ] tR t^ZtRtRtR# )"PDFTextExtractionNotAllowedWarningzLegacy warning for PDF that does not allow extraction.

Not used anymore because warnings.warn is replaced by logger.Logger.warn.
r3   Nr?   r3   r:   r;   rO   rO   Z   rA   r:   rO   c                       ] tR t^atRtR# )PDFTextExtractionNotAllowedr3   Nr4   r3   r:   r;   rQ   rQ   a   r<   r:   rQ   ObjStmXRefCatalogc                   h   a  ] tR t^kt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR	tV t	R
# )PDFBaseXRefc                6   < V ^8  d   QhRS[ S[S[3,          /#    returndictstrr   )format__classdict__s   "r;   __annotate__PDFBaseXRef.__annotate__l   s     " "T#s(^ "r:   c                    \         hNNotImplementedErrorselfs   &r;   get_trailerPDFBaseXRef.get_trailerl       !!r:   c                0   < V ^8  d   QhRS[ S[,          /# rX   )r   int)r^   r_   s   "r;   r`   ra   o   s      HSM r:   c                    . # rc   r3   rf   s   &r;   
get_objidsPDFBaseXRef.get_objidso   s    	r:   c                N   < V ^8  d   QhRS[ RS[S[ R,          S[ S[ 3,          /# rY   objidrZ   Nrl   tuple)r^   r_   s   "r;   r`   ra   u   s+     ! !S !U3:sC+?%@ !r:   c                    \        V4      hrc   )r   rg   rr   s   &&r;   get_posPDFBaseXRef.get_posu   s    %  r:   c                $   < V ^8  d   QhRS[ RR/# rY   parserrZ   Nr   )r^   r_   s   "r;   r`   ra   x   s     " "9 " "r:   c                    \         hrc   rd   )rg   r{   s   &&r;   loadPDFBaseXRef.loadx   rj   r:   r3   N)
r5   r6   r7   r8   rh   rn   rw   r~   r9   __classdictcell__r_   s   @r;   rV   rV   k   s-     " " ! !" "r:   rV   c                      a  ] tR t^|t o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR lt	V 3R lR lt
RtV tR# )PDFXRefc                   < V ^8  d   QhRR/# rY   rZ   Nr3   )r^   r_   s   "r;   r`   PDFXRef.__annotate__}   s     * *$ *r:   c                "    / V n         / V n        R # rc   offsetstrailerrf   s   &r;   __init__PDFXRef.__init__}   s    ?A')r:   c                    < V ^8  d   QhRS[ /# rX   r]   )r^   r_   s   "r;   r`   r      s     = =# =r:   c                @    R V P                   P                  4       : R2# )z<PDFXRef: offsets=>r   keysrf   s   &r;   __repr__PDFXRef.__repr__   s    #DLL$5$5$7#:!<<r:   c                $   < V ^8  d   QhRS[ RR/# rz   r|   )r^   r_   s   "r;   r`   r      s     ." ."9 ." ."r:   c           
     $     VP                  4       w  r#VP                  4       pV'       g   K.   TP	                  R4      '       d   TP                  T4       EMTP                  R4      p\        T4      ^8w  d   RT: RT: 2p\        T4      h \        \        T4      w  rx\        YwT,           4       F  p	 TP                  4       w  rTP                  4       pTP                  R4      p\        T4      ^8w  d   RT: R	T: 2p\        T4      hTw  rpTR
8w  d   Kj  \        T4      p\        T4      pTe   Te   RY3T P                  T	&   K  \        P                  RT	 RT: RT: R24       K  	  EKw  \        P!                  RT P                  4       T P#                  T4       R#   \         d   p\        R4      ThRp?ii ; i  \         d   pRT: RT: 2p\        T4      ThRp?ii ; i  \         d   p\        R4      ThRp?ii ; i)Tz Unexpected EOF - file corrupted?N   trailer    zTrailer not found: z: line=zInvalid line: zInvalid XRef format: z, line=   nzNot adding object z to xref because position z or generation number z cannot be parsed as an intzxref objects: %r)nextlinestripr'   r2   
startswithseeksplitlenmaprl   
ValueErrorranger   r   logwarningdebugload_trailer)rg   r{   poslineerrf	error_msgstartnobjsrr   _pos_bgenno_buse_bpos_igenno_is   &&              r;   r~   PDFXRef.load   s   R$oo/zz|  z**C 

4 A1v{1&74(K	$Y//9!$S! uem4V & 1IQ::<D JJt$q6Q;"7z QI(33*+'D= "7+$)<+/*@DLL'KK,UG3MeY W007{:UW' 50 			$dll3&!O  R$%GHcQR  9,VJgdXF	$Y/S89  V()KLRUUVsG   *F+ G
 9"G3+G6GG
G0G++G03H>H

Hc                $   < V ^8  d   QhRS[ RR/# rz   r|   )r^   r_   s   "r;   r`   r      s     . .9 . .r:   c                    VP                  4       w  r#V\        R 4      J g   Q \        V4      4       hVP                  4       w  r$V P                  P                  \        V4      4       \        P                  RV P                  4       R#   \         d4    TP                  ^4      pT'       g   \        R4      RhT^ ,          w  r$ Li ; i)r   zUnexpected EOF - file corruptedNz
trailer=%r)	nexttokenr(   r]   
nextobjectr'   popr2   r   updater!   r   r   )rg   r{   r   kwddicxs   &&    r;   r   PDFXRef.load_trailer   s    	'')HQ#j/)33s83)((*HQ 	JsO,		,-  	

1A$%FGTQtHQ		s   AB #C	/C	C	c                6   < V ^8  d   QhRS[ S[S[3,          /# rX   r[   )r^   r_   s   "r;   r`   r            T#s(^ r:   c                    V P                   # rc   r   rf   s   &r;   rh   PDFXRef.get_trailer       ||r:   c                0   < V ^8  d   QhRS[ S[,          /# rX   )r   rl   )r^   r_   s   "r;   r`   r      s     # #HSM #r:   c                6    V P                   P                  4       # rc   r   rf   s   &r;   rn   PDFXRef.get_objids   s    ||  ""r:   c                N   < V ^8  d   QhRS[ RS[S[ R,          S[ S[ 3,          /# rq   rs   )r^   r_   s   "r;   r`   r      s+     # #S #U3:sC+?%@ #r:   c                (    V P                   V,          # rc   )r   rv   s   &&r;   rw   PDFXRef.get_pos   s    ||E""r:   r   N)r5   r6   r7   r8   r   r   r~   r   rh   rn   rw   r9   r   r   s   @r;   r   r   |   sL     * *= =." ."`. . # ## #r:   r   c                   h   a  ] tR t^t o V 3R lR lt]P                  ! R4      tV 3R lR ltRt	V t
R# )PDFXRefFallbackc                    < V ^8  d   QhRS[ /# rX   r   )r^   r_   s   "r;   r`   PDFXRefFallback.__annotate__   s     E E# Er:   c                @    R V P                   P                  4       : R2# )z<PDFXRefFallback: offsets=r   r   rf   s   &r;   r   PDFXRefFallback.__repr__   s    +DLL,=,=,?+B!DDr:   z^(\d+)\s+(\d+)\s+obj\bc                $   < V ^8  d   QhRS[ RR/# rz   r|   )r^   r_   s   "r;   r`   r      s     *= *=9 *= *=r:   c                   VP                  ^ 4         VP                  4       w  r#TP                  R4      '       dE   TP                  T4       T P	                  T4       \
        P                  RT P                  4       R# TP                  R4      pT P                  P                  T4      pT'       g   K  TP                  4       w  rg\        T4      p\        T4      p	RY)3T P                  T&   TP                  T4       TP                  4       w  r\        T\         4      '       g   EK  TP#                  R4      \$        J g   EK6  \'        T4      p TR,          p\1        TP3                  4       4      p. p  TP                  4       w  rTP5                  \7        \        T4      4       K4    \         d     R# i ; i  \(         d,    \*        P,                  '       d   \/        RT: 24      Rh^ p Li ; i  \         d     Mi ; i\9        T\;        T4      ^,          4      p\=        T4       F%  pTT^,          ,          pTT^ 3T P                  T&   K'  	  EKJ  )r   r   trailer: %rzlatin-1NTypeNN is not defined: )r   r   r'   r   r   r   r   r   decode
PDFOBJ_CUEmatchgroupsrl   r   r   
isinstancer   getLITERAL_OBJSTMr%   KeyErrorr   STRICTr   r   get_dataappendr   minr   r   )rg   r{   r   
line_bytesr   mobjid_sgenno_srr   gennor   objstreamnparser1objsindexobjid1s   &&                r;   r~   PDFXRefFallback.load   s   A$*OO$5! $$Z00C !!&)		-6$$Y/D%%d+A!"WLELE#'"4DLLKK((*HQ#y))cggfo.O%c*sA
 *&//*;<"$#*#5#5#7DcN3?  ,   ,/A&-LMSWWA  3t9>*"1XE!%!)_F,15!+<DLL( &s;   F- 	F? 94G8 -F<;F<? G5 G54G58HHr3   N)r5   r6   r7   r8   r   recompiler   r~   r9   r   r   s   @r;   r   r      s,     E E 56J*= *=r:   r   c                      a  ] tR t^t o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR lt	Rt
V tR# )PDFXRefStreamc                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   PDFXRefStream.__annotate__   s     0 0$ 0r:   c                Z    R V n         R V n        R V n        R V n        R V n        . V n        R # rc   )dataentlenfl1fl2fl3rangesrf   s   &r;   r   PDFXRefStream.__init__   s,    "&	"&###-/r:   c                    < V ^8  d   QhRS[ /# rX   r   )r^   r_   s   "r;   r`   r     s     : :# :r:   c                $    R V P                   : R2# )z<PDFXRefStream: ranges=r   )r   rf   s   &r;   r   PDFXRefStream.__repr__  s    (q99r:   c                $   < V ^8  d   QhRS[ RR/# rz   r|   )r^   r_   s   "r;   r`   r   
  s     
 
9 
 
r:   c           	     $   VP                  4       w  r#VP                  4       w  r$VP                  4       w  r%VP                  4       w  r&\        V\        4      '       d   VP	                  R 4      \
        Jd   \        R4      hVR,          pVP	                  R^ V34      p\        V4      ^,          ^ 8w  d   \        R4      hV P                  P                  \        \        \        \        \        3,          ,          \        ^V4      4      4       VR,          w  V n        V n        V n        V P                   e   V P"                  e   V P$                  f   Q hVP'                  4       V n        V P                   V P"                  ,           V P$                  ,           V n        VP,                  V n        \0        P3                  RRP5                  \7        \8        V P                  4      4      V P                   V P"                  V P$                  4       R# )	r   zInvalid PDF stream spec.SizeIndexzInvalid index numberWNz&xref stream: objid=%s, fields=%d,%d,%dz, )r   r   r   r   r   LITERAL_XREFr2   r   r   r   extendr   r   rt   rl   r+   r   r   r   r   r   r   attrsr   r   r   joinr   repr)	rg   r{   r   _objid_genno_kwdr   sizeindex_arrays	   &&       r;   r~   PDFXRefStream.load
  s|   &&(&&($$&	'')&),,

60B,0V !;<<f~jj1d)4{a1$ !7884sCx 98A{;STU)/&48TXxx#(<AUUUOO%	hh)DHH4||		4IIc$,-HHHHHH	
r:   c                6   < V ^8  d   QhRS[ S[S[3,          /# rX   r[   )r^   r_   s   "r;   r`   r   #  r   r:   c                    V P                   # rc   r   rf   s   &r;   rh   PDFXRefStream.get_trailer#  r   r:   c                0   < V ^8  d   QhRS[ S[,          /# rX   )r   rl   )r^   r_   s   "r;   r`   r   &  s     	$ 	$HSM 	$r:   c              #  f  "   V P                    F  w  r\        V4       F  pV P                  f   Q hV P                  f   Q hV P                  V,          pV P                  WDV P                  ,            p\	        VR V P
                   ^4      pV^8X  g
   V^8X  g   K~  W,           x  K  	  K  	  R # 5irc   )r   r   r   r   r/   r   )rg   r   r   ioffsetentf1s   &      r;   rn   PDFXRefStream.get_objids&  s      KKLE5\{{...yy,,,qii$++)=>S488_a07bAg)O " (s   BB1B1c                N   < V ^8  d   QhRS[ RS[S[ R,          S[ S[ 3,          /# rq   rs   )r^   r_   s   "r;   r`   r   1  s+     % %S %U3:sC+?%@ %r:   c                   ^ pV P                    F1  w  r4W18:  d   WV,           8  d   W!V,
          ,          p MW$,          pK3  	  \        V4      hV P                  f   Q hV P                  f   Q hV P                  e   V P
                  e   V P                  f   Q hV P                  V,          pV P                  WUV P                  ,            p\        VRV P                   ^4      p\        W`P                  V P                  V P
                  ,            4      p\        W`P                  V P
                  ,           R 4      p	V^8X  d   RW3# V^8X  d   W^ 3# \        V4      h)r   N)r   r   r   r   r   r   r   r/   )
rg   rr   r   r   r   r  r  r  f2f3s
   &&        r;   rw   PDFXRefStream.get_pos1  s1    KKLE~%%-"7& ( e$${{&&&yy$$$xx#(<AUUUu$ii$++!56S488_a(SDHHtxx$789SDHH,./07">!1WA; e$$r:   )r   r   r   r   r   r   r   N)r5   r6   r7   r8   r   r   r~   rh   rn   rw   r9   r   r   s   @r;   r   r      sA     0 0: :
 
2 	$ 	$% %r:   r   c                   J  a  ] tR tRt o RtR$tR%V 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR&V 3R lR lltV 3R  lR! ltV 3R" ltR#tV tR# )'PDFStandardSecurityHandleriL  s    (N^NuAd NV.. h>/dSizc                V   < V ^8  d   QhRS[ S[,          RS[S[S[3,          RS[RR/# )rY   docidparampasswordrZ   N)r   bytesr\   r]   r   )r^   r_   s   "r;   r`   'PDFStandardSecurityHandler.__annotate__R  s?     	 		 CH~	 		
 
	r:   c                J    Wn         W n        W0n        V P                  4        R # rc   )r#  r$  r%  init)rg   r#  r$  r%  s   &&&&r;   r   #PDFStandardSecurityHandler.__init__R  s     

 		r:   c                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   r'  ]  s      d r:   c                    V P                  4        V P                  V P                  9  d   R V P                  : 2p\	        V4      hV P                  4        R# )zUnsupported revision: param=N)init_paramsrsupported_revisionsr$  rI   init_key)rg   r   s   & r;   r)  PDFStandardSecurityHandler.init]  sD    661116tzznEI$Y//r:   c                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   r'  d  s     > >T >r:   c                   \        V P                  P                  R ^ 4      4      V n        \        V P                  R,          4      V n        \        V P                  R,          ^ 4      V n        \        V P                  R,          4      V n        \        V P                  R,          4      V n	        \        V P                  P                  R^(4      4      V n
        R# )VRPOULengthN)r"   r$  r   vr.  r&   pr$   oulengthrf   s   &r;   r-  &PDFStandardSecurityHandler.init_paramsd  s    4::>>#q124::c?+DJJsOR04::c?+4::c?+

x <=r:   c                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   r'  l  s     ' '$ 'r:   c                n    V P                  V P                  4      V n        V P                  f   \        hR # rc   )authenticater%  keyrK   rf   s   &r;   r0  #PDFStandardSecurityHandler.init_keyl  s-    $$T]]388&& r:   c                    < V ^8  d   QhRS[ /# rX   bool)r^   r_   s   "r;   r`   r'  q  s        d  r:   c                :    \        V P                  ^,          4      #    rG  r;  rf   s   &r;   is_printable'PDFStandardSecurityHandler.is_printableq      DFFQJr:   c                    < V ^8  d   QhRS[ /# rX   rF  )r^   r_   s   "r;   r`   r'  t  s        t  r:   c                :    \        V P                  ^,          4      # )   rK  rf   s   &r;   is_modifiable(PDFStandardSecurityHandler.is_modifiablet  rN  r:   c                    < V ^8  d   QhRS[ /# rX   rF  )r^   r_   s   "r;   r`   r'  w  s     ! ! !r:   c                :    \        V P                  ^,          4      # )   rK  rf   s   &r;   is_extractable)PDFStandardSecurityHandler.is_extractablew  s    DFFRK  r:   c                &   < V ^8  d   QhRS[ RS[ /# rY   rC  rZ   r&  )r^   r_   s   "r;   r`   r'  z  s      U u r:   c                  a V P                   ^8X  d%   \        V4      P                  V P                  4      # \	        V P                  4      pVP                  V P                  ^ ,          4       \        V4      P                  VP                  4       4      p\        ^^4       FA  oRP                  V3R l\        V4       4       4      p\        V4      P                  V4      pKC  	  W3,          pV# )rY   r:   c              3   J   <"   T F  p\        VS,          34      x  K  	  R # 5irc   r[  .0cr  s   & r;   	<genexpr>7PDFStandardSecurityHandler.compute_u.<locals>.<genexpr>       @iUAE8__i    #)r.  r   encryptPASSWORD_PADDINGr   r   r#  digestr   r	  iter)rg   rC  hashresultkr  s   &&   @r;   	compute_u$PDFStandardSecurityHandler.compute_uz  s    66Q;3<''(=(=>> t,,-DKK

1&S\))$++-8F1b\HH@d3i@@ ++F3 " FMr:   c                &   < V ^8  d   QhRS[ RS[ /# rY   r%  rZ   r[  )r^   r_   s   "r;   r`   r'    s      u  r:   c                z   WP                   ,           R ,          p\        V4      pVP                  V P                  4       VP                  \        P
                  ! RV P                  4      4       VP                  V P                  ^ ,          4       V P                  ^8  d2   \        \        V 4      P                  '       g   VP                  R4       VP                  4       p^pV P                  ^8  dB   V P                  ^,          p\        ^24       F  p\        VRV 4      P                  4       pK!  	  VRV # )N    N<Ls   N)rf  r   r   r<  structpackr;  r#  r.  r   PDFStandardSecurityHandlerV4encrypt_metadatarg  r>  r   )rg   r%  ri  rj  r   r   s   &&    r;   compute_encryption_key1PDFStandardSecurityHandler.compute_encryption_key  s    444c:8}DFFFKKdff-.DJJqM"FFaK5t<MMMKK+,66Q;q A2YVBQZ//1 bqzr:   c                4   < V ^8  d   QhRS[ RS[R,          /# rY   r%  rZ   Nr]   r&  )r^   r_   s   "r;   r`   r'    s      S UT\ r:   c                t    VP                  R 4      pV P                  V4      pVf   V P                  V4      pV# )latin1)encodeauthenticate_user_passwordauthenticate_owner_password)rg   r%  password_bytesrC  s   &&  r;   rB  'PDFStandardSecurityHandler.authenticate  s:    !2--n=;22>BC
r:   c                4   < V ^8  d   QhRS[ RS[ R,          /# r{  r[  )r^   r_   s   "r;   r`   r'    s      5 UT\ r:   c                Z    V P                  V4      pV P                  V4      '       d   V# R # rc   )rx  verify_encryption_key)rg   r%  rC  s   && r;   r  5PDFStandardSecurityHandler.authenticate_user_password  s+    ))(3%%c**Jr:   c                &   < V ^8  d   QhRS[ RS[/# rZ  )r&  rG  )r^   r_   s   "r;   r`   r'    s     % % %4 %r:   c                    V P                  V4      pV P                  ^8X  d   W P                  8H  # VR,          V P                  R,          8H  # )rY   NrV  N)rl  r.  r=  )rg   rC  r=  s   && r;   r  0PDFStandardSecurityHandler.verify_encryption_key  s>    NN366Q;;v$$r:   c                4   < V ^8  d   QhRS[ RS[ R,          /# r{  r[  )r^   r_   s   "r;   r`   r'    s     > >E >edl >r:   c                  a WP                   ,           R ,          p\        V4      pV P                  ^8  d,   \        ^24       F  p\        VP	                  4       4      pK  	  ^pV P                  ^8  d   V P
                  ^,          pVP	                  4       RV pV P                  ^8X  d&   \        V4      P                  V P                  4      pM^V P                  p\        ^RR4       FA  oRP                  V3R l\        V4       4       4      p\        V4      P                  V4      pKC  	  V P                  V4      # )rq  Nr:   c              3   J   <"   T F  p\        VS,          34      x  K  	  R # 5irc   r[  r^  s   & r;   ra  IPDFStandardSecurityHandler.authenticate_owner_password.<locals>.<genexpr>  rc  rd  )rf  r   r.  r   rg  r>  r   decryptr<  r	  rh  r  )	rg   r%  ri  r   r   rC  user_passwordrk  r  s	   &&      @r;   r  6PDFStandardSecurityHandler.authenticate_owner_password  s    444c:8}66Q;2Y4;;=) 66Q;q AkkmBQ66Q;#CL008M FFM2r2&HH@d3i@@ '
 2 2= A ' ..}==r:   Nc          
      \   < V ^8  d   QhRS[ RS[ RS[RS[S[S[3,          R,          RS[/# )rY   rr   r   r   r  NrZ   rl   r&  r\   r]   r   )r^   r_   s   "r;   r`   r'    sJ     4 44 4 	4
 CH~$4 
4r:   c                &    V P                  WV4      # rc   )decrypt_rc4)rg   rr   r   r   r  s   &&&&&r;   r  "PDFStandardSecurityHandler.decrypt  s     d33r:   c                2   < V ^8  d   QhRS[ RS[ RS[RS[/# rY   rr   r   r   rZ   rl   r&  )r^   r_   s   "r;   r`   r'    s)     * * *S * *% *r:   c                \   V P                   f   Q hV P                   \        P                  ! RV4      R,          ,           \        P                  ! RV4      R,          ,           p\        V4      pVP	                  4       R \        \        V4      ^4       p\        V4      P                  V4      # )Nrs  N   NNrY   N)	rC  rt  ru  r   rg  r   r   r   r  )rg   rr   r   r   rC  ri  s   &&&&  r;   r  &PDFStandardSecurityHandler.decrypt_rc4  s    xx###hhT51"55D%8PQS8TT3xkkm/c#c(B/0s|##D))r:   c                :   < V ^8  d   Qh/ S[ S[R3,          ;R&   # rY   .r/  rt   rl   )r^   r_   s   "r;   r`   r'  L  s      sCx1	 r:   )
r#  rC  r>  r<  r;  r$  r%  r.  r=  r:  )rY   r   rc   )r5   r6   r7   r8   rf  r/  r   r)  r-  r0  rL  rR  rW  rl  rx  rB  r  r  r  r  r  __annotate_func__r9   r   r   s   @r;   r!  r!  L  s     U  ,2	 	 > >' '
      ! !  *  % %> >(4 4* *I  r:   r!  c                      a a ] tR tRt oRtV3R lV 3R lltV3R lR ltRV3R lR lltV3R lR	 ltV3R
 lR lt	V3R lt
RtVtV ;t# )rv  i  c                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   )PDFStandardSecurityHandlerV4.__annotate__  s     0 0T 0r:   c                V  < \         SV `  4        ^V n        \        V P                  P                  R4      4      V n        \        V P                  R,          4      V n        \        V P                  R,          4      V n	        \        V P                  P                  RR4      4      V n        V P                  V P                  8w  d   RV P                  : 2p\        V4      h/ V n        V P                  P                  4        FS  w  r#V P                  \        VR,          4      4      pVf   R	V P                  : 2p\        V4      hW@P                  V&   KU  	  V P                   V P                  R
&   V P                  V P                  9  d   RV P                  : 2p\        V4      hR# )   CFStmFStrFEncryptMetadataTz Unsupported crypt filter: param=CFMNz#Unknown crypt filter method: param=IdentityzUndefined crypt filter: param=)superr-  r>  r!   r$  r   cfr*   stmfstrfrG  rw  rI   cfmitemsget_cfmdecrypt_identity)rg   r   rk  r:  r   	__class__s   &    r;   r-  (PDFStandardSecurityHandlerV4.init_params  sE   TZZ^^D12 F!34	 F!34	 $TZZ^^4Et%L M99		!:4::.II$Y//GGMMODA\!E(34AyA$**P	(33HHQK $  $4499DHH$8GI$Y// %r:   c                T   < V ^8  d   QhRS[ RS[S[S[S[.S[3,          R,          /# rY   namerZ   Nr]   r   rl   r&  )r^   r_   s   "r;   r`   r    s1      C Hc3->-E$F$M r:   c                R    VR 8X  d   V P                   # VR8X  d   V P                  # R# )V2AESV2N)r  decrypt_aes128rg   r  s   &&r;   r  $PDFStandardSecurityHandlerV4.get_cfm  s+    4<###W_&&&r:   c                p   < V ^8  d   QhRS[ RS[ RS[RS[S[S[3,          R,          RS[R,          RS[/# )rY   rr   r   r   r  Nr  rZ   r  )r^   r_   s   "r;   r`   r    sX     2 22 2 	2
 CH~$2 Dj2 
2r:   c                    V P                   '       g,   Ve(   VP                  R4      pVe   \        V4      R8X  d   V# Vf   V P                  pV P                  V,          ! WV4      # )Nr   Metadata)rw  r   r*   r  r  )rg   rr   r   r   r  r  ts   &&&&&& r;   r  $PDFStandardSecurityHandlerV4.decrypt  s[     $$$):		&!A}aJ!><99Dxx~eD11r:   c                2   < V ^8  d   QhRS[ RS[ RS[RS[/# r  r  )r^   r_   s   "r;   r`   r  	  s)      c # U u r:   c                    V# rc   r3   )rg   rr   r   r   s   &&&&r;   r  -PDFStandardSecurityHandlerV4.decrypt_identity	  s    r:   c                2   < V ^8  d   QhRS[ RS[ RS[RS[/# r  r  )r^   r_   s   "r;   r`   r    s)     $ $C $ $5 $U $r:   c                *   V P                   f   Q hV P                   \        P                  ! RV4      R,          ,           \        P                  ! RV4      R,          ,           R,           p\        V4      pVP	                  4       R \        \        V4      ^4       pVR,          pVR,          p\        \        P                  ! V4      \        P                  ! V4      \        4       R7      pVP                  4       P                  V4      p	\        V	4      # )Nrs  r  r  s   sAlTr  rV  NNbackend)rC  rt  ru  r   rg  r   r   r   r   AESr   CBCr   	decryptorr   r0   )
rg   rr   r   r   rC  ri  initialization_vector
ciphertextcipher	plaintexts
   &&&&      r;   r  +PDFStandardSecurityHandlerV4.decrypt_aes128  s    xx###HHkk$&r*+kk$&r*+  	 3xkkm/c#c(B/0 $S	#Y
NN3II+,#%

 $$&--j9	##r:   c                :   < V ^8  d   Qh/ S[ S[R3,          ;R&   # r  r  )r^   r_   s   "r;   r`   r    s     sCx/ r:   )r  r  rw  r>  r  r  rI  )NN)r5   r6   r7   r8   r/  r-  r  r  r  r  r  r9   r   __classcell__r  r_   s   @@r;   rv  rv    sE     +/0 0, 2 2  $ $i  r:   rv  c                      a a ] tR tRt oRtV3R lV 3R lltV3R lR ltV3R lR ltV3R lR	 ltRV3R
 lR llt	RV3R lR llt
RV3R lR llt]V3R lR l4       tV3R lR ltV3R lR ltRtVtV ;t# )PDFStandardSecurityHandlerV5i!  c                   < V ^8  d   QhRR/# r   r3   )r^   r_   s   "r;   r`   )PDFStandardSecurityHandlerV5.__annotate__$  s     
& 
&T 
&r:   c                  < \         SV `  4        R V n        \        V P                  R,          4      V n        \        V P                  R,          4      V n        V P                  R,          V n        V P                  R,          V n	        V P                  R,          V n
        V P                  R,          V n        V P                  R,          V n        V P                  R,          V n        R# )   OEUErq  :rr  (   N:r  NNN)r  r-  r>  r$   r$  oeuer<  o_hasho_validation_salt
o_key_saltr=  u_hashu_validation_salt
u_key_salt)rg   r  s   &r;   r-  (PDFStandardSecurityHandlerV5.init_params$  s    DJJt,-DJJt,-ffSk!%&&+ffSk!%&&+r:   c                T   < V ^8  d   QhRS[ RS[S[S[S[.S[3,          R,          /# r  r  )r^   r_   s   "r;   r`   r  0  s1      C Hc3->-E$F$M r:   c                ,    VR 8X  d   V P                   # R# )AESV3N)decrypt_aes256r  s   &&r;   r  $PDFStandardSecurityHandlerV5.get_cfm0  s    7?&&&r:   c                4   < V ^8  d   QhRS[ RS[R,          /# r{  r|  )r^   r_   s   "r;   r`   r  6  s      S UT\ r:   c                   V P                  V4      pV P                  W P                  V P                  4      pW0P                  8X  d   V P                  W P
                  V P                  4      p\        \        P                  ! V4      \        P                  ! R4      \        4       R7      pVP                  4       P                  V P                  4      # V P                  W P                  4      pW0P                   8X  d   V P                  W P"                  4      p\        \        P                  ! V4      \        P                  ! R4      \        4       R7      pVP                  4       P                  V P$                  4      # R# )    r  Ns                   )_normalize_password_password_hashr  r=  r  r  r   r   r  r   r  r   r  r   r  r  r  r  r  )rg   r%  
password_bri  r  s   &&   r;   rB  )PDFStandardSecurityHandlerV5.authenticate6  s   --h7
"":/E/EtvvN;;&&z??DFFKDt$		*%')F
 ##%,,TWW55"":/E/EF;;&&z??CDt$		*%')F
 ##%,,TWW55r:   c                &   < V ^8  d   QhRS[ RS[/# ro  r|  )r^   r_   s   "r;   r`   r  L  s     . .C .E .r:   c                    V P                   ^8X  d   V'       g   R# ^ RIHp V! V4      pVP                  R4      R,          # )   r:   )saslprepzutf-8:N   N)r.  pdfminer._saslprepr  r  )rg   r%  r  s   && r;   r  0PDFStandardSecurityHandlerV5._normalize_passwordL  s4    66Q;3)Hw'--r:   c                @   < V ^8  d   QhRS[ RS[ RS[ R,          RS[ /# rY   r%  saltvectorNrZ   r[  )r^   r_   s   "r;   r`   r  V  s7     	> 	>	> 	> 		>
 
	>r:   c                z    V P                   ^8X  d   V P                  WV4      # V P                  WR,          V4      # )z2Compute password hash depending on revision number:r   rQ  N)r.  _r5_password_r6_password)rg   r%  r  r  s   &&&&r;   r  +PDFStandardSecurityHandlerV5._password_hashV  s9     66Q;$$XV<<  9f==r:   c                @   < V ^8  d   QhRS[ RS[ RS[ R,          RS[ /# r  r[  )r^   r_   s   "r;   r`   r  a  s7        	
 
r:   c                    \        V4      pVP                  V4       Ve   VP                  V4       VP                  4       # )z#Compute the password for revision 5)r	   r   rg  )rg   r%  r  r  ri  s   &&&& r;   r  )PDFStandardSecurityHandlerV5._r5_passworda  s8     hDKK{{}r:   c                @   < V ^8  d   QhRS[ RS[ RS[ R,          RS[ /# r  r[  )r^   r_   s   "r;   r`   r  n  s7        	
 
r:   c                   \        V4      pVP                  V4       Ve   VP                  V4       VP                  4       p\         \        \        3p^ ;rxV^@8  g   W^ ,
          8  d   W,           T;'       g    R,           ^@,          p	V P                  VR,          VR,          V	R7      p
W`P                  V
R,          4      ,          pV! V
4      P                  4       pV
\        V
4      ^,
          ,          pV^,          pK  VR,          # )z#Compute the password for revision 6r:   r  :rV  rr  N)rC  ivr   rq  )r	   r   rg  r
   r   _aes_cbc_encrypt_bytes_mod_3r   )rg   r%  r  r  initial_hashrk  hashesround_nolast_byte_valk1e	next_hashs   &&&&        r;   r	  )PDFStandardSecurityHandlerV5._r6_passwordn  s     h'D!'!&&)#$$m}"}<,&--C0B6B%%!C&QuXB%GA 00389I!##%Ac!fqjMMMHvr:   c                &   < V ^8  d   QhRS[ RS[/# )rY   input_bytesrZ   )r&  rl   )r^   r_   s   "r;   r`   r    s     3 3% 3C 3r:   c                4    \        R  V  4       4      ^,          # )c              3   2   "   T F  q^,          x  K  	  R# 5i)r  Nr3   )r_  bs   & r;   ra  <PDFStandardSecurityHandlerV5._bytes_mod_3.<locals>.<genexpr>  s     .+Qq55+s   )sum)r  s   &r;   r  )PDFStandardSecurityHandlerV5._bytes_mod_3  s     .+..22r:   c                2   < V ^8  d   QhRS[ RS[ RS[ RS[ /# )rY   rC  r  r   rZ   r[  )r^   r_   s   "r;   r`   r    s)     = =E =u =E =e =r:   c                    \        \        P                  ! V4      \        P                  ! V4      4      pVP                  4       pVP                  V4      VP                  4       ,           # rc   )r   r   r  r   r  	encryptorr   finalize)rg   rC  r  r   r  r%  s   &&&&  r;   r  -PDFStandardSecurityHandlerV5._aes_cbc_encrypt  sL    
s+UYYr];$$&	%	(:(:(<<<r:   c                2   < V ^8  d   QhRS[ RS[ RS[RS[/# r  r  )r^   r_   s   "r;   r`   r    s)     
$ 
$C 
$ 
$5 
$U 
$r:   c                *   VR ,          pVR,          pV P                   f   Q h\        \        P                  ! V P                   4      \        P
                  ! V4      \        4       R7      pVP                  4       P                  V4      p\        V4      # )r  r  r  )
rC  r   r   r  r   r  r   r  r   r0   )rg   rr   r   r   r  r  r  r  s   &&&&    r;   r  +PDFStandardSecurityHandlerV5.decrypt_aes256  sx     $S	#Y
xx###NN488$II+,#%

 $$&--j9	##r:   )	r>  r  r  r  r  r  r  r  r  )   r  rc   )r5   r6   r7   r8   r/  r-  r  rB  r  r  r  r	  staticmethodr  r  r  r9   r   r  r  s   @@r;   r  r  !  s~      
& 
&  ,. .	> 	>  2 3 3= =

$ 
$ 
$r:   r  c                   P  a  ] tR tRt o Rt^]^]^]^]/tRV 3R lR llt	]
! R4      tR V 3R lR lltV 3R lR	 ltV 3R
 lR ltV 3R lR ltV 3R lR lt]]]]]]3,          tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )!PDFDocumenti  a4  PDFDocument object represents a PDF document.

Since a PDF file can be very big, normally it is not loaded at
once. So PDF document has to cooperate with a PDF parser in order to
dynamically import the data as processing goes.

Typical usage:
  doc = PDFDocument(parser, password)
  obj = doc.getobj(objid)

c          
      6   < V ^8  d   QhRS[ RS[RS[RS[RR/# )rY   r{   r%  cachingfallbackrZ   N)r   r]   rG  )r^   r_   s   "r;   r`   PDFDocument.__annotate__  s=     57 5757 57 	57
 57 
57r:   c                0   W0n         . V n        . V n        / V n        RV n        RV n        RV n        / V n        / V n        Wn        V P                  P                  V 4       R;V n
        ;V n        V n         V P                  V4      pV P                  WV P                  4       V P                   F  pVP)                  4       pV'       g   K  RV9   dF   RV9   d   \+        VR,          4      MR
p	V	\-        VR,          4      3V n        V P/                  V4       RV9   d,   V P                  P'                  \-        VR,          4      4       RV9   g   K  \-        VR,          4      V n         M	  \1        R4      hV P                  P3                  R4      \4        Jd$   \6        P8                  '       d   \1        R	4      hR# R#   \         dJ    T'       d>   RTn        \#        4       pTP%                  T4       T P                  P'                  T4        ELqi ; i)z1Set the document to use a given PDFParser object.NTEncryptIDInfoRootz(No /Root object! - Is this really a PDF?r   zCatalog not found!)r:   r:   )r0  xrefsinfocatalog
encryptiondecipher_parser_cached_objs_parsed_objsset_documentrL  rR  rW  	find_xrefread_xref_fromr2   r1  r   r~   r   rh   r#   r!   _initialize_passwordr   r   LITERAL_CATALOGr   r   )
rg   r{   r%  r0  r1  r   newxrefxrefr   id_values
   &&&&&     r;   r   PDFDocument.__init__  s    (*
	')2615;=AC!!$'GKKKD.1D	+..(CTZZ8 JJD&&(GG# 9=:gdm4Z#+Z	8J-K"L))(3 		  GFO!<= )'&/:# & !!KLL<<F#?:x !566 @O:7  	+"&)+V$

!!'*	+s   6-G H=HH   objc                $   < V ^8  d   QhRS[ RR/# r{  r   )r^   r_   s   "r;   r`   r2    s     & &S &$ &r:   c                $   V P                   f   Q hV P                   w  r#\        VP                  R4      4      R8w  d   \        RV: 24      h\	        VP                  R^ 4      4      pV P
                  P                  V4      pVf   \        RV: 24      hV! W#V4      pVP                  V n        VP                  4       V n        VP                  4       V n	        VP                  4       V n
        V P                  f   Q hRV P                  n        R # )NFilterStandardzUnknown filter: param=r4  zUnknown algorithm: param=F)r;  r*   r   rI   r"   security_handler_registryr  r<  rL  rR  rW  r=  r1  )rg   r%  r#  r$  r:  factoryhandlers   &&     r;   rC   PDFDocument._initialize_password  s    ***		(+,
:$'=eY%GHHeiiQ'(0044Q7?$'@	%JKK%1#002$224%446||''' %r:   c                2   < V ^8  d   QhRS[ RS[RS[RS[/# )rY   r   r   rr   rZ   )r   rl   object)r^   r_   s   "r;   r`   r2    s)      Y s 3 6 r:   c                   VP                   V P                  9   d!   V P                  VP                   ,          w  rEMOV P                  V4      w  rEV P                  '       d+   VP                   f   Q hWE3V P                  VP                   &   V^,          V,           p WF,          pV#   \         d   p\        RT: 24      ThR p?ii ; i)Nzindex too big: )rr   r?  _get_objectsr0  
IndexErrorr   )	rg   r   r   rr   r   r   r  r   r   s	   &&&&     r;   _getobj_objstmPDFDocument._getobj_objstm  s    <<4,,,))&,,7IT1))&1IT|||||///37)!!&,,/EEM	G'C 
  	G ?5)!<=3F	Gs   B& &C1CCc                L   < V ^8  d   QhRS[ RS[S[S[,          S[3,          /# )rY   r   rZ   )r   rt   listrS  rl   )r^   r_   s   "r;   r`   r2    s)      9 tF|S7H1I r:   c                   VP                  R 4      \        Jd&   \        P                  '       d   \	        RV: 24      h \        \        VR,          4      p\        VP                  4       4      pVP                  V 4       . p  VP                  4       w  rVVP                  V4       K&    \         d,    \        P                  '       d   \	        RT: 24      Rh^ p Li ; i  \         d     YB3# i ; i)r   zNot a stream object: r   r   N)r   r   r   r   r   r   rl   r   r   r   r@  r   r   r'   )rg   r   r   r{   r   r   r   s   &&     r;   rU  PDFDocument._get_objects  s    ::f^3 #8
!CDD	S&+&A
 !!23D!	!,,.C   	$'9&%DE4OA	  	y	s*    B* &C# * C C C #C32C3c                ,   < V ^8  d   QhRS[ RS[ RS[/# )rY   r   rr   rZ   rl   rS  )r^   r_   s   "r;   r`   r2  !  s"       S V r:   c                j   V P                   f   Q hV P                   P                  V4       V P                   P                  4       w  r4V P                   P                  4       w  r5V P                   P                  4       w  r6WB8w  dZ   . pW`P                  Jd0   V P                   P                  4       w  r6VP	                  V4       K>  \        V4      ^8  d
   VR,          pWB8w  d   \        RV: RV: 24      hV\        R4      8w  d   \        RV: 24      hV P                   P                  4       w  r8V# )Nzobjid mismatch: =rI  zInvalid object spec: offset=)	r=  r   r   KEYWORD_OBJr   r   r   r(   r   )	rg   r   rr   r   r   r  r   r   r   s	   &&&      r;   _getobj_parsePDFDocument._getobj_parse!  s   ||'''#ll,,.ll,,.<<))+ ?A---<<1131v{2? #3F:Qui!HII#f+ #?w!GHH<<**,
r:   c                &   < V ^8  d   QhRS[ RS[/# )rY   rr   rZ   r^  )r^   r_   s   "r;   r`   r2  =  s     & &C &F &r:   c                   V P                   '       g   \        R4      h\        P                  RV4       WP                  9   d   V P                  V,          w  r#V# V P                    F  p VP                  V4      w  rVp Te.   \        T P                  T4      4      pT P                  YvT4      pM:T P                  Ya4      pT P                  '       d   \        T P                  YT4      p\        T\        4      '       d   TP                  Y4        M	  \%        V4      h\        P                  RY4       T P&                  '       d   Y#3T P                  T&   T#   \         d     EK  i ; i  \         \"        3 d     EK  i ; i)zGet object from PDF

:raises PDFException if PDFDocument is not initialized
:raises PDFObjectNotFound if objid does not exist in PDF
zPDFDocument is not initializedzgetobj: objid=%rzregister: objid=%r: %r)r8  r   r   r   r>  rw   r   r%   getobjrW  rc  r<  r    r   r   	set_objidr'   r   r   r0  )rg   rr   r   r   rF  strmidr   r   s   &&      r;   rg  PDFDocument.getobj=  sV    zzz?@@		$e, %%%,,U3LS4 
1 

-1\\%-@*VE)!-dkk&.A!B"11&G"00>===".t}}eC"PC!#y11e3! #( (..II.;|||,/<!!%(
+    ~. s%   +E BE.E+*E+.FFc                0   < V ^8  d   QhRS[ S[,          /# rX   )r   OutlineType)r^   r_   s   "r;   r`   r2  g  s     3 3h{3 3r:   c                x   a R V P                   9  d   \        hR V3R lloS! V P                   R ,          ^ 4      # )Outlinesc                f    V ^8  d   QhR\         R\        R\        \        P                  ,          /# )rY   entrylevelrZ   )rS  rl   r   r.  rl  )r^   s   "r;   r`   .PDFDocument.get_outlines.<locals>.__annotate__k  s,     	8 	8& 	8 	8+:Q:Q1R 	8r:   c              3     <"   \        V 4      p R V 9   dd   RV 9   g   RV 9   dV   \        \        V R ,          4      4      pV P                  R4      pV P                  R4      pV P                  R4      pWW4V3x  RV 9   d'   RV 9   d    S! V R,          V^,           4       Rj  xL
  RV 9   d   S! V R,          V4       Rj  xL
  R# R#  L' L
5i)TitleADestSEFirstLastNNext)r!   r,   r$   r   )rp  rq  titledestactionsesearchs   &&    r;   r  (PDFDocument.get_outlines.<locals>.searchk  s     u%E%SE\Vu_#IeGn$=>yy(3YYt_T266%FeO!%.%!)<<<!%-777  =7s$   BC!C	"C C	CC)r:  rC   )rg   r  s   &@r;   get_outlinesPDFDocument.get_outlinesg  s7    T\\)	8 	8 dll:.22r:   c                0   < V ^8  d   QhRS[ S[,          /# rX   r   r]   )r^   r_   s   "r;   r`   r2  z  s     " "# "r:   c                    V P                   f   Q h \        V P                   R,          4      pVP
                  #   \        \        3 d   p\        ThRp?ii ; i)zGenerate page label strings for the PDF document.

If the document includes page labels, generates strings, one per page.
If not, raises PDFNoPageLabels.

The resulting iteration is unbounded.
N
PageLabels)r:  r  r   r   rE   labels)rg   page_labelsr   s   &  r;   get_page_labelsPDFDocument.get_page_labelsz  sY     ||'''	+$T\\,%?@K !!! h' 	+!s*	+s   : AAAc                <   < V ^8  d   QhRS[ RS[ S[,          RS[/# )rY   catrC  rZ   r]   r&  r   )r^   r_   s   "r;   r`   r2    s&      s u  r:   c                   aaa  \        V P                  R ,          4      p\        TS,          4      pR TTT3R lloS! T4      #   \        \        3 d   p\	        SS34      ThRp?ii ; i)NamesNc                R    V ^8  d   QhR\         \        \        3,          R\        /# )rY   drZ   r[   )r^   s   "r;   r`   -PDFDocument.lookup_name.<locals>.__annotate__  s"     	* 	*d38n 	* 	*r:   c           	        < R V 9   d%   \        V R ,          4      w  rSV8  g   VS8  d   R# RV 9   df   \        V R,          4      p\        \        \        \        \
        \        ,          \        3,          ,          \        ^V4      4      4      pVS,          # RV 9   d7   \        V R,          4       F   pS	! \        V4      4      pV'       g   K  Vu # 	  \        SS34      h)LimitsNr  Kids)r#   r\   r   r   rt   r]   r&  r   r+   r!   r   )
r  r  k2r   namesr`  r:  r  rC  lookups
   &      r;   r  'PDFDocument.lookup_name.<locals>.lookup  s    1}%ak28rCx!|!!G*-%eS(8"9:HQ<MN Sz!{#AfI.Az!}-Aq  / sCj))r:   )r!   r:  r   r   r   )rg   r  rC  r  r   d0r  s   &ff   @r;   lookup_namePDFDocument.lookup_name  si    	3t||G45E c
#	* 	*$ bz/ h' 	3sCj)s2	3s   A A*A%%A*c                6   < V ^8  d   QhRS[ S[,          RS[/# )rY   r  rZ   r  )r^   r_   s   "r;   r`   r2    s      S5[ S r:   c                     V P                  R V4      pV#   \         dX    R T P                  9  d   \        T4      Rh\	        T P                  R ,          4      pY9  d   \        T4      RhY1,          p T# i ; i)DestsN)r  r   r:  rG   r!   )rg   r  r   r  s   &&  r;   get_destPDFDocument.get_dest  s{    
	""7D1C 
  	dll*,T2<DLL12B~,T2<(C
	s    AA87A8c                &   < V ^8  d   QhRS[ RS[/# )rY   r{   rZ   )r   rl   )r^   r_   s   "r;   r`   r2    s     / /	 /c /r:   c                z   RpVP                  4        F  pVP                  4       p\        P                  RV4       VR8X  d`   \        P                  RV4       VP	                  4       '       g   \        RV: 24      h\        V4      pV^ 8  g   \        RV 24      hVu # V'       g   K  TpK  	  \        R4      h)z0Internal function used to locate the first XRef.r:   zfind_xref: %rs	   startxrefzxref found: pos=%rzInvalid xref position: z Invalid negative xref position: Unexpected EOF)revreadlinesr   r   r   isdigitr2   rl   )rg   r{   prevr   r   s   &&   r;   rA  PDFDocument.find_xref  s     '')D::<DIIot,|#		.5||~~(+B4()KLLD	z(+KE7)STTt% *( -..r:   c                @   < V ^8  d   QhRS[ RS[RS[S[,          RR/# )rY   r{   r   r8  rZ   N)r   rl   rZ  rV   )r^   r_   s   "r;   r`   r2    s8     "4 "4"4 "4 K 	"4
 
"4r:   c                   VP                  V4       VP                  4         VP                  4       w  rE\
        P                  RY%4       \        T\        4      '       d>   TP                  T4       TP                  4        \        4       pTP                  T4       M:YQP                  J d   TP                  4        \        4       pTP                  T4       TP                  T4       TP                  4       p\
        P                  RT4       RT9   d%   \!        TR,          4      pT P#                  YT4       RT9   d'   \!        TR,          4      pT P#                  YT4       R# R#   \         d   p\	        R4      ThRp?ii ; i)z$Reads XRefs from the given location.r  Nz"read_xref_from: start=%d, token=%rr   XRefStmPrev)r   resetr   r'   r2   r   r   r   rl   r   r~   KEYWORD_XREFr   r   r   rh   r"   rB  )	rg   r{   r   r8  r   tokenr   rF  r   s	   &&&&     r;   rB  PDFDocument.read_xref_from  s7    	E	<!++-LS 			6EeS!!KKLLN -DIIf+++!9DIIfT""$		-)GI./CU3WGFO,CU3 )  	< !12;	<s   E) )F4F  Fc                \   < V ^8  d   Qh/ S[ S[S[S[S[,          3,          ,          ;R&   # )rY   rN  )r   r\   rl   typer!  )r^   r_   s   "r;   r`   r2    s)       (S$7Q2R-R(ST  r:   )r>  r?  r=  r0  r:  r<  r;  r9  rW  rR  rL  r8  N)r  TTr  )r5   r6   r7   r8   r@   r!  rv  r  rN  r   r(   rb  rC  rW  rU  rc  rg  rt   r   rl  r  r  r  r  rA  rB  r  r9   r   r   s   @r;   r.  r.    s     
 	
%	%	'	'	X57 57n f+K& &"  ( 8& &P S#sC/0K3 3&" "" 8 / /6"4 "4g	  r:   r.  c                   \   a  ] tR tRt o Rt]V 3R lR l4       t]V 3R lR l4       tRt	V t
R# )	r  i  zOPageLabels from the document catalog.

See Section 8.3.1 in the PDF Reference.
c                0   < V ^8  d   QhRS[ S[,          /# rX   r  )r^   r_   s   "r;   r`   PageLabels.__annotate__  s     % % %r:   c           	   #    "   V P                   p\        V4      ^ 8X  g   V^ ,          ^ ,          ^ 8w  d6   \        P                  '       d   \	        R4      hVP                  ^ ^ / 34       \        V^4       F  w  pw  r4\        V4      pVP                  R4      p\        \        VP                  RR4      4      4      p\        VP                  R^4      4      pV\        V4      8X  d   \        P                  ! V4      p	M$W,          w  rW,
          p\        WV,           4      p	V	 F  pV P                  W4      pW~,           x  K   	  K  	  R# 5i)r   z"PageLabels is missing page index 0Sr6  r:   StN)valuesr   r   r   r   insert	enumerater!   r   r,   r$   r"   	itertoolscountr   _format_page_label)rg   r   nextr   label_dict_unchecked
label_dictstyleprefixfirst_valuer  endr   range_lengthvaluelabels   &              r;   r  PageLabels.labels  s     v;!vay|q0$%IJJ a!R)3<VQ3G/D/5#$89JNN3'E :>>#s+C!DEF#JNN4$;<Ks6{" )2(D"{{,,FG//=n$   4Hs   AE
DEc                ,   < V ^8  d   QhRS[ RS[RS[/# )rY   r  r  rZ   )rl   r   r]   )r^   r_   s   "r;   r`   r    s"      # c c r:   c                   Vf   RpV# V\        R4      J d   \        V 4      pV# V\        R4      J d   \        V 4      P                  4       pV# V\        R4      J d   \        V 4      pV# V\        R4      J d   \	        V 4      P                  4       pV# V\        R4      J d   \	        V 4      pV# \
        P                  RV4       RpV# )z+Format page label value in a specific styler  Dr5  r.  ru  azUnknown page label style: %r)r)   r]   r.   upperr-   r   r   )r  r  r  s   && r;   r  PageLabels._format_page_label  s     =E  c#hJE  c#h$U+113E  c#h$U+E  c#h$U+113E  c#h$U+E  KK6>Er:   r3   N)r5   r6   r7   r8   r@   propertyr  r,  r  r9   r   r   s   @r;   r  r    s2     
 % %<  r:   r  )\r  loggingr   rt  collections.abcr   r   r   r   r   hashlibr   r	   r
   r   typingr   r   r   cryptography.hazmat.backendsr   &cryptography.hazmat.primitives.ciphersr   r   r   pdfminerr   pdfminer.arcfourr   pdfminer.castingr   pdfminer.data_structuresr   pdfminer.pdfexceptionsr   r   r   r   pdfminer.pdfparserr   r   r   pdfminer.pdftypesr   r   r    r!   r"   r#   r$   r%   r&   pdfminer.psexceptionsr'   pdfminer.psparserr(   r)   r*   pdfminer.utilsr+   r,   r-   r.   r/   r0   	getLoggerr5   r   r2   SyntaxWarningr>   rC   rE   rG   rI   rK   UserWarningrM   rO   rQ   r   r  rD  rV   r   r   r   r!  rv  r  r.  r  r3   r:   r;   <module>r     s     	  L L / /  9 L L  $ % /  J I
 
 
 ( 4 4  !	^ 	M 	L 		l 		\ 		 		- 	;  	"4 	
 X6{i." ""L#k L#^0=g 0=fK%K K%\I* I*XF$#= F$Rz$#? z$zU4 U4p
7 7r:   