§
    ¢”jq•  ã            	      óè  — d dl mZ d dlZd dlZd dlZ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 dZerd dl
mZ ej        eez  ef         Znej        Zdwd
„Zi dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“i d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“¥dOdPdQdRdSdTdUdVœ¥ZdxdX„Z G dY„ dZe¦  «        Zdyd_„Z G d`„ dae¦  «        Z G db„ dce¦  «        Z G dd„ dee¦  «        Z G df„ dg¦  «        Z G dh„ di¦  «        Z G dj„ dkee         ¦  «        Z G dl„ dme¦  «        Z  G dn„ do¦  «        Z! G dp„ dq¦  «        Z"dzdt„Z# G du„ dv¦  «        Z$dS ){é    )ÚannotationsN)ÚAnyÚ
NamedTupleF)ÚIOÚsÚstrÚreturnÚbytesc                óF   — t           j        |                      d¦  «        z   S )NÚ	utf_16_be)ÚcodecsÚBOM_UTF16_BEÚencode)r   s    ú\/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/PIL/PdfParser.pyÚencode_textr      s   € ÝÔ §¢¨+Ñ!6Ô!6Ñ6Ð6ó    é   úé   u   Ë˜é   u   Ë‡é   u   Ë†é   u   Ë™é   u   Ë�é   u   Ë›é   u   Ëšé   u   Ëœé€   u   â€¢é�   u   â€ é‚   u   â€¡éƒ   u   â€¦é„   u   â€”é…   u   â€“é†   u   Æ’é‡   u   â�„éˆ   u   â€¹é‰   u   â€ºéŠ   u   âˆ’é‹   u   â€°éŒ   u   â€žé�   u   â€œéŽ   u   â€�é�   u   â€˜é�   u   â€™é‘   u   â€šé’   u   â„¢é“   u   ï¬�é”   u   ï¬‚é•   u   Å�é–   u   Å’é—   u   Å é˜   u   Å¸u   Å½u   Ä±u   Å‚u   Å“u   Å¡u   Å¾u   â‚¬)é™   éš   é›   éœ   é�   éž   é    Úbc                ó  — | d t          t          j        ¦  «        …         t          j        k    r4| t          t          j        ¦  «        d …                              d¦  «        S d                     d„ | D ¦   «         ¦  «        S )Nr   Ú c              3  óf   K  — | ],}t                                |t          |¦  «        ¦  «        V — Œ-d S ©N)ÚPDFDocEncodingÚgetÚchr)Ú.0Úbytes     r   ú	<genexpr>zdecode_text.<locals>.<genexpr>M   s8   è è € ÐIÐI¸t•~×)Ò)¨$µ°D±	´	Ñ:Ô:ÐIÐIÐIÐIÐIÐIr   )Úlenr   r   ÚdecodeÚjoin)r=   s    r   Údecode_textrK   I   sq   € ØÐ	#�3�vÔ"Ñ#Ô#Ð	#Ô$­Ô(;Ò;Ð;Ø••VÔ(Ñ)Ô)Ð+Ð+Ô,×3Ò3°KÑ@Ô@Ð@à�wŠwÐIÐIÀqÐIÑIÔIÑIÔIÐIr   c                  ó   — e Zd ZdZdS )ÚPdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   rM   rM   P   s   € € € € € ðð ð 	€Dr   rM   Ú	conditionÚboolÚerror_messageÚNonec                ó(   — | st          |¦  «        ‚d S rA   )rM   )rS   rU   s     r   Úcheck_format_conditionrX   W   s"   € Øð ,Ý˜]Ñ+Ô+Ð+ð,ð ,r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚIndirectReferenceTupleÚintÚ	object_idÚ
generationN)rN   rO   rP   Ú__annotations__rR   r   r   rZ   rZ   \   s"   € € € € € € Ø€N€N�NØ€O€O�O€O€Or   rZ   c                  ó6   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„ZdS )ÚIndirectReferencer	   r   c                ó&   — | j         › d| j        › d�S )Nú z R©r\   r]   ©Úselfs    r   Ú__str__zIndirectReference.__str__b   s   € Ø”.Ð6Ð6 4¤?Ð6Ð6Ð6Ð6r   r
   c                óP   — |                       ¦   «                              d¦  «        S ©Núus-ascii)rf   r   rd   s    r   Ú	__bytes__zIndirectReference.__bytes__e   s   € Ø�|Š|‰~Œ~×$Ò$ ZÑ0Ô0Ð0r   ÚotherÚobjectrT   c                ó�   — | j         |j         urdS t          |t          ¦  «        sJ ‚|j        | j        k    o|j        | j        k    S )NF)Ú	__class__Ú
isinstancer`   r\   r]   ©re   rk   s     r   Ú__eq__zIndirectReference.__eq__h   sK   € ØŒ> ¤Ð0Ð0Ø�5Ý˜%Õ!2Ñ3Ô3Ð3Ð3Ð3ØŒ $¤.Ò0ÐX°UÔ5EÈÌÒ5XÐXr   c                ó   — | |k     S rA   rR   rp   s     r   Ú__ne__zIndirectReference.__ne__n   s   € Ø˜E’MÐ"Ð"r   r[   c                ó8   — t          | j        | j        f¦  «        S rA   )Úhashr\   r]   rd   s    r   Ú__hash__zIndirectReference.__hash__q   s   € Ý�T”^ T¤_Ð5Ñ6Ô6Ð6r   N©r	   r   ©r	   r
   ©rk   rl   r	   rT   ©r	   r[   )rN   rO   rP   rf   rj   rq   rs   rv   rR   r   r   r`   r`   a   s|   € € € € € ð7ð 7ð 7ð 7ð1ð 1ð 1ð 1ðYð Yð Yð Yð#ð #ð #ð #ð7ð 7ð 7ð 7ð 7ð 7r   r`   c                  ó   — e Zd Zdd„ZdS )ÚIndirectObjectDefr	   r   c                ó&   — | j         › d| j        › d�S )Nrb   z objrc   rd   s    r   rf   zIndirectObjectDef.__str__v   s   € Ø”.Ð8Ð8 4¤?Ð8Ð8Ð8Ð8r   Nrw   )rN   rO   rP   rf   rR   r   r   r|   r|   u   s(   € € € € € ð9ð 9ð 9ð 9ð 9ð 9r   r|   c                  óN   — e Zd Zdd„Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Z	dd„Z
dS )Ú	XrefTabler	   rV   c                óB   — i | _         i | _        ddi| _        d| _        d S )Nr   i   F)Úexisting_entriesÚnew_entriesÚdeleted_entriesÚreading_finishedrd   s    r   Ú__init__zXrefTable.__init__{   s6   € àð 	Ôð ð 	Ôð !" 5˜zˆÔØ %ˆÔÐÐr   Úkeyr[   Úvalueútuple[int, int]c                ód   — | j         r|| j        |<   n
|| j        |<   || j        v r
| j        |= d S d S rA   )r„   r‚   r�   rƒ   ©re   r†   r‡   s      r   Ú__setitem__zXrefTable.__setitem__…   sQ   € ØÔ ð 	/Ø$)ˆDÔ˜SÑ!Ð!à).ˆDÔ! #Ñ&Ø�$Ô&Ð&Ð&ØÔ$ SÐ)Ð)Ð)ð 'Ð&r   c                óX   — 	 | j         |         S # t          $ r | j        |         cY S w xY wrA   )r‚   ÚKeyErrorr�   ©re   r†   s     r   Ú__getitem__zXrefTable.__getitem__�   sD   € ð	.ØÔ# CÔ(Ð(øÝð 	.ð 	.ð 	.ØÔ(¨Ô-Ð-Ð-Ð-ð	.øøøs   ‚ �)¨)c                ó  — || j         v r*| j         |         d         dz   }| j         |= || j        |<   d S || j        v r"| j        |         d         dz   }|| j        |<   d S || j        v r| j        |         }d S d|› d�}t          |¦  «        ‚)Né   z
object ID z+ cannot be deleted because it doesn't exist)r‚   rƒ   r�   Ú
IndexError)re   r†   r]   Úmsgs       r   Ú__delitem__zXrefTable.__delitem__“   s¸   € Ø�$Ô"Ð"Ð"ØÔ)¨#Ô.¨qÔ1°AÑ5ˆJØÔ  Ð%Ø(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ)Ð)Ð)ØÔ.¨sÔ3°AÔ6¸Ñ:ˆJØ(2ˆDÔ  Ñ%Ð%Ð%Ø�DÔ(Ð(Ð(ØÔ-¨cÔ2ˆJˆJˆJàO˜sÐOÐOÐOˆCÝ˜S‘/”/Ð!r   rT   c                ó&   — || j         v p|| j        v S rA   )r�   r‚   rŽ   s     r   Ú__contains__zXrefTable.__contains__¡   s   € Ø�dÔ+Ð+ÐF¨s°dÔ6FÐ/FÐFr   c                ó  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  t          | j                             ¦   «         ¦  «        z  ¦  «        S rA   )rH   Úsetr�   Úkeysr‚   rƒ   rd   s    r   Ú__len__zXrefTable.__len__¤   sl   € ÝÝ�Ô%×*Ò*Ñ,Ô,Ñ-Ô-Ý�$Ô"×'Ò'Ñ)Ô)Ñ*Ô*ñ+å�$Ô&×+Ò+Ñ-Ô-Ñ.Ô.ñ/ñ
ô 
ð 	
r   úset[int]c                óê   — t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z
  t          | j                             ¦   «         ¦  «        z  S rA   )r˜   r�   r™   rƒ   r‚   rd   s    r   r™   zXrefTable.keys«   s\   € å�Ô%×*Ò*Ñ,Ô,Ñ-Ô-µ°DÔ4H×4MÒ4MÑ4OÔ4OÑ0PÔ0PÑPÝ�Ô ×%Ò%Ñ'Ô'Ñ(Ô(ñ)ð 	)r   Úfú	IO[bytes]c                ó˜  — t          t          | j                             ¦   «         ¦  «        t          | j                             ¦   «         ¦  «        z  ¦  «        }t          t          | j                             ¦   «         ¦  «        ¦  «        }|                     ¦   «         }|                     d¦  «         |�rd }t          |¦  «        D ](\  }}|�	|dz   |k    r|}Œ|d |…         }||d …         } n|}g }|                     d|d         t          |¦  «        fz  ¦  «         |D ]Ÿ}	|	| j        v r$|                     d| j        |	         z  ¦  «         Œ/| 	                    d¦  «        }
t          |	|
k    d|	› d|
› �¦  «         	 |d         }n# t          $ r d}Y nw xY w|                     d|| j        |	         fz  ¦  «         Œ |�°|S )	Ns   xref
r‘   s   %d %d
r   s   %010d %05d n 
z*expected the next deleted object ID to be z, instead found s   %010d %05d f 
)Úsortedr˜   r‚   r™   rƒ   ÚtellÚwriteÚ	enumeraterH   ÚpoprX   r’   )re   r�   r™   Údeleted_keysÚ	startxrefÚprevÚindexr†   Úcontiguous_keysr\   Úthis_deleted_object_idÚnext_in_linked_lists               r   r¢   zXrefTable.write°   s'  € Ý•c˜$Ô*×/Ò/Ñ1Ô1Ñ2Ô2µS¸Ô9M×9RÒ9RÑ9TÔ9TÑ5UÔ5UÑUÑVÔVˆÝ�c $Ô"6×";Ò";Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ˆØ—F’F‘H”Hˆ	Ø	�Š�	ÑÔÐØñ 	à#ˆDÝ'¨™oœoð 	ð 	‘
��sØ�< 4¨!¡8¨s¢? ?Ø�D�Dà&*¨6¨E¨6¤l�OØ   œ<�DØ�Eà"&�Ø�Ø�GŠG�J /°!Ô"4µc¸/Ñ6JÔ6JÐ!KÑKÑLÔLÐLØ,ð ð �	Ø Ô 0Ð0Ð0Ø—G’GÐ.°Ô1AÀ)Ô1LÑLÑMÔMÐMÐMà-9×-=Ò-=¸aÑ-@Ô-@Ð*Ý*Ø!Ð%;Ò;ðBÀYð Bð BØ)?ðBð Bñô ð ð
0Ø.:¸1¬oÐ+Ð+øÝ%ð 0ð 0ð 0Ø./Ð+Ð+Ð+ð0øøøà—G’GØ*Ø.°Ô0DÀYÔ0OÐPñQñô ð ð ð9 ñ 	ð@ Ðs   ÆFÆFÆFN©r	   rV   )r†   r[   r‡   rˆ   r	   rV   )r†   r[   r	   rˆ   )r†   r[   r	   rV   )r†   r[   r	   rT   rz   )r	   r›   )r�   rž   r	   r[   )rN   rO   rP   r…   r‹   r�   r”   r–   rš   r™   r¢   rR   r   r   r   r   z   s¸   € € € € € ð&ð &ð &ð &ð*ð *ð *ð *ð.ð .ð .ð .ð"ð "ð "ð "ðGð Gð Gð Gð
ð 
ð 
ð 
ð)ð )ð )ð )ð
%ð %ð %ð %ð %ð %r   r   c                  ó¦   — e Zd ZU ded<   dd„Zdd„Zdd„Zdd„Zdd„Ze	dd„¦   «         Z
 e edd¦  «        ¦  «        d„ dD ¦   «         z
  Zdd„ZdS )ÚPdfNamer
   ÚnameúPdfName | bytes | strr	   rV   c                ó¼   — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r	|| _        d S |                     d¦  «        | _        d S rh   )ro   r®   r¯   r
   r   )re   r¯   s     r   r…   zPdfName.__init__Û   sU   € Ý�d�GÑ$Ô$ð 	0Øœ	ˆDŒIˆIˆIÝ˜�eÑ$Ô$ð 	0ØˆDŒIˆIˆIàŸš JÑ/Ô/ˆDŒIˆIˆIr   r   c                ó6   — | j                              d¦  «        S rh   )r¯   rI   rd   s    r   Úname_as_strzPdfName.name_as_strã   s   € ØŒy×Ò 
Ñ+Ô+Ð+r   rk   rl   rT   c                ób   — t          |t          ¦  «        o|j        | j        k    p
|| j        k    S rA   )ro   r®   r¯   rp   s     r   rq   zPdfName.__eq__æ   s1   € å�u�gÑ&Ô&ÐB¨5¬:¸¼Ò+Bð à�d”iÒð	 r   r[   c                ó*   — t          | j        ¦  «        S rA   )ru   r¯   rd   s    r   rv   zPdfName.__hash__ë   s   € Ý�D”I‰ŒÐr   c                óJ   — | j         j        › dt          | j        ¦  «        › d�S )Nú(ú))rn   rN   Úreprr¯   rd   s    r   Ú__repr__zPdfName.__repr__î   s&   € Ø”.Ô)Ð>Ð>­D°´©O¬OÐ>Ð>Ð>Ð>r   Údatac                óH   —  | t                                |¦  «        ¦  «        S rA   )Ú	PdfParserÚinterpret_name)Úclsr»   s     r   Úfrom_pdf_streamzPdfName.from_pdf_streamñ   s    € àˆs•9×+Ò+¨DÑ1Ô1Ñ2Ô2Ð2r   é!   é   c                ó,   — h | ]}t          |¦  «        ’ŒS rR   )Úord)rE   Úcs     r   ú	<setcomp>zPdfName.<setcomp>õ   s   € Ð*IÐ*IÐ*I°a­3¨q©6¬6Ð*IÐ*IÐ*Ir   z#%/()<>[]{}c                óÀ   — t          d¦  «        }| j        D ]9}|| j        v r|                     |¦  «         Œ!|                     d|z  ¦  «         Œ:t          |¦  «        S )Nó   /s   #%02X)Ú	bytearrayr¯   Úallowed_charsÚappendÚextendr
   )re   Úresultr=   s      r   rj   zPdfName.__bytes__÷   sf   € Ý˜4‘”ˆØ”ð 	,ð 	,ˆAØ�DÔ&Ð&Ð&Ø—’˜aÑ Ô Ð Ð à—’˜h¨™lÑ+Ô+Ð+Ð+Ý�V‰}Œ}Ðr   N)r¯   r°   r	   rV   rw   ry   rz   )r»   r
   r	   r®   rx   )rN   rO   rP   r^   r…   r³   rq   rv   rº   ÚclassmethodrÀ   r˜   ÚrangerÊ   rj   rR   r   r   r®   r®   Ø   sæ   € € € € € € Ø€K€K�Kð0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð ð  ð  ð  ð
ð ð ð ð?ð ?ð ?ð ?ð ð3ð 3ð 3ñ „[ð3ð �C˜˜˜b #™œÑ'Ô'Ð*IÐ*I¸=Ð*IÑ*IÔ*IÑI€Mðð ð ð ð ð r   r®   c                  ó   — e Zd Zdd„ZdS )ÚPdfArrayr	   r
   c                óL   — dd                      d„ | D ¦   «         ¦  «        z   dz   S )Ns   [ ó    c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rA   )Úpdf_repr)rE   Úxs     r   rG   z%PdfArray.__bytes__.<locals>.<genexpr>  s(   è è € Ð ;Ð ;°¥¨!¡¤Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;r   s    ])rJ   rd   s    r   rj   zPdfArray.__bytes__  s-   € Ø�t—y’yÐ ;Ð ;°dÐ ;Ñ ;Ô ;Ñ;Ô;Ñ;¸eÑCÐCr   Nrx   )rN   rO   rP   rj   rR   r   r   rÑ   rÑ     s.   € € € € € ðDð Dð Dð Dð Dð Dr   rÑ   c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )ÚPdfDictr†   r   r‡   r   r	   rV   c                óˆ   — |dk    r#t           j                             | ||¦  «         d S || |                     d¦  «        <   d S )Nr»   ri   )ÚcollectionsÚUserDictÚ__setattr__r   rŠ   s      r   rÜ   zPdfDict.__setattr__  sH   € Ø�&Š=ˆ=ÝÔ ×,Ò,¨T°3¸Ñ>Ô>Ð>Ð>Ð>à+0ˆD�—’˜JÑ'Ô'Ñ(Ð(Ð(r   ústr | time.struct_timec                ó  — 	 | |                      d¦  «                 }n"# t          $ r}t          |¦  «        |‚d }~ww xY wt          |t          ¦  «        rt          |¦  «        }|                     d¦  «        �r|                     d¦  «        r
|dd …         }d}t          |¦  «        dk    rO|d         }t          |dd…         ¦  «        d	z  }t          |¦  «        d
k    r|t          |dd
…         ¦  «        z  }dd t          |¦  «        dz
  …         }t          j        |d t          |¦  «        dz   …         |¦  «        }|dv r9|d	z  }|dk    r|dz  }t          j        t          j        |¦  «        |z   ¦  «        }|S )Nri   ÚDatezD:é   ÚZé   é   é   é<   é   é   z%Y%m%d%H%M%S)ú+ú-rè   éÿÿÿÿ)r   r�   ÚAttributeErrorro   r
   rK   ÚendswithÚ
startswithrH   r[   ÚtimeÚstrptimeÚgmtimeÚcalendarÚtimegm)re   r†   r‡   ÚeÚrelationshipÚoffsetÚformats          r   Ú__getattr__zPdfDict.__getattr__  s�  € ð	-Ø˜Ÿš JÑ/Ô/Ô0ˆEˆEøÝð 	-ð 	-ð 	-Ý  Ñ%Ô%¨1Ð,øøøøð	-øøøå�e�UÑ#Ô#ð 	'Ý Ñ&Ô&ˆEØ�<Š<˜ÑÔñ 	EØ×Ò Ñ%Ô%ð "Ø˜a˜b˜bœ	�àˆLÝ�5‰zŒz˜BŠˆØ$ Rœy�Ý˜U 2 b 5œ\Ñ*Ô*¨RÑ/�Ý�u‘:”: ’?�?Ø�c %¨¨2¨¤,Ñ/Ô/Ñ/�Fà#Ð$4¥c¨%¡j¤j°1¡nÐ$4Ô5ˆFÝ”M %Ð(9­#¨f©+¬+¸©/Ð(9Ô":¸FÑCÔCˆEØ˜zÐ)Ð)Ø˜"‘�Ø 3Ò&Ð&Ø˜b‘L�FÝœ¥H¤O°EÑ$:Ô$:¸VÑ$CÑDÔD�Øˆs   ‚ ž
=¨8¸=r
   c                óœ  — t          d¦  «        }|                      ¦   «         D ]…\  }}|€Œt          |¦  «        }|                     d¦  «         |                     t	          t          |¦  «        ¦  «        ¦  «         |                     d¦  «         |                     |¦  «         Œ†|                     d¦  «         t	          |¦  «        S )Nó   <<ó   
rÓ   s   
>>)rÉ   ÚitemsrÕ   rÌ   r
   r®   )re   Úoutr†   r‡   s       r   rj   zPdfDict.__bytes__(  s´   € Ý˜ÑÔˆØŸ*š*™,œ,ð 	ð 	‰JˆC�Øˆ}ØÝ˜U‘O”OˆEØ�JŠJ�uÑÔÐØ�JŠJ•u�W S™\œ\Ñ*Ô*Ñ+Ô+Ð+Ø�JŠJ�tÑÔÐØ�JŠJ�uÑÔÐÐØ�
Š
�7ÑÔÐÝ�S‰zŒzÐr   N)r†   r   r‡   r   r	   rV   )r†   r   r	   rÝ   rx   )rN   rO   rP   rÜ   r÷   rj   rR   r   r   rØ   rØ     sP   € € € € € ð1ð 1ð 1ð 1ðð ð ð ð6ð ð ð ð ð r   rØ   c                  ó   — e Zd Zd	d„Zd
d„ZdS )Ú	PdfBinaryr»   úlist[int] | bytesr	   rV   c                ó   — || _         d S rA   )r»   )re   r»   s     r   r…   zPdfBinary.__init__7  s   € ØˆŒ	ˆ	ˆ	r   r
   c                óP   — dd                      d„ | j        D ¦   «         ¦  «        z  S )Ns   <%s>r   c              3  ó    K  — | ]	}d |z  V — Œ
dS )s   %02XNrR   ©rE   r=   s     r   rG   z&PdfBinary.__bytes__.<locals>.<genexpr>;  s&   è è € Ð!AÐ!A°! '¨A¡+Ð!AÐ!AÐ!AÐ!AÐ!AÐ!Ar   )rJ   r»   rd   s    r   rj   zPdfBinary.__bytes__:  s*   € Ø˜ŸšÐ!AÐ!A°t´yÐ!AÑ!AÔ!AÑAÔAÑAÐAr   N)r»   rÿ   r	   rV   rx   )rN   rO   rP   r…   rj   rR   r   r   rþ   rþ   6  sB   € € € € € ðð ð ð ðBð Bð Bð Bð Bð Br   rþ   c                  ó   — e Zd Zd
d„Zdd„Zd	S )Ú	PdfStreamÚ
dictionaryrØ   Úbufr
   r	   rV   c                ó"   — || _         || _        d S rA   )r  r  )re   r  r  s      r   r…   zPdfStream.__init__?  s   € Ø$ˆŒØˆŒˆˆr   c                óF  — 	 | j         d         }n# t          $ r
 | j        cY S w xY w|dk    rT	 | j         d         }n# t          $ r | j         d         }Y nw xY wt          j        | j        t          |¦  «        ¬¦  «        S dt          |¦  «        › d�}t          |¦  «        ‚)Ns   Filters   FlateDecodes   DLó   Length)Úbufsizezstream filter z unknown/unsupported)r  r�   r  ÚzlibÚ
decompressr[   r¹   ÚNotImplementedError)re   ÚfilterÚexpected_lengthr“   s       r   rI   zPdfStream.decodeC  sÇ   € ð	Ø”_ YÔ/ˆFˆFøÝð 	ð 	ð 	Ø”8ˆOˆOˆOð	øøøà�^Ò#Ð#ð=Ø"&¤/°%Ô"8��øÝð =ð =ð =Ø"&¤/°)Ô"<���ð=øøøå”? 4¤8µS¸Ñ5IÔ5IÐJÑJÔJÐJàE¥4¨¡<¤<ÐEÐEÐEˆCÝ% cÑ*Ô*Ð*s   ‚ �$£$®< ¼AÁAN)r  rØ   r  r
   r	   rV   rx   )rN   rO   rP   r…   rI   rR   r   r   r  r  >  s<   € € € € € ðð ð ð ð+ð +ð +ð +ð +ð +r   r  rÖ   r   c                óž  — | du rdS | du rdS | €dS t          | t          t          t          t          f¦  «        rt          | ¦  «        S t          | t          t          f¦  «        r"t          | ¦  «         	                    d¦  «        S t          | t          j        ¦  «        r.dt          j        d| ¦  «         	                    d¦  «        z   d	z   S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t          | ¦  «        ¦  «        S t          | t          ¦  «        rt          t!          | ¦  «        ¦  «        S t          | t
          ¦  «        rJ|                      d
d¦  «        } |                      dd¦  «        } |                      d	d¦  «        } d| z   d	z   S t          | ¦  «        S )NTs   trueFs   falses   nullri   s   (D:z%Y%m%d%H%M%SZó   )ó   \s   \\ó   (ó   \(s   \))ro   r®   rØ   rÑ   rþ   r
   r[   Úfloatr   r   rî   Ústruct_timeÚstrftimeÚdictÚlistrÕ   r   Úreplace)rÖ   s    r   rÕ   rÕ   S  s‘  € ØˆD€y€yØˆwØ	
ˆeˆˆØˆxØ	
ˆØˆwÝ	�A�¥­(µIÐ>Ñ	?Ô	?ð Ý�Q‰xŒxˆÝ	�A��U�|Ñ	$Ô	$ð Ý�1‰vŒv�}Š}˜ZÑ(Ô(Ð(Ý	�A•tÔ'Ñ	(Ô	(ð Ø�œ o°qÑ9Ô9×@Ò@ÀÑLÔLÑLÈtÑSÐSÝ	�A•tÑ	Ô	ð Ý•W˜Q‘Z”ZÑ Ô Ð Ý	�A•tÑ	Ô	ð Ý•X˜a‘[”[Ñ!Ô!Ð!Ý	�A•sÑ	Ô	ð 	Ý� A™œÑ'Ô'Ð'Ý	�A•uÑ	Ô	ð à�IŠI�e˜WÑ%Ô%ˆØ�IŠI�d˜FÑ#Ô#ˆØ�IŠI�d˜FÑ#Ô#ˆØ�a‰x˜$‰Ðå�Q‰xŒxˆr   c                  óÆ  — e Zd ZdZ	 	 	 	 	 d…d†d„Zd‡d„Zdˆd„Zd‰d„Zd‰d„Zd‰d„Z	d‰d„Z
d‰d„ZdŠd„Zd‹d„Zd‰d„Z	 dŒd�d"„ZdŽd(„Zd�d)„Zd‰d*„Zed�d-„¦   «         Zd‰d.„ZdŒd‘d1„Zd2Zd3Zd4Zd5Zed6z   Zed7z   Zd8Zd9Zeez   ez   Z e j!        ed:z   ez   d;z   ez   d<z   ez   d=z   ez   d>z   ez   d?z   e j"        ¦  «        Z# e j!        ed:z   ez   d@z   ez   d<z   ez   d=z   ez   d>z   ez   e j"        ¦  «        Z$d‰dA„Z%g fd’dE„Z& e j!        e¦  «        Z' e j!        edFz   ez   dGz   ¦  «        Z( e j!        edHz   ¦  «        Z) e j!        edIz   ez   ¦  «        Z*e+d“dM„¦   «         Z, e j!        dN¦  «        Z-e+d”d•dT„¦   «         Z. e j!        edUz   ez   dGz   ¦  «        Z/ e j!        edVz   ez   dGz   ¦  «        Z0 e j!        edWz   ez   dGz   ¦  «        Z1 e j!        edXz   ez   dGz   ¦  «        Z2 e j!        edYz   ez   dGz   ¦  «        Z3 e j!        edZz   ¦  «        Z4 e j!        ed[z   ¦  «        Z5 e j!        ed\z   ez   d]z   ¦  «        Z6 e j!        ed^z   ¦  «        Z7 e j!        ed_z   ez   d_z   ez   d`z   ez   dGz   ¦  «        Z8 e j!        ed_z   ez   d_z   ez   daz   ez   dGz   ¦  «        Z9 e j!        edbz   ez   dGz   ¦  «        Z: e j!        dcez   ddz   ez   dez   ¦  «        Z; e j!        edfz   ¦  «        Z< e j!        edgz   ez   dGz   ¦  «        Z=e+	 	 d–d—dn„¦   «         Z> e j!        do¦  «        Z?i dpdq“drds“dtdu“dvdw“dxdy“dcdc“dGdG“dzdz“ e@dp¦  «        dq“ e@dr¦  «        ds“ e@dt¦  «        du“ e@dv¦  «        dw“ e@dx¦  «        dy“ e@dc¦  «        dc“ e@dG¦  «        dG“ e@dz¦  «        dz“ZAe+d˜d|„¦   «         ZB e j!        ed}z   ez   ¦  «        ZC e j!        ed=z   ez   d=z   ez   ez   ¦  «        ZD e j!        d~¦  «        ZEd™d„ZFdšd›d€„ZG	 dŒdœd„„ZHdS )�r½   z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nr   ÚrbÚfilenameú
str | Noner�   úIO[bytes] | Noner  úbytes | bytearray | NoneÚstart_offsetr[   Úmoder   r	   rV   c                óþ  — |r|rd}t          |¦  «        ‚|| _        || _        || _        || _        d| _        d| _        |� |€t          ||¦  «        x| _        }d| _        |�?|                      |¦  «        | _        d| _        |st          |d¦  «        r|j
        | _        i | _        |  |  |  |  | j        r|                      ¦   «          n‹dx| _        | _        t          ¦   «         | _        d | _        t          ¦   «         | _        d | _        t          ¦   «         | _        g | _        g | _        d | _        d | _        i | _        t5          ¦   «         | _        d| j        _        |r|                      ¦   «          d S d S )Nz4specify buf or f or filename, but not both buf and fFTr¯   r   )ÚRuntimeErrorr  r  r�   r"  Úshould_close_bufÚshould_close_fileÚopenÚget_buf_from_fileÚhasattrr¯   Úcached_objectsÚread_pdf_infoÚfile_size_totalÚfile_size_thisrØ   ÚrootÚroot_refÚinfoÚinfo_refÚpage_tree_rootÚpagesÚ
orig_pagesÚ	pages_refÚlast_xref_section_offsetÚtrailer_dictr   Ú
xref_tabler„   Úseek_end)re   r  r�   r  r"  r#  r“   s          r   r…   zPdfParser.__init__v  s›  € ð ð 	$�1ð 	$ØHˆCÝ˜sÑ#Ô#Ð#Ø ˆŒØ9<ˆŒØˆŒØ(ˆÔØ %ˆÔØ!&ˆÔØÐ A IÝ˜h¨Ñ-Ô-Ð-ˆDŒF�QØ%)ˆDÔ"Øˆ=Ø×-Ò-¨aÑ0Ô0ˆDŒHØ$(ˆDÔ!Øð '¥¨¨6Ñ 2Ô 2ð 'Ø !¤�”Ø<>ˆÔØÐ/ØÐ/ØÐ0ØÐ1ØŒ8ð 	*Ø×ÒÑ Ô Ð Ð à9:Ð:ˆDÔ  4Ô#6Ý™	œ	ˆDŒIØ ˆDŒMÝ™	œ	ˆDŒIØ ˆDŒMÝ")¡)¤)ˆDÔØ24ˆDŒJØ79ˆDŒOØ!ˆDŒNØ,0ˆDÔ)Ø24ˆDÔÝ'™kœkˆDŒOØ+/ˆŒÔ(Øð 	Ø�MŠM‰OŒOˆOˆOˆOð	ð 	r   c                ó   — | S rA   rR   rd   s    r   Ú	__enter__zPdfParser.__enter__§  s   € Øˆr   Úargsrl   c                ó.   — |                       ¦   «          d S rA   )Úclose)re   r=  s     r   Ú__exit__zPdfParser.__exit__ª  s   € Ø�
Š
‰Œˆˆˆr   c                óV   — |                       ¦   «          |                      ¦   «          d S rA   )Ú	close_bufr:  rd   s    r   Ústart_writingzPdfParser.start_writing­  s#   € Ø�ŠÑÔÐØ�Š‰Œˆˆˆr   c                ó„   — t          | j        t          j        ¦  «        r| j                             ¦   «          d | _        d S rA   )ro   r  Úmmapr?  rd   s    r   rB  zPdfParser.close_buf±  s5   € Ý�d”h¥¤	Ñ*Ô*ð 	ØŒH�NŠNÑÔÐØˆŒˆˆr   c                ó    — | j         r|                      ¦   «          | j        �)| j        r$| j                             ¦   «          d | _        d S d S d S rA   )r&  rB  r�   r'  r?  rd   s    r   r?  zPdfParser.close¶  sU   € ØÔ ð 	Ø�NŠNÑÔÐØŒ6Ð $Ô"8ÐØŒF�LŠL‰NŒNˆNØˆDŒFˆFˆFð ÐÐÐr   c                ób   — | j         €J ‚| j                              dt          j        ¦  «         d S )Nr   )r�   ÚseekÚosÚSEEK_ENDrd   s    r   r:  zPdfParser.seek_end½  s.   € ØŒvÐ!Ð!Ð!ØŒ�Š�A•r”{Ñ#Ô#Ð#Ð#Ð#r   c                óL   — | j         €J ‚| j                              d¦  «         d S )Ns	   %PDF-1.4
)r�   r¢   rd   s    r   Úwrite_headerzPdfParser.write_headerÁ  s*   € ØŒvÐ!Ð!Ð!ØŒ�Š�]Ñ#Ô#Ð#Ð#Ð#r   r   c                óx   — | j         €J ‚| j                              d|› d�                     ¦   «         ¦  «         d S )Nz% ú
)r�   r¢   r   )re   r   s     r   Úwrite_commentzPdfParser.write_commentÅ  s>   € ØŒvÐ!Ð!Ð!ØŒ�Š�Z˜!�Z�Z�Z×&Ò&Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   r`   c                óê  — | j         €J ‚|                      ¦   «          |                      | j                              ¦   «         ¦  «        | _        |                      d¦  «        | _        |                      ¦   «          |                      | j        t          d¦  «        | j        ¬¦  «         |                      | j        t          d¦  «        t          | j
        ¦  «        | j
        ¬¦  «         | j        S )Nr   ó   Catalog)ÚTypeÚPagesó   Pages)rR  ÚCountÚKids)r�   Údel_rootÚnext_object_idr¡   r0  r6  Úrewrite_pagesÚ	write_objr®   rH   r4  rd   s    r   Úwrite_catalogzPdfParser.write_catalogÉ  sÌ   € ØŒvÐ!Ð!Ð!Ø�Š‰ŒˆØ×+Ò+¨D¬F¯KªK©M¬MÑ:Ô:ˆŒØ×,Ò,¨QÑ/Ô/ˆŒØ×ÒÑÔÐØ�Š�t”}­7°:Ñ+>Ô+>ÀdÄnˆÑUÔUÐUØ�ŠØŒNÝ˜Ñ"Ô"Ý�d”j‘/”/Ø”ð	 	ñ 	
ô 	
ð 	
ð Œ}Ðr   c                óZ  — g }t          | j        ¦  «        D ]Å\  }}| j        |         }| j        |j        = |                     |t          d¦  «                 ¦  «         || j        vrŒQi }|                     ¦   «         D ]\  }}||| 	                    ¦   «         <   Œ| j
        |d<    | j        di |¤Ž}t          | j        ¦  «        D ]\  }	}
|
|k    r
|| j        |	<   ŒŒÆ|D ]D}|r@| j        |         }|j        | j        v r| j        |j        = |                     dd ¦  «        }|°@ŒEg | _        d S )Ns   ParentÚParentrA   )r£   r5  r+  r9  r\   rË   r®   r4  rû   r³   r6  Ú
write_pagerC   )re   Úpages_tree_nodes_to_deleteÚiÚpage_refÚ	page_infoÚstringified_page_infor†   r‡   Únew_page_refÚjÚcur_page_refÚpages_tree_node_refÚpages_tree_nodes                r   rY  zPdfParser.rewrite_pagesØ  sƒ  € Ø%'Ð"Ý$ T¤_Ñ5Ô5ð 	1ð 	1‰KˆAˆxØÔ+¨HÔ5ˆIØ” Ô 2Ð3Ø&×-Ò-¨i½À	Ñ8JÔ8JÔ.KÑLÔLÐLØ˜tœzÐ)Ð)àà$&Ð!Ø'ŸošoÑ/Ô/ð Að A‘
��Uà;@Ð% c§o¢oÑ&7Ô&7Ñ8Ð8Ø.2¬nÐ! (Ñ+Ø*˜4œ?ÐIÐIÐ3HÐIÐIˆLÝ#,¨T¬ZÑ#8Ô#8ð 1ð 1‘��<Ø 8Ò+Ð+à$0�D”J˜q‘Møð1ð
 $>ð 	Kð 	KÐØ%ð KØ"&Ô"5Ð6IÔ"J�Ø&Ô0°D´OÐCÐCØœÐ(;Ô(EÐFØ&5×&9Ò&9¸)ÀTÑ&JÔ&JÐ#ð	 &ð Køð
 ˆŒˆˆr   Únew_root_refúIndirectReference | Nonec                óæ  — | j         €J ‚|r|                      ¦   «          || _        | j        r |                      d | j        ¦  «        | _        | j                             | j         ¦  «        }t          | j        ¦  «        }| j        |dœ}| j	        �
| j	        |d<   | j        r
| j        |d<   || _	        | j                              dt          t          |¦  «        ¦  «        z   d|z  z   ¦  «         d S )N)ó   Rootó   Sizeó   Prevó   Infos   trailer
s   
startxref
%d
%%%%EOF)r�   rW  r0  r1  rZ  r2  r9  r¢   rH   r7  r
   rØ   )re   ri  Ú
start_xrefÚnum_entriesr8  s        r   Úwrite_xref_and_trailerz PdfParser.write_xref_and_trailerõ  s	  € ð ŒvÐ!Ð!Ð!Øð 	)Ø�MŠM‰OŒOˆOØ(ˆDŒMØŒ9ð 	<Ø ŸNšN¨4°´Ñ;Ô;ˆDŒMØ”_×*Ò*¨4¬6Ñ2Ô2ˆ
Ý˜$œ/Ñ*Ô*ˆà”]Ø ð0
ð 0
ˆð Ô(Ð4Ø$(Ô$AˆL˜Ñ!ØŒ9ð 	2Ø$(¤MˆL˜Ñ!Ø(2ˆÔ%ØŒ�ŠØÝ•G˜LÑ)Ô)Ñ*Ô*ñ+à)¨JÑ6ñ7ñ	
ô 	
ð 	
ð 	
ð 	
r   Úrefúint | IndirectReference | NoneÚobjsr   Údict_objc                ó´   — t          |t          ¦  «        r| j        |         n|}d|vrt          d¦  «        |d<   d|vr
| j        |d<    | j        |g|¢R i |¤ŽS )NrR  ó   Pager]  )ro   r[   r4  r®   r6  rZ  )re   rs  ru  rv  Úobj_refs        r   r^  zPdfParser.write_page  sx   € õ &0°µSÑ%9Ô%9ÐB�$”*˜S”/�/¸sˆØ˜Ð!Ð!Ý& wÑ/Ô/ˆH�VÑØ˜8Ð#Ð#Ø!%¤ˆH�XÑØˆtŒ~˜gÐ9¨Ð9Ð9Ð9°Ð9Ð9Ð9r   c                ó²  — | j         €J ‚| j         }|€(|                      |                     ¦   «         ¦  «        }n(|                     ¦   «         |j        f| j        |j        <   |                     t          t          |Ž ¦  «        ¦  «         | 	                    dd ¦  «        }|�t          |¦  «        |d<   |r"|                     t          |¦  «        ¦  «         |D ]$}|                     t          |¦  «        ¦  «         Œ%|�?|                     d¦  «         |                     |¦  «         |                     d¦  «         |                     d¦  «         |S )NÚstreamÚLengths   stream
s   
endstream
s   endobj
)r�   rX  r¡   r]   r9  r\   r¢   r
   r|   r¤   rH   rÕ   )re   rs  ru  rv  r�   r{  Úobjs          r   rZ  zPdfParser.write_obj  s>  € ð ŒvÐ!Ð!Ð!ØŒFˆØˆ;Ø×%Ò% a§f¢f¡h¤hÑ/Ô/ˆCˆCà./¯fªf©h¬h¸¼Ð-GˆDŒO˜CœMÑ*Ø	�Š•Õ'¨Ð-Ñ.Ô.Ñ/Ô/Ð/Ø—’˜h¨Ñ-Ô-ˆØÐÝ!$ V¡¤ˆH�XÑØð 	(Ø�GŠG•H˜XÑ&Ô&Ñ'Ô'Ð'Øð 	#ð 	#ˆCØ�GŠG•H˜S‘M”MÑ"Ô"Ð"Ð"ØÐØ�GŠG�KÑ Ô Ð Ø�GŠG�F‰OŒOˆOØ�GŠGÐ$Ñ%Ô%Ð%Ø	�Š�ÑÔÐØˆ
r   c                ól   — | j         €d S | j        | j         j        = | j        | j        d         j        = d S )NrT  )r0  r9  r\   r/  rd   s    r   rW  zPdfParser.del_root1  s8   € ØŒ=Ð ØˆFØŒO˜DœMÔ3Ð4ØŒO˜DœI hÔ/Ô9Ð:Ð:Ð:r   rž   úbytes | mmap.mmapc                ó  — t          | d¦  «        r|                      ¦   «         S t          | d¦  «        r|                      ¦   «         S 	 t          j        |                      ¦   «         dt          j        ¬¦  «        S # t          $ r Y dS w xY w)NÚ	getbufferÚgetvaluer   )Úaccessr   )r*  r�  r‚  rE  ÚfilenoÚACCESS_READÚ
ValueError)r�   s    r   r)  zPdfParser.get_buf_from_file7  s‹   € å�1�kÑ"Ô"ð 	Ø—;’;‘=”=Ð Ý�Q˜
Ñ#Ô#ð 	Ø—:’:‘<”<ÐðÝ”y §¢¡¤¨QµtÔ7GÐHÑHÔHÐHøÝð ð ð Ø�s�sðøøøs   Á
2A= Á=
BÂ
Bc                ó@  — | j         €J ‚t          | j         ¦  «        | _        | j        | j        z
  | _        |                      ¦   «          t          | j                             d¦  «        d ud¦  «         | j        d         | _	        | j	        €J ‚| j                             dd ¦  «        | _
        t          |                      | j	        ¦  «        ¦  «        | _        | j
        €t          ¦   «         | _        n,t          |                      | j
        ¦  «        ¦  «        | _        t          d| j        v d¦  «         t          | j        d         dk    d¦  «         t          | j                             d¦  «        d ud	¦  «         t          t          | j        d         t           ¦  «        d
¦  «         | j        d         | _        | j        €J ‚|                      | j        ¦  «        | _        |                      | j        ¦  «        | _        | j        d d …         | _        d S )Nrl  zRoot is missingro  ó   Typez/Type missing in RootrQ  z/Type in Root is not /CatalogrT  z/Pages missing in Rootz+/Pages in Root is not an indirect reference)r  rH   r-  r"  r.  Úread_trailerrX   r8  rC   r0  r2  rØ   Úread_indirectr/  r1  ro   r`   r6  r3  Úlinearize_page_treer4  r5  rd   s    r   r,  zPdfParser.read_pdf_infoC  sù  € ØŒxÐ#Ð#Ð#Ý" 4¤8™}œ}ˆÔØ"Ô2°TÔ5FÑFˆÔØ×ÒÑÔÐÝØÔ×!Ò! 'Ñ*Ô*°$Ð6Ð8Iñ	
ô 	
ð 	
ð Ô)¨'Ô2ˆŒØŒ}Ð(Ð(Ð(ØÔ)×-Ò-¨g°tÑ<Ô<ˆŒÝ˜D×.Ò.¨t¬}Ñ=Ô=Ñ>Ô>ˆŒ	ØŒ=Ð Ý™	œ	ˆDŒIˆIå × 2Ò 2°4´=Ñ AÔ AÑBÔBˆDŒIÝ˜w¨$¬)Ð3Ð5LÑMÔMÐMÝØŒI�gÔ *Ò,Ð.Mñ	
ô 	
ð 	
õ 	ØŒI�MŠM˜(Ñ#Ô#¨4Ð/Ð1Iñ	
ô 	
ð 	
õ 	Ý�t”y Ô*Õ,=Ñ>Ô>Ø9ñ	
ô 	
ð 	
ð œ 8Ô,ˆŒØŒ~Ð)Ð)Ð)Ø"×0Ò0°´Ñ@Ô@ˆÔØ×-Ò-¨dÔ.AÑBÔBˆŒ
ð œ* Q Q Qœ-ˆŒˆˆr   rõ   ú
int | Nonec                óÞ   — 	 t          t          | j                             ¦   «         ¦  «        dz   d¦  «        }n # t          $ r t          dd¦  «        }Y nw xY w|�|df| j        |j        <   |S )Nr‘   r   )r`   Úmaxr9  r™   r†  r\   )re   rõ   Ú	references      r   rX  zPdfParser.next_object_idg  s€   € ð	0å)­#¨d¬o×.BÒ.BÑ.DÔ.DÑ*EÔ*EÈÑ*IÈ1ÑMÔMˆIˆIøÝð 	0ð 	0ð 	0Ý)¨!¨QÑ/Ô/ˆIˆIˆIð	0øøøàÐØ4:¸A°;ˆDŒO˜IÔ/Ñ0ØÐs   ‚7: ºAÁAs   [][()<>{}/%]s$   [][()<>{}/%\000\011\012\014\015\040]s   [\000\011\012\014\015\040]s#   [\000\011\012\014\015\0400-9a-fA-F]ó   *ó   +s   [\000\011\014\040]*s   [\r\n]+s   trailers   <<(.*>>)s	   startxrefs   ([0-9]+)s   %%EOFó   $s	   <<(.*?>>)c                ó¶  — | j         €J ‚t          | j         ¦  «        dz
  }|| j        k     r| j        }| j                             | j         |¦  «        }t          |d ud¦  «         |}|r9|}| j                             | j         |                     ¦   «         dz   ¦  «        }|°9|s|}|€J ‚|                     d¦  «        }t          |                     d¦  «        ¦  «        | _	        |  
                    |¦  «        | _        t          ¦   «         | _        |                      | j	        ¬¦  «         d| j        v r"|                      | j        d         ¦  «         d S d S )Né @  ztrailer end not foundé   r‘   rà   ©Úxref_section_offsetrn  )r  rH   r"  Úre_trailer_endÚsearchrX   ÚstartÚgroupr[   r7  Úinterpret_trailerr8  r   r9  Úread_xref_tableÚread_prev_trailer)re   Úsearch_start_offsetÚmÚ
last_matchÚtrailer_datas        r   r‰  zPdfParser.read_trailer™  s`  € ØŒxÐ#Ð#Ð#Ý! $¤(™mœm¨eÑ3ÐØ Ô!2Ò2Ð2Ø"&Ô"3ÐØÔ×&Ò& t¤xÐ1DÑEÔEˆÝ˜q¨˜}Ð.EÑFÔFÐFàˆ
Øð 	EØˆJØÔ#×*Ò*¨4¬8°Q·W²W±Y´YÀ±^ÑDÔDˆAð ð 	Eð ð 	ØˆAØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝ(+¨A¯GªG°A©J¬J©¬ˆÔ%Ø ×2Ò2°<Ñ@Ô@ˆÔÝ#™+œ+ˆŒØ×Ò°Ô1NÐÑOÔOÐOØ�dÔ'Ð'Ð'Ø×"Ò" 4Ô#4°WÔ#=Ñ>Ô>Ð>Ð>Ð>ð (Ð'r   r—  Úprocessed_offsetsú	list[int]c                ó  — | j         €J ‚|                      |¬¦  «        }| j                             | j         ||dz   …         ¦  «        }t	          |d ud¦  «         |€J ‚|                     d¦  «        }t	          t          |                     d¦  «        ¦  «        |k    d¦  «         |                      |¦  «        }d|v rK|                     |¦  «         t	          |d         |vd¦  «         |  	                    |d         |¦  «         d S d S )	Nr–  r”  zprevious trailer not foundr‘   rà   zGxref section offset in previous trailer doesn't match what was expectedrn  ztrailer loop found)
r  r�  Úre_trailer_prevr™  rX   r›  r[   rœ  rË   rž  )re   r—  r£  Útrailer_offsetr   r¢  r8  s          r   rž  zPdfParser.read_prev_trailer°  s6  € ð ŒxÐ#Ð#Ð#Ø×-Ò-ÐBUÐ-ÑVÔVˆØÔ ×'Ò'ØŒH�^ n°uÑ&<Ð<Ô=ñ
ô 
ˆõ 	˜q¨˜}Ð.JÑKÔKÐKØˆ}ˆ}ˆ}Ø—w’w˜q‘z”zˆÝÝ�—’˜‘
”
‰OŒOÐ2Ò2ØUñ	
ô 	
ð 	
ð ×-Ò-¨lÑ;Ô;ˆØ�lÐ"Ð"Ø×$Ò$Ð%8Ñ9Ô9Ð9Ý"Ø˜WÔ%Ð->Ð>Ð@Tñô ð ð ×"Ò" <°Ô#8Ð:KÑLÔLÐLÐLÐLð #Ð"r   s   /([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r  rù   s   >>r¢  r
   údict[bytes, Any]c           	     ó¾  — i }d}	 | j                              ||¦  «        }|sk| j                             ||¦  «        }t          |d uo$|                     ¦   «         t          |¦  «        k    dt          ||d …         ¦  «        z   ¦  «         nu|                      |                     d¦  «        ¦  «        }t          |t          ¦  «        sJ ‚|                      ||                     ¦   «         ¦  «        \  }}|||<   |€n|}Œýt          d|v ot          |d         t          ¦  «        d¦  «         t          d|v ot          |d         t          ¦  «        d¦  «         |S )	Nr   Tz+name not found in trailer, remaining data: r‘   rm  z&/Size not in trailer or not an integerrl  z1/Root not in trailer or not an indirect reference)Úre_nameÚmatchÚre_dict_endrX   ÚendrH   r¹   r¾   r›  ro   r
   Ú	get_valuer[   r`   )r¿   r¢  Útrailerrõ   r   r†   r‡   Úvalue_offsets           r   rœ  zPdfParser.interpret_trailerÑ  sx  € àˆØˆð	"Ø”×!Ò! ,°Ñ7Ô7ˆAØð Ø”O×)Ò)¨,¸Ñ?Ô?�Ý&Ø˜T�MÐB a§e¢e¡g¤gµ°\Ñ1BÔ1BÒ&BØAÝ˜<¨¨¨Ô0Ñ1Ô1ñ2ñô ð ð
 Ø×$Ò$ Q§W¢W¨Q¡Z¤ZÑ0Ô0ˆCÝ˜c¥5Ñ)Ô)Ð)Ð)Ð)Ø"%§-¢-°¸a¿eºe¹g¼gÑ"FÔ"FÑˆE�<Ø ˆG�C‰LØÐ#ØØ!ˆFð!	"õ" 	Ø�wÐÐD¥:¨g°gÔ.>ÅÑ#DÔ#DØ4ñ	
ô 	
ð 	
õ 	Ø�wÐÐR¥:¨g°gÔ.>Õ@QÑ#RÔ#RØ?ñ	
ô 	
ð 	
ð ˆr   s   ([^#]*)(#([0-9a-fA-F]{2}))?FÚrawÚas_textrT   ústr | bytesc                óš  — d}| j                              |¦  «        D ]‰}|                     d¦  «        rZ||                     d¦  «        t                               |                     d¦  «                             d¦  «        ¦  «        z   z  }Œq||                     d¦  «        z  }ŒŠ|r|                     d¦  «        S t          |¦  «        S )Nr   é   r‘   ri   zutf-8)Úre_hashes_in_nameÚfinditerr›  rÉ   ÚfromhexrI   r
   )r¿   r±  r²  r¯   r   s        r   r¾   zPdfParser.interpret_nameò  s¶   € àˆØÔ&×/Ò/°Ñ4Ô4ð 	#ð 	#ˆAØ�wŠw�q‰zŒzð #Ø˜Ÿš ™
œ
¥Y×%6Ò%6°q·w²w¸q±z´z×7HÒ7HÈÑ7TÔ7TÑ%UÔ%UÑUÑU��à˜Ÿš ™
œ
Ñ"��Øð 	Ø—;’;˜wÑ'Ô'Ð'å˜‘;”;Ðr   s   null(?=s   true(?=s   false(?=s   ([-+]?[0-9]+)(?=s)   ([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s   \[ó   ]s   <(s   *)>r  s   ([-+]?[0-9]+)s   R(?=s   obj(?=s	   endobj(?=r  s	   %[^\r\n]*s   )*s   stream\r?\ns   endstream(?=rê   r»   úbytes | bytearray | mmap.mmapÚexpect_indirectÚmax_nestingútuple[Any, int | None]c                óJ  — |dk    rdS | j                              ||¦  «        }|r|                     ¦   «         }| j                             ||¦  «        }|�rKt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          |d u pS|t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        k    d¦  «         |                      ||                     ¦   «         |dz
  ¬¦  «        \  }}|€|d fS | j	                             ||¦  «        }t	          |d ud	¦  «         |€J ‚||                     ¦   «         fS t	          | d
¦  «         | j
                             ||¦  «        }|rÌt	          t          |                     d¦  «        ¦  «        dk    d¦  «         t	          t          |                     d¦  «        ¦  «        dk    d¦  «         t          t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|�rÐ|                     ¦   «         }i }| j                             ||¦  «        }|}	|sn|	€J ‚|                      ||	|dz
  ¬¦  «        \  }
}	|	€|d fS |                      ||	|dz
  ¬¦  «        \  }}	|||
<   |	€|d fS | j                             ||	¦  «        }|¯n|                     ¦   «         }	| j                             ||	¦  «        }|rë|                     d¦  «        }|�t          |t
          ¦  «        sd|› d�}t!          |¦  «        ‚||                     ¦   «         |                     ¦   «         |z   …         }| j                             ||                     ¦   «         |z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	t%          t'          |¦  «        |¦  «        |	fS t'          |¦  «        |	fS | j                             ||¦  «        }|r¥|                     ¦   «         }g }| j                             ||¦  «        }|}	|sZ|	€J ‚|                      ||	|dz
  ¬¦  «        \  }}	|                     |¦  «         |	€|d fS | j                             ||	¦  «        }|¯Z||                     ¦   «         fS | j                             ||¦  «        }|rd |                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rd|                     ¦   «         fS | j                             ||¦  «        }|rIt7          |                      |                     d¦  «        ¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6t          |                     d¦  «        ¦  «        |                     ¦   «         fS | j                             ||¦  «        }|r6t?          |                     d¦  «        ¦  «        |                     ¦   «         fS | j                              ||¦  «        }|r¥tC          d„ |                     d¦  «        D ¦   «         ¦  «        }tE          |¦  «        dz  dk    r"|                     tG          d¦  «        ¦  «         tB           $                    | %                    d¦  «        ¦  «        |                     ¦   «         fS | j&                             ||¦  «        }|r(|  '                    ||                     ¦   «         ¦  «        S dtQ          |||dz   …         ¦  «        › �}t!          |¦  «        ‚)Nr   )NNr‘   z<indirect object definition: object ID must be greater than 0rà   z;indirect object definition: generation must be non-negativez2indirect object definition different than expected)r¼  z(indirect object definition end not foundz$indirect object definition not foundz;indirect object reference: object ID must be greater than 0z:indirect object reference: generation must be non-negativer
  z&bad or missing Length in stream dict (r¸   zstream end not foundTFc              3  ó"   K  — | ]
}|d v ¯|V — ŒdS )s   0123456789abcdefABCDEFNrR   r  s     r   rG   z&PdfParser.get_value.<locals>.<genexpr>®  s6   è è € ð #ð #Ø¨Ð.GÐ)GÐ)G�Ð)GÐ)GÐ)GÐ)Gð#ð #r   ó   0ri   zunrecognized object: é    ))Ú
re_commentr«  r­  Úre_indirect_def_startrX   r[   r›  r`   r®  Úre_indirect_def_endÚre_indirect_referenceÚre_dict_startr¬  Úre_stream_startrC   ro   rM   Úre_stream_endr  rØ   Úre_array_startÚre_array_endrË   Úre_nullÚre_trueÚre_falserª  r®   r¾   Úre_intÚre_realr  Úre_string_hexrÉ   rH   rÄ   r¸  rI   Úre_string_litÚget_literal_stringr¹   )r¿   r»   rõ   r»  r¼  r   rl   Úobject_offsetrÍ   Úcurrent_offsetr†   r‡   Ú
stream_lenr“   Ústream_dataÚresultsÚ
hex_strings                    r   r®  zPdfParser.get_value0  s  € ð ˜!ÒÐØ�:ØŒN× Ò   vÑ.Ô.ˆØð 	Ø—U’U‘W”WˆFØÔ%×+Ò+¨D°&Ñ9Ô9ˆØñ 	#Ý"Ý�A—G’G˜A‘J”J‘” !Ò#ØNñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØMñô ð õ #Ø 4Ð'ð GØ"Ý$¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFòGàDñ	ô ð ð %(§M¢MØ�a—e’e‘g”g¨;¸©?ð %2ñ %ô %Ñ!ˆF�Mð Ð$Ø˜t�|Ð#ØÔ'×-Ò-¨d°MÑBÔBˆAÝ"Ø˜�ÐIñô ð ð �=�=�=Ø˜1Ÿ5š5™7œ7�?Ð"ÝØÐÐ!Gñ	
ô 	
ð 	
ð Ô%×+Ò+¨D°&Ñ9Ô9ˆØð 		PÝ"Ý�A—G’G˜A‘J”J‘” !Ò#ØMñô ð õ #Ý�A—G’G˜A‘J”J‘” 1Ò$ØLñô ð õ %¥S¨¯ª°©¬¡_¤_µc¸!¿'º'À!¹*¼*±o´oÑFÔFÈÏÊÉÌÐOÐOØÔ×#Ò# D¨&Ñ1Ô1ˆØñ  	3Ø—U’U‘W”WˆFØ%'ˆFØ”×%Ò% d¨FÑ3Ô3ˆAØ)/ˆNØð @Ø%Ð1Ð1Ð1Ø&)§m¢mØ˜.°kÀA±oð '4ñ 'ô 'Ñ#��^ð "Ð)Ø! 4˜<Ð'Ø(+¯ªØ˜.°kÀA±oð )6ñ )ô )Ñ%��~ð $��s‘Ø!Ð)Ø! 4˜<Ð'Ø”O×)Ò)¨$°Ñ?Ô?�ð ð @ð ŸUšU™WœWˆNØÔ#×)Ò)¨$°Ñ?Ô?ˆAØð 
OØ#ŸZšZ¨	Ñ2Ô2�
ØÐ%­Z¸
ÅCÑ-HÔ-HÐ%ØPÀ:ÐPÐPÐP�CÝ(¨Ñ-Ô-Ð-Ø" 1§5¢5¡7¤7¨Q¯UªU©W¬W°zÑ-AÐ#AÔB�ØÔ%×+Ò+¨D°!·%²%±'´'¸JÑ2FÑGÔG�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}Ø!"§¢¡¤�Ý ¥¨¡¤°+Ñ>Ô>ÀÐNÐNÝ˜6‘?”? NÐ2Ð2ØÔ×$Ò$ T¨6Ñ2Ô2ˆØð 	$Ø—U’U‘W”WˆFØˆGØÔ ×&Ò& t¨VÑ4Ô4ˆAØ#ˆNØð AØ%Ð1Ð1Ð1Ø(+¯ªØ˜.°kÀA±oð )6ñ )ô )Ñ%��~ð —’˜uÑ%Ô%Ð%Ø!Ð)Ø" D˜=Ð(ØÔ$×*Ò*¨4°Ñ@Ô@�ð ð Að ˜AŸEšE™GœGÐ#Ð#ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒK×Ò˜d FÑ+Ô+ˆØð 	!Ø˜Ÿš™œ�=Ð ØŒL×Ò˜t VÑ,Ô,ˆØð 	"Ø˜!Ÿ%š%™'œ'�>Ð!ØŒK×Ò˜d FÑ+Ô+ˆØð 	DÝ˜3×-Ò-¨a¯gªg°a©j¬jÑ9Ô9Ñ:Ô:¸A¿EºE¹G¼GÐCÐCØŒJ×Ò˜T 6Ñ*Ô*ˆØð 	,Ý�q—w’w˜q‘z”z‘?”? A§E¢E¡G¤GÐ+Ð+ØŒK×Ò˜d FÑ+Ô+ˆØð 	.å˜Ÿš ™œÑ$Ô$ a§e¢e¡g¤gÐ-Ð-ØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	Må"ð #ð #ØŸ7š7 1™:œ:ð#ñ #ô #ñ ô ˆJõ �:‰Œ Ñ" aÒ'Ð'à×!Ò!¥# d¡)¤)Ñ,Ô,Ð,Ý×$Ò$ Z×%6Ò%6°zÑ%BÔ%BÑCÔCÀQÇUÂUÁWÄWÐLÐLØÔ×#Ò# D¨&Ñ1Ô1ˆØð 	9Ø×)Ò)¨$°·²±´Ñ8Ô8Ð8àH¥d¨4°¸À"¹Ð0DÔ+EÑ&FÔ&FÐHÐHˆÝ˜SÑ!Ô!Ð!r   sF   (\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))ó   nrú   ó   ró   ó   tó   	ó   bó   ó   fó   r  útuple[bytes, int]c                óè  — d}t          ¦   «         }| j                             ||¦  «        D �]µ}|                     |||                     ¦   «         …         ¦  «         |                     d¦  «        r;|                     | j        |                     d¦  «        d                  ¦  «         �n|                     d¦  «        r?|                     t          |                     d¦  «        dd …         d¦  «        ¦  «         nË|                     d¦  «        rnµ|                     d¦  «        r|                     d¦  «         nŠ|                     d¦  «        r|                     d	¦  «         |dz  }nZ|                     d
¦  «        rE|dk    r%t          |¦  «        | 
                    ¦   «         fc S |                     d¦  «         |dz  }| 
                    ¦   «         }�Œ·d}t          |¦  «        ‚)Nr   r‘   rà   é   rµ  é   rú   é   r  é   r  zunfinished literal string)rÉ   Úre_lit_str_tokenr·  rÌ   rš  r›  Úescaped_charsrË   r[   r
   r­  rM   )r¿   r»   rõ   Únesting_depthrÍ   r   r“   s          r   rÒ  zPdfParser.get_literal_stringÒ  s¾  € ð ˆÝ‘”ˆØÔ%×.Ò.¨t°VÑ<Ô<ð 	ñ 	ˆAØ�MŠM˜$˜v¨¯ª©	¬	Ð1Ô2Ñ3Ô3Ð3Ø�wŠw�q‰zŒzð #Ø—’˜cÔ/°·²¸±
´
¸1´Ô>Ñ?Ô?Ð?Ñ?Ø—’˜‘”ð #Ø—’�c !§'¢'¨!¡*¤*¨Q¨R¨R¤.°!Ñ4Ô4Ñ5Ô5Ð5Ð5Ø—’˜‘”ð #ØØ—’˜‘”ð 	#Ø—’˜eÑ$Ô$Ð$Ð$Ø—’˜‘”ð #Ø—’˜dÑ#Ô#Ð#Ø Ñ"��Ø—’˜‘”ð #Ø  AÒ%Ð%Ý  ™=œ=¨!¯%ª%©'¬'Ð1Ð1Ð1Ð1Ø—’˜dÑ#Ô#Ð#Ø Ñ"�Ø—U’U‘W”WˆF‰FØ)ˆÝ˜SÑ!Ô!Ð!r   s   xrefs+   ([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)c                óŠ  — | j         €J ‚d}| j                             | j         || j        z   ¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }	 | j                             | j         |¦  «        }|st	          |d¦  «         �n0d}|                     ¦   «         }t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        }t          |||z   ¦  «        D ]À}| j
                             | j         |¦  «        }t	          |d ud¦  «         |€J ‚|                     ¦   «         }|                     d¦  «        d	k    }|sYt          |                     d¦  «        ¦  «        }	t          |                     d¦  «        ¦  «        |	f}
|| j        vr
|
| j        |<   ŒÁ�Œd|S )
NFzxref section start not foundTzxref subsection start not foundr‘   rà   zxref entry not foundrµ  rà  )r  Úre_xref_section_startr«  r"  rX   r­  Úre_xref_subsection_startr[   r›  rÏ   Úre_xref_entryr9  )re   r—  Úsubsection_foundr   rõ   Úfirst_objectÚnum_objectsr`  Úis_freer]   Ú	new_entrys              r   r�  zPdfParser.read_xref_tableù  sÀ  € ØŒxÐ#Ð#Ð#Ø ÐØÔ&×,Ò,ØŒHÐ)¨DÔ,=Ñ=ñ
ô 
ˆõ 	˜q¨˜}Ð.LÑMÔMÐMØˆ}ˆ}ˆ}Ø—’‘”ˆð	7ØÔ-×3Ò3°D´H¸fÑEÔEˆAØð Ý&Ø$Ð&Gñô ð ñ Ø#ÐØ—U’U‘W”WˆFÝ˜qŸwšw q™zœz™?œ?ˆLÝ˜aŸgšg a™jœj™/œ/ˆKÝ˜<¨¸Ñ)CÑDÔDð 
7ð 
7�ØÔ&×,Ò,¨T¬X°vÑ>Ô>�Ý& q° }Ð6LÑMÔMÐMØ�}�}�}ØŸš™œ�ØŸ'š' !™*œ*¨Ò,�Øð 7Ý!$ Q§W¢W¨Q¡Z¤Z¡¤�JÝ!$ Q§W¢W¨Q¡Z¤Z¡¤°*Ð =�IØ ¤Ð/Ð/Ø-6˜œ¨Ñ*øñ+	7ð, ˆr   c                ó"  — | j         |d                  \  }}t          ||d         k    d|d         › d|d         › d|› d|› �¦  «         | j        €J ‚|                      | j        || j        z   t          |Ž |¬¦  «        d         }|| j        |<   |S )Nr   r‘   zexpected to find generation z for object ID z) in xref table, instead found generation z at offset )r»  r¼  )r9  rX   r  r®  r"  r`   r+  )re   rs  r¼  rõ   r]   r‡   s         r   rŠ  zPdfParser.read_indirect  sÞ   € Ø!œ_¨S°¬VÔ4Ñˆ�
ÝØ˜#˜aœ&Ò ðO¨3¨q¬6ð Oð OÀ#ÀaÄ&ð Oð OØ/9ðOð OØFLðOð Oñ	
ô 	
ð 	
ð
 ŒxÐ#Ð#Ð#Ø—’ØŒHØ�TÔ&Ñ&Ý-¨sÐ3Ø#ð	 ñ 
ô 
ð
 ôˆð $)ˆÔ˜CÑ Øˆr   ÚnodeúPdfDict | Noneúlist[IndirectReference]c                ó*  — |�|n| j         }t          |d         dk    d¦  «         g }|d         D ]b}|                      |¦  «        }|d         dk    r|                     |¦  «         Œ9|                     |                      |¬¦  «        ¦  «         Œc|S )Nrˆ  rT  z%/Type of page tree node is not /Pagess   Kidsrx  )rõ  )r3  rX   rŠ  rË   rÌ   r‹  )re   rõ  Ú	page_noder4  ÚkidÚ
kid_objects         r   r‹  zPdfParser.linearize_page_tree+  s·   € ð !Ð,�D�D°$Ô2Eˆ	ÝØ�gÔ (Ò*Ð,Sñ	
ô 	
ð 	
ð ˆØ˜WÔ%ð 	Hð 	HˆCØ×+Ò+¨CÑ0Ô0ˆJØ˜'Ô" gÒ-Ð-Ø—’˜SÑ!Ô!Ð!Ð!à—’˜T×5Ò5¸:Ð5ÑFÔFÑGÔGÐGÐGØˆr   )NNNr   r  )r  r  r�   r   r  r!  r"  r[   r#  r   r	   rV   )r	   r½   )r=  rl   r	   rV   r¬   )r   r   r	   rV   )r	   r`   rA   )ri  rj  r	   rV   )rs  rt  ru  r   rv  r   r	   r`   )rs  rj  ru  r   rv  r   r	   r`   )r�   rž   r	   r  )rõ   rŒ  r	   r`   )r—  r[   r£  r¤  r	   rV   )r¢  r
   r	   r¨  )F)r±  r
   r²  rT   r	   r³  )Nrê   )
r»   rº  rõ   r[   r»  rj  r¼  r[   r	   r½  )r»   rº  rõ   r[   r	   râ  )r—  r[   r	   r[   )rê   )rs  r`   r¼  r[   r	   r   )rõ  rö  r	   r÷  )IrN   rO   rP   rQ   r…   r<  r@  rC  rB  r?  r:  rL  rO  r[  rY  rr  r^  rZ  rW  Ústaticmethodr)  r,  rX  Ú	delimiterÚdelimiter_or_wsÚ
whitespaceÚwhitespace_or_hexÚwhitespace_optionalÚwhitespace_mandatoryÚwhitespace_optional_no_nlÚnewline_onlyÚnewlineÚreÚcompileÚDOTALLr˜  r¦  r‰  rž  Úre_whitespace_optionalrª  rÆ  r¬  rÎ   rœ  r¶  r¾   rË  rÌ  rÍ  rÎ  rÏ  rÉ  rÊ  rÐ  rÑ  rÅ  rÃ  rÄ  rÂ  rÇ  rÈ  r®  rè  rÄ   ré  rÒ  rì  rí  rî  r�  rŠ  r‹  rR   r   r   r½   r½   p  s¹  € € € € € ðð ð  $Ø"Ø(,ØØð/ð /ð /ð /ð /ðbð ð ð ðð ð ð ðð ð ð ðð ð ð ð
ð ð ð ð$ð $ð $ð $ð$ð $ð $ð $ð*ð *ð *ð *ðð ð ð ðð ð ð ð< 8<ð
ð 
ð 
ð 
ð 
ð4:ð :ð :ð :ðð ð ð ð0;ð ;ð ;ð ;ð ð	ð 	ð 	ñ „\ð	ð"(ð "(ð "(ð "(ðHð ð ð ð ð !€IØ>€OØ/€JØ?ÐØ$ tÑ+ÐØ%¨Ñ,Ðà 7ÐØ€LØ'¨,Ñ6Ð9RÑR€GØ�R”ZØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð ñ	ð 	Œ	ñô €Nð !�b”jØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ð ñ	ð ñ		ð ñ
	ð 	Œ	ñô €Oð?ð ?ð ?ð ?ð0 HJðMð Mð Mð Mð Mð. (˜RœZÐ(;Ñ<Ô<ÐØˆbŒjØØ
-ñ	.à
ñ	ð ñ	ñô €Gð �B”JÐ2°VÑ;Ñ<Ô<€MØ�"”*Ð0°6Ñ9Ð<OÑOÑPÔP€Kàðð ð ñ „[ðð< #˜œ
Ð#BÑCÔCÐàð
ð 
ð 
ð 
ñ „[ð
ð ˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆbŒjÐ,¨{Ñ:¸_ÑLÈuÑTÑUÔU€GØˆrŒzÐ-°Ñ<¸ÑNÐQVÑVÑWÔW€HØˆRŒZØÐ2Ñ2°_ÑDÀuÑLñô €Fð ˆbŒjØØ
7ñ	8à
ñ	ð ñ	ñô €Gð  �R”ZÐ 3°fÑ <Ñ=Ô=€NØ�2”:Ð1°EÑ9Ñ:Ô:€LØ�B”JØ˜fÑ$Ð'8Ñ8¸7ÑBñô €Mð �B”JÐ2°VÑ;Ñ<Ô<€MØ&˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð '˜BœJØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ð ñ	ð ñ	ñ	ô 	Ðð %˜"œ*Ø˜mÑ+¨oÑ=ÀÑEñô Ðð �”ØÐ#Ñ# mÑ3°gÑ=ÀÑFñô €Jð !�b”jÐ!4°Ñ!FÑGÔG€OØ�B”JØÐ.Ñ.°Ñ@À5ÑHñô €Mð ð
 59ØðI"ð I"ð I"ð I"ñ „[ðI"ðV "�r”zØRñô ÐðØˆeðàˆeðð 	ˆeðð 	ˆeð	ð
 	ˆeðð 	ˆdðð 	ˆdðð 	ˆuðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�5ðð 	ˆˆD‰	Œ	�4ðð 	ˆˆD‰	Œ	�4ðð  	ˆˆE‰
Œ
�Eð!€Mð& ð"ð "ð "ñ „[ð"ð6 '˜BœJÐ':¸XÑ'EÈÑ'OÑPÔPÐØ)˜rœzØØ
ñ	à
ñ	ð ñ	ð ñ		ð
 ñ	ñ ô  Ðð �B”JÐNÑOÔO€Mðð ð ð ðBð ð ð ð ð$ &*ðð ð ð ð ð ð r   r½   )r   r   r	   r
   )r=   r
   r	   r   )rS   rT   rU   r   r	   rV   )rÖ   r   r	   r
   )%Ú
__future__r   rñ   r   rÚ   rE  rI  r  rî   r  Útypingr   r   ÚTYPE_CHECKINGr   rÛ   r   r
   Ú	_DictBaser   rB   rK   r%  rM   rX   rZ   r`   r|   r   r®   r  rÑ   rØ   rþ   r  rÕ   r½   rR   r   r   ú<module>r     sÚ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à€Øð %ØÐÐÐÐÐàÔ$ S¨5¡[°#Ð%5Ô6€I€IàÔ$€Ið
7ð 7ð 7ð 7ð*Øˆ(ð*àˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð	*ð
 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð 	ˆ(ð*ð  	ˆ(ð!*ð" 	ˆ(ð#*ð *ð$ 	ˆ(ð%*ð& 	ˆ(ð'*ð( 	ˆ(ð)*ð* 	ˆ(ð+*ð, 	ˆ(ð-*ð. 	ˆ(ð/*ð0 	ˆ(ð1*ð2 	ˆ(ð3*ð4 	ˆ(ð5*ð6 	ˆ(ð7*ð8 	ˆ(ð9*ð: 	ˆ(ð;*ð< 	ˆ(ð=*ð> 	ˆ(ð?*ð@ 	ˆ(ðA*ðB 	ˆ(ðC*ðD 	ˆ(ðE*ð *ðF Ø
Ø
Ø
Ø
Ø
Ø
ðS*ð *ð *€ðZJð Jð Jð Jð	ð 	ð 	ð 	ð 	�\ñ 	ô 	ð 	ð,ð ,ð ,ð ,ð
ð ð ð ð ˜Zñ ô ð ð
7ð 7ð 7ð 7ð 7Ð.ñ 7ô 7ð 7ð(9ð 9ð 9ð 9ð 9Ð)ñ 9ô 9ð 9ð
[ð [ð [ð [ð [ñ [ô [ð [ð|&ð &ð &ð &ð &ñ &ô &ð &ðRDð Dð Dð Dð Dˆt�CŒyñ Dô Dð Dð
-ð -ð -ð -ð -ˆiñ -ô -ð -ð`Bð Bð Bð Bð Bñ Bô Bð Bð+ð +ð +ð +ð +ñ +ô +ð +ð*ð ð ð ð:Ið Ið Ið Ið Iñ Iô Ið Ið Ið Ir   