§
    £”j.d ã                   óÖ  — d Z dZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ  G d„ de ¦  «        Z!dZ"dZ#dZ$dZ%dZ&dZ' e(d¬¦  «        Z)d„ Z*d­d„Z+d„ Z,e,Z- G d„ d¦  «        Z. G d„ d¦  «        Z/ G d„ de/¦  «        Z0 G d„ d e/¦  «        Z1d!Z2d"Z3d#Z4 G d$„ d%e/¦  «        Z5d&„ Z6ddl7Z7 e7j8        d'¦  «        Z9[7d(„ Z:d)„ Z; G d*„ d+e/¦  «        Z< e=d,¦  «         e=d-¦  «        fd.„Z> G d/„ d0e/¦  «        Z? G d1„ d2¦  «        Z@d3„ ZA G d4„ d5e?¦  «        ZB G d6„ d7eB¦  «        ZC G d8„ d9¦  «        ZD eD¦   «         ZE G d:„ d;¦  «        ZF eF¦   «         ZG G d<„ d=e/¦  «        ZHd®d>„ZId?ZJ G d@„ dAe/¦  «        ZK G dB„ dCeK¦  «        ZL G dD„ dEe/¦  «        ZM G dF„ dGe/¦  «        ZN G dH„ dIe/¦  «        ZO G dJ„ dKe/¦  «        ZP G dL„ dMe/¦  «        ZQ G dN„ dOe/¦  «        ZR G dP„ dQeH¦  «        ZS G dR„ dSe/¦  «        ZT G dT„ dUeT¦  «        ZU G dV„ dWeT¦  «        ZV G dX„ dYe ¦  «        ZW G dZ„ d[eT¦  «        ZX G d\„ d]eT¦  «        ZYd^„ ZZd_Z[ G d`„ dae/¦  «        Z\ G db„ dce/¦  «        Z] G dd„ dee/¦  «        Z^d®df„Z_dgZ` G dh„ die/¦  «        Za G dj„ dke/¦  «        Zb G dl„ dmeb¦  «        Zc G dn„ doeb¦  «        Zd G dp„ dqeb¦  «        Ze G dr„ dsee¦  «        Zfdt„ Zg G du„ dve/¦  «        Zh G dw„ dxe/¦  «        Zi G dy„ dze/¦  «        Zj G d{„ d|e/¦  «        Zk G d}„ d~e/¦  «        Zl G d„ d€el¦  «        Zm G d�„ d‚e/¦  «        Zn G dƒ„ d„en¦  «        Zo G d…„ d†e/¦  «        Zp G d‡„ dˆep¦  «        Zq G d‰„ dŠe/¦  «        Zr G d‹„ dŒe/¦  «        Zs G d�„ dŽe/¦  «        Zt G d�„ d�et¦  «        Zu G d‘„ d’e/¦  «        Zv G d“„ d”e/¦  «        Zwd•d–d—d˜œZx G d™„ dše/¦  «        Zy G d›„ dœ¦  «        Zz G d�„ dže/¦  «        Z{ G dŸ„ d e{¦  «        Z| G d¡„ d¢e{¦  «        Z} G d£„ d¤e/¦  «        Z~ G d¥„ d¦e~¦  «        Z G d§„ d¨e~¦  «        Z€ G d©„ dªe~¦  «        Z�e‚d«k    r eƒd¬¦  «         dS dS )¯z4.2.0a_  
The module pdfdoc.py handles the 'outer structure' of PDF documents, ensuring that
all objects are properly cross-referenced and indexed to the nearest byte.  The
'inner structure' - the page descriptions - are presumed to be generated before
each page is saved.
pdfgen.py calls this and provides a 'canvas' object to handle page marking operators.
piddlePDF calls pdfgen and offers a high-level interface.

The classes within this generally mirror structures in the PDF file
and are not part of any public interface.  Instead, canvas and font
classes are made available elsewhere for users to manipulate.
é    N)ÚOrderedDict)Úpdfutils)Ú	rl_config)
Úopen_for_readÚmakeFileNameÚisSeqÚisBytesÚ	isUnicodeÚ	_digesterÚisStrÚbytestrÚannotateExceptionÚ	TimeStamp)Ú	escapePDFÚfp_strÚasciiBase85EncodeÚasciiBase85Decode)Ú
pdfmetrics)Úmd5)Ústderrc                   ó   — e Zd ZdS )ÚPDFErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/pdfbase/pdfdoc.pyr   r      ó   € € € € € Ø€Dr   r   Ú__InternalName__Ú__RefOnly__Ú__Comment__Ú
BasicFontsÚPages)é   é   )r&   é   )Útransparencyc                 óZ   — t          | t          ¦  «        r|                      d¦  «        n| S )NÚ	extpdfdoc)Ú
isinstanceÚstrÚencode)Úxs    r   Ú	pdfdocEncr0   5   s(   € Ý$.¨qµÑ$5Ô$5Ð<ˆ1�8Š8�KÑ Ô Ð ¸1Ð<r   c                 ón  — t          | t          ¦  «        r�|s=t          | t          ¦  «        r(|                     | ¦  «                             |¦  «        S |                      |¦  «        }t          j        s;t          j        r/t          | t          ¦  «        rt          d| j	        z  ¦  «        |z   }|S t          | ¦  «        t          t          fv rt          t          | ¦  «        ¦  «        S t          | ¦  «        r| S t!          | ¦  «        rt          | ¦  «        S t          t#          | ¦  «        ¦  «        S )z„Indirection step for formatting.
       Ensures that document parameters alter behaviour
       of formatting for all elements.
    z%% %s
)r,   Ú	PDFObjectÚhasattrr"   Ú	ReferenceÚformatr   Ú	invariantÚpdfCommentsr#   r0   ÚtypeÚfloatÚintr   r	   r
   r-   )ÚelementÚdocumentÚtoplevelÚfs       r   r5   r5   8   s  € õ
 �'�)Ñ$Ô$ð 'Øð 	�G G­[Ñ9Ô9ð 	ð ×%Ò% gÑ.Ô.×5Ò5°hÑ?Ô?Ð?à—’˜xÑ(Ô(ˆAÝÔ&ð A­9Ô+@ð AÅWÈWÕVaÑEbÔEbð AÝ˜i¨'Ô*=Ñ=Ñ>Ô>¸qÑ@�ØˆHÝ	ˆg‰Œ�5¥#˜,Ð	&Ð	&õ � ™œÑ)Ô)Ð)Ý	�Ñ	Ô	ð 'ØˆÝ	�7Ñ	Ô	ð 'Ý˜Ñ!Ô!Ð!å�˜W™œÑ&Ô&Ð&r   c                 ó   — d| z  S )Nz
FormXob.%sr   )Úexternalnames    r   ÚxObjectNamerA   R   s   € Ø˜,Ñ&Ð&r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚNoEncryptionc                 ó   — |S )zencode a string, stream, textr   )ÚselfÚts     r   r.   zNoEncryption.encodeZ   s   € àˆr   c                 ó   — d S ©Nr   ©rE   r<   s     r   ÚpreparezNoEncryption.prepare]   ó   € àˆr   c                 ó   — d S rH   r   )rE   ÚobjnumÚversions      r   ÚregisterzNoEncryption.register`   rK   r   c                 ó   — d S rH   r   ©rE   s    r   ÚinfozNoEncryption.infoc   s   € àˆtr   N)r   r   r   r.   rJ   rO   rR   r   r   r   rC   rC   Y   sP   € € € € € ðð ð ðð ð ðð ð ðð ð ð ð r   rC   c                   ó   — e Zd ZdS )r2   Nr   r   r   r   r2   r2   g   r    r   r2   c                   ó&   — e Zd ZdZ e¦   «         ZdS )ÚDummyDocz'used to bypass encryption when requiredN)r   r   r   Ú__doc__rC   Úencryptr   r   r   rU   rU   j   s   € € € € € Ø-Ð-Øˆl‰nŒn€G€G€Gr   rU   c                   ó  — e Zd ZdZ e¦   «         Zdej        ej        de	dfd„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d%d!„Z'd"„ Z(d#„ Z)d&d$„Z*dS )'ÚPDFDocumentNr   c                 ó¸  — d | _         d| _        d| _        d | _        d| _        |€t
          j        | _        n|| _        |                      |¦  «         || _        t          d¬¦  «        x}| _
        |                     d¦  «         t          | j        ¦  «        | _        | j        j        }t          |¦  «        }|                     t!          |¦  «        ¦  «         i | _        i | _        i | _        i | _        t+          ¦   «         x}x| _        | _        t1          ¦   «         x}	| _        |	|_        |r|nt
          j        }|rt7          |¦  «        |_        |rt;          ¦   «         nt=          ¦   «         x| _        x| _         |_         tC          ¦   «         | _"        i | _#        tI          i ¦  «        }
d|
_%        |  &                    |
tN          ¦  «         g | _(        d S )Nr   r&   F)Úusedforsecuritys   a reportlab documentzThe standard fonts dictionary))Ú_IDÚobjectcounterÚshadingCounterÚinObjectÚpageCounterr   r6   ÚsetCompressionÚ_pdfVersionr   Ú	signatureÚupdater   Ú
_timeStamprF   Úasciir   ÚidToObjectNumberAndVersionÚ
idToObjectÚ
idToOffsetÚ
numberToIdÚ
PDFCatalogÚCatalogÚ_catalogÚPDFPagesr%   ÚdocumentLangÚ	PDFStringÚLangÚPDFOutlines0ÚPDFOutlinesÚoutlineÚOutlinesÚPDFInforR   ÚfontMappingÚPDFDictionaryr#   r4   r$   ÚdelayedFonts)rE   ÚdummyoutlineÚcompressionr6   ÚfilenameÚ
pdfVersionÚlangÚsigÚcatÚpagesÚDDs              r   Ú__init__zPDFDocument.__init__s   s®  € ð ˆŒØˆÔØˆÔØˆŒØˆÔð ÐÝ&Ô0ˆDŒNˆNà&ˆDŒNØ×Ò˜KÑ(Ô(Ð(Ø%ˆÔå"°5Ð9Ñ9Ô9Ð9ˆˆdŒnØ�
Š
Ð*Ñ+Ô+Ð+Ý# D¤NÑ3Ô3ˆŒØŒoÔˆÝ�C‰jŒjˆØ�
Š
•7˜3‘<”<Ñ Ô Ð à*,ˆÔ'àˆŒàˆŒàˆŒÝ-7©\¬\Ð9ˆÐ9ˆdŒl˜Tœ]Ý%™ZœZÐ'ˆ�”
ØˆŒ	ØÐ7ˆtˆt¥Ô!7ˆØð 	'Ý  ‘”ˆCŒHØHTÐ6gµl±n´n°nÕZeÑZgÔZgÐgˆŒÐg�t”} s¤|Ý‘I”IˆŒ	ð ˆÔå˜2ÑÔˆØ8ˆŒØ�Š�r�:Ñ&Ô&Ð&ØˆÔÐÐr   c                 ó   — || _         d S rH   ©r{   ©rE   Úonoffs     r   ra   zPDFDocument.setCompression¨   s   € à ˆÔÐÐr   c                 óZ   — |D ]'}t          | j        t          |         ¦  «        | _        Œ(dS )zREnsure that the pdf version is greater than or equal to that specified by the keysN)Úmaxrb   ÚPDF_SUPPORT_VERSION)rE   ÚkeysÚks      r   ÚensureMinPdfVersionzPDFDocument.ensureMinPdfVersion¬   s=   € àð 	Mð 	MˆAÝ" 4Ô#3Õ5HÈÔ5KÑLÔLˆDÔÐð	Mð 	Mr   c                 óf   — | j         rdS | j                             t          |¦  «        ¦  «         dS )z add information to the signatureN)r\   rc   rd   r   )rE   Úthings     r   ÚupdateSignaturezPDFDocument.updateSignature±   s0   € àŒ8Ð�V�VØŒ×Ò�g e™nœnÑ-Ô-Ð-Ð-Ð-r   c                 óâ   — | j         r| j         S | j                             ¦   «         }t          ¦   «         }t	          |d¬¦  «                             |¦  «        }d|z   |z   dz   | _         | j         S )z<A unique fingerprint for the file (unless in invariant mode)Úraw)Úencs   
[s<   ]
% ReportLab generated PDF document -- digest (opensource)
)r\   rc   ÚdigestrU   ÚPDFTextr5   )rE   r”   ÚdocÚIDss       r   ÚIDzPDFDocument.ID¶   sk   € àŒ8ð 	Ø”8ˆOØ”×&Ò&Ñ(Ô(ˆÝ‰jŒjˆÝ�f Ð'Ñ'Ô'×.Ò.¨sÑ3Ô3ˆØ˜3‘J˜s‘NÐ#dÑdˆŒØŒxˆr   c                 óx  — t          | dd¦  «        rt          d| j        j        z  ¦  «        ‚d| _        t          t          |dd ¦  «        d¦  «        rmd}|}t          |dd ¦  «        }t          |t          ¦  «        rd	|z  }n-t          |¦  «        sd
|j        j        t          |¦  «        fz  }t          |¦  «        }nPt          |¦  «        r"d}t          |¦  «        }t          |d¦  «        }nt          dt          |¦  «        z  ¦  «        ‚|                      |¦  «        }t          |¦  «        r|                     d¦  «        }|                     |¦  «         |r4|                     ¦   «          dd l}|j        dk    rddlm}  ||¦  «         t          |dd ¦  «        rt/          d|›�¦  «         d S d S )NÚ_savedToFileFz)class %s instances can only be saved onceTÚwriteÚ__call__r   Únamez
<os fd:%d>z<%s@0X%8.8X>r&   Úwbz#Cannot use %s as a filename or fileÚlatin1Úmac)ÚmarkfilenameÚ
_verbosityzsaved )ÚgetattrÚRuntimeErrorÚ	__class__r   rš   r3   r,   r:   r   Úidr   ÚopenÚ	TypeErrorÚreprÚ
GetPDFDatar
   r.   r›   ÚcloseÚosr�   Úreportlab.lib.utilsr¡   Úprint)rE   r|   ÚcanvasÚmyfiler>   Údatar¬   r¡   s           r   Ú
SaveToFilezPDFDocument.SaveToFileÀ   sÑ  € Ý�4˜ uÑ-Ô-ð 	fÝÐJÈTÌ^ÔMdÑdÑeÔeÐeØ ˆÔÝ•7˜8 W¨TÑ2Ô2°:Ñ>Ô>ð 	TØˆFØˆAÝ˜q ¨Ñ-Ô-ˆHÝ˜(¥3Ñ'Ô'ð IØ'¨Ñ1��Ý˜8‘_”_ð IØ)¨Q¬[Ô-AÅ"ÀQÁ%Ä%Ð,HÑH�Ý# HÑ-Ô-ˆHˆHÝ�8‰_Œ_ð 	TØˆFÝ# HÑ-Ô-ˆHÝ�X˜tÑ$Ô$ˆAˆAåÐAÅDÈÁNÄNÑRÑSÔSÐSà�Š˜vÑ&Ô&ˆÝ�T‰?Œ?ð 	)Ø—;’;˜xÑ(Ô(ˆDØ	�Š�‰ŒˆØð 	'Ø�GŠG‰IŒIˆIØˆIˆIˆIØŒw˜Š~ˆ~Ø<Ð<Ð<Ð<Ð<Ð<Ø�˜XÑ&Ô&Ð&Ý�6˜, tÑ,Ô,ÐM­e¨eÀ(À(Ð4LÑ.MÔ.MÐ.MÐ.MÐ.MÐMÐMr   c                 óž  — | j         D ]}|                     | ¦  «         Œ| j        | j        _        | j                             | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         | j         	                    | |¦  «         | j        j
        dk     rd | j        _        |                      ¦   «         S ©Nr   )ry   Ú
addObjectsr6   rR   r”   rc   r4   rl   ru   rJ   Úreadyr5   )rE   r¯   Úfnts      r   rª   zPDFDocument.GetPDFDataà   s·   € àÔ$ð 	!ð 	!ˆCØ�NŠN˜4Ñ Ô Ð Ð à"œnˆŒ	ÔØŒ	×Ò˜œÑ(Ô(Ð(ð 	�Š�t”|Ñ$Ô$Ð$Ø�Š�t”yÑ!Ô!Ð!ØŒ×Ò˜d FÑ+Ô+Ð+ØŒ=Ô˜qÒ Ð Ø$(ˆDŒLÔ!Ø�{Š{‰}Œ}Ðr   c                 ój   — | j         �$| j         dk    rdS t          d| j         z  ¦  «        ‚d| _         dS )zXspecify the current object as a page (enables reference binding and other page features)NÚpagez%can't go in page already in object %s)r_   Ú
ValueErrorrQ   s    r   ÚinPagezPDFDocument.inPageð   s<   € àŒ=Ð$ØŒ}˜fÒ$Ð$ f fÝÐDÀtÄ}ÑTÑUÔUÐUØˆŒˆˆr   c                 ó   — d| _         dS )zBspecify that we are in a form xobject (disable page features, etc)ÚformN)r_   rQ   s    r   ÚinFormzPDFDocument.inForm÷   s   € ð
 ˆŒˆˆr   c                 ó2  — | j         }||v r||         S 	 t          j        |¦  «        }|j        rt	          dt          |¦  «        z  ¦  «        ‚|                     | ¦  «         ||         S # t          $ r  t	          dt          |¦  «        z  ¦  «        ‚w xY w)Nz1getInternalFontName(%s) called for a dynamic fontzFont %s not known!)rw   r   ÚgetFontÚ_dynamicFontr   r©   rµ   ÚKeyError)rE   Ú
psfontnameÚfmÚfontObjs       r   ÚgetInternalFontNamezPDFDocument.getInternalFontNameÿ   s¸   € ØÔˆØ˜ÐÐØ�j”>Ð!ðHå$Ô,¨ZÑ8Ô8�ØÔ'ð kÝ"Ð#VÕY]Ð^hÑYiÔYiÑ#iÑjÔjÐjØ×"Ò" 4Ñ(Ô(Ð(Ø˜*”~Ð%øÝð Hð Hð HÝÐ3µd¸:Ñ6FÔ6FÑFÑGÔGÐGðHøøøs   •AA, Á,*Bc                 ó0   — dt          | j        ¦  «        z   S )NÚPage)r©   r`   rQ   s    r   ÚthisPageNamezPDFDocument.thisPageName  s   € Ø•d˜4Ô+Ñ,Ô,Ñ,Ð,r   c                 óD   — t          |                      ¦   «         ¦  «        S rH   )ÚPDFObjectReferencerÉ   rQ   s    r   ÚthisPageRefzPDFDocument.thisPageRef  s   € Ý! $×"3Ò"3Ñ"5Ô"5Ñ6Ô6Ð6r   c                 ó¼   — |                       ¦   «         }|                      ||¦  «         | j                             |¦  «         | xj        dz  c_        d | _        d S )Nr&   )rÉ   r4   r%   ÚaddPager`   r_   )rE   r¹   r�   s      r   rÎ   zPDFDocument.addPage  s\   € Ø× Ò Ñ"Ô"ˆØ�Š�t˜TÑ"Ô"Ð"ØŒ
×Ò˜4Ñ Ô Ð ØÐÔ˜AÑÐÔØˆŒˆˆr   c                 ó˜   — | j         dk    r|                      ¦   «          |                      |t          |¦  «        ¦  «         d| _         dS )zadd a Form XObject.r½   N)r_   r¾   r4   rA   )rE   r�   r½   s      r   ÚaddFormzPDFDocument.addForm  sE   € ð Œ=˜FÒ"Ð"Ø�KŠK‰MŒMˆMØ�Š�t�[¨Ñ.Ô.Ñ/Ô/Ð/ØˆŒˆˆr   c                 ó   — d|z  S )NzAnnot.%sr   )rE   r@   s     r   ÚannotationNamezPDFDocument.annotationName#  s   € Ø˜,Ñ&Ð&r   c                 óX   — |                       ||                      |¦  «        ¦  «         d S rH   )r4   rÒ   )rE   r�   Ú
annotations      r   ÚaddAnnotationzPDFDocument.addAnnotation&  s*   € Ø�Š�z 4×#6Ò#6°tÑ#<Ô#<Ñ=Ô=Ð=Ð=Ð=r   c                 óJ   — |                       |¦  «        }t          |¦  «        S rH   )rÒ   rË   ©rE   r�   Úinternalnames      r   ÚrefAnnotationzPDFDocument.refAnnotation)  s#   € Ø×*Ò*¨4Ñ0Ô0ˆÝ! ,Ñ/Ô/Ð/r   c                 óf   — d| j         z  }|                      ||¦  «         | xj         dz  c_         |S )NzSh%dr&   )r^   r4   )rE   Úshadingr�   s      r   Ú
addShadingzPDFDocument.addShading-  s<   € Ø˜Ô,Ñ,ˆØ	�Š˜ Ñ	&Ô	&Ð	&Ø	Ð	Ô	 Ñ	!Ð	Ô	Øˆr   c                 ó<  — |j         }|s¹|j        dk    r|j        dk    r|j        dk    rd}nk|j        dk    r|j        dk    r|j        dk    rd}nG|j        dk    r|j        dk    r|j        dk    rd}n#|j        dk    r|j        dk    r|j        dk    rd}|st          d|z  ¦  «        ‚|                     |¬¦  «        }t          |¦  «        dd …         }|| j        vr7t          |¦  «         
                    ¦   «         }|                      ||¦  «         ||fS )	Nr   ÚBLACKÚCYANÚMAGENTAÚYELLOWz&CMYK colour %r used without a spotName)ÚspotNamer&   )râ   ÚcyanÚmagentaÚyellowÚblackrº   ÚcloneÚPDFNamerh   ÚPDFSeparationCMYKColorÚvaluer4   )rE   ÚcmykÚsnamer�   Úseps        r   ÚaddColorzPDFDocument.addColor3  s.  € Ø”ˆØð 	4ØŒy˜!Š|ˆ| ¤¨a¢ °D´KÀ²N°NØ��Ø”˜Q’� 4¤<°¢? ?°t´{ÀA²~°~Ø��Ø”˜A’� $¤*¨a¢- -°D´KÀ²N°NØ!��Ø”˜A’� $¤,°¢/ /°d´jÀ!²m°mØ �Øð 4Ý Ð!IÈDÑ!PÑQÔQÐQà—z’z¨U�zÑ3Ô3�Ý�u‰~Œ~˜a˜b˜bÔ!ˆØ�t”Ð&Ð&Ý(¨Ñ.Ô.×4Ò4Ñ6Ô6ˆCØ�NŠN˜3˜tÑ$Ô$Ð$Ø�EˆzÐr   c                 ó>   — |€d| j         _        dS || j         _        dS )úembeds in PDF fileNú(anonymous))rR   Útitle)rE   rò   s     r   ÚsetTitlezPDFDocument.setTitleH  s!   € àˆ=Ø+ˆDŒIŒOˆOˆOà#ˆDŒIŒOˆOˆOr   c                 ó>   — |€d| j         _        dS || j         _        dS )zembedded in PDF fileNrñ   )rR   Úauthor)rE   rõ   s     r   Ú	setAuthorzPDFDocument.setAuthorO  s)   € ð ˆ>Ø,ˆDŒIÔÐÐà%ˆDŒIÔÐÐr   c                 ó>   — |€d| j         _        dS || j         _        dS ©rð   Nz(unspecified))rR   Úsubject)rE   rù   s     r   Ú
setSubjectzPDFDocument.setSubjectW  s)   € ð ˆ?Ø /ˆDŒIÔÐÐà 'ˆDŒIÔÐÐr   c                 ó>   — |€d| j         _        dS || j         _        dS rø   )rR   Úcreator)rE   rü   s     r   Ú
setCreatorzPDFDocument.setCreator`  s'   € àˆ?Ø /ˆDŒIÔÐÐà 'ˆDŒIÔÐÐr   c                 óH   — |€t           | j        _        dS || j        _        dS )rð   N)Ú_default_producerrR   Úproducer)rE   r   s     r   ÚsetProducerzPDFDocument.setProducerg  s(   € àÐÝ!2ˆDŒIÔÐÐà!)ˆDŒIÔÐÐr   c                 ó>   — |€d| j         _        dS || j         _        dS )z/embeds a string containing keywords in PDF fileNÚ )rR   Úkeywords)rE   r  s     r   ÚsetKeywordszPDFDocument.setKeywordsn  s*   € ð ÐØ!#ˆDŒIÔÐÐà!)ˆDŒIÔÐÐr   c                 ó   — || j         _        d S rH   )rR   Ú_dateFormatter)rE   ÚdateFormatters     r   ÚsetDateFormatterzPDFDocument.setDateFormatterw  s   € Ø#0ˆŒ	Ô Ð Ð r   c                 óÌ   — t          | j                             ¦   «         ¦  «        }ddlm} |j        D ]}||vr|                     |¦  «         Œ|                     ¦   «          |S )Nr   )Ú	_fontdata)Úlistrw   r‹   Úreportlab.pdfbaser  ÚstandardFontsÚappendÚsort)rE   Ú	fontnamesr  r�   s       r   ÚgetAvailableFontszPDFDocument.getAvailableFontsz  sx   € Ý˜Ô)×.Ò.Ñ0Ô0Ñ1Ô1ˆ	à/Ð/Ð/Ð/Ð/Ð/ØÔ+ð 	'ð 	'ˆDØ˜9Ð$Ð$Ø× Ò  Ñ&Ô&Ð&øØ�ŠÑÔÐØÐr   c           	      ó¤  — | j                              | ¦  «         | j        }| j        }|                      |¦  «         |                      |¦  «         d }| j                              ¦   «         }|r|                      |¦  «        }d}g }| j        }| j        }| j        }	| j        }
t          | j
        ¦  «        x| _        }	 |dz  }||vrnÒ||         }|	|         }t          ||¦  «        }|                     | ¦  «        }t          j        sat          j        rU	 |j        j        }n#  t'          |¦  «        }Y nxY w|                     dt'          |¦  «        ›d|d d…         ›d�¦  «         |                     |¦  «        }||
|<   |                     |¦  «         ŒÜ| `t-          |¦  «        }|dz
  |k    rt/          d|›d	|›�¦  «        ‚t1          ¦   «         }|                     d|¦  «         |                     | ¦  «        }|                     |¦  «        }t5          ||dz   |                      |¦  «        |                      |¦  «        ||                      ¦   «         ¬
¦  «        }|                     | ¦  «        }|                     |¦  «         t9          | dg ¦  «        D ]}|                     |¦  «         Œ|                     | ¦  «        S )Nr   Tr&   z% z: class é2   z 
zcounter z' doesn't match number to id dictionary )Ú	startxrefÚSizeÚRootÚInfoÚEncryptr˜   Ú	_digiSigs)rW   rJ   rl   rR   r4   rj   rg   rh   ri   ÚPDFFilerb   Ú	__accum__ÚPDFIndirectObjectr5   r   r6   r7   r¥   r   rf   Úaddr  Úlenrº   ÚPDFCrossReferenceTableÚ
addsectionÚ
PDFTrailerr˜   r£   Úsign)rE   r€   rR   Ú
encryptrefÚencryptinfoÚcounterÚidsÚ
numbertoidÚidToNVÚidToObÚidToOfÚFileÚoidÚobjÚIOÚIOfÚ	classnameÚoffsetÚlnoÚxrefÚxreffÚ
xrefoffsetÚtrailerÚtrailerfÚdss                            r   r5   zPDFDocument.format„  sÏ  € ð 	Œ×Ò˜TÑ"Ô"Ð"ØŒlˆØŒyˆØ�Š�sÑÔÐØ�Š�tÑÔÐàˆ
Ø”l×'Ò'Ñ)Ô)ˆØð 	5ØŸš¨Ñ4Ô4ˆJàˆØˆØ”_ˆ
ØÔ0ˆØ”ˆØ”ˆõ !(¨Ô(8Ñ 9Ô 9Ð9ˆŒ˜ð	Ø�q‰LˆGØ˜jÐ(Ð(¨%Ø˜WÔ%ˆCà˜”+ˆCÝ" 3¨Ñ,Ô,ˆBà—)’)˜D‘/”/ˆCåÔ&ð N­9Ô+@ð Nð+Ø #¤Ô 6�I�Iøð+Ý % c¡
¤
�I�I�IøøøØ—’�µ°s±´°°¸YÀsÈÀs¼^¸^¸^ÐLÑMÔMÐMØ—X’X˜c‘]”]ˆFØ ˆF�3‰KØ�JŠJ�s‰OŒOˆOð%	ð& ˆNå�*‰oŒoˆØ�1‰9�cŠ>ˆ>Ý�*ÐU\ÐU\ÐU\Ð^aÐ^aÐbÑcÔcÐcå%Ñ'Ô'ˆØ�Š˜˜3ÑÔÐØ—’˜DÑ!Ô!ˆØ—X’X˜e‘_”_ˆ
åØ"Ø�q‘5Ø—>’> #Ñ&Ô&Ø—>’> $Ñ'Ô'Ø Ø—’‘”ðñ ô ˆð —>’> $Ñ'Ô'ˆØ�Š�ÑÔÐÝ˜$˜{¨2Ñ.Ô.ð 	ð 	ˆBØ�GŠG�D‰MŒMˆMˆMà�{Š{˜4Ñ Ô Ð s   ÄD& Ä&D9c                 ó2   — t          |¦  «        }|| j        v S )z test for existence of named form)rA   rh   r×   s      r   ÚhasFormzPDFDocument.hasFormÉ  s   € å" 4Ñ(Ô(ˆØ˜tœÐ.Ð.r   ÚMediaBoxc                 óŒ  — t          |¦  «        }|| j        v r«| j        |         }t          |d¦  «        r|j        |         S t	          |t
          ¦  «        r|                     ¦   «         S t	          |t          ¦  «        r$t          |j	        j
        |         j        ¦  «        S t          dt          |¦  «        z  ¦  «        ‚dS )z¬get the declared bounding box of the form as a list.
        If you specify a different PDF box definition (e.g. the
        ArtBox) and it has one, that's what you'll get.Ú_extra_pageCatcher_infoz'I don't understand the form instance %sN)rA   rh   r3   r>  r,   ÚPDFFormXObjectÚBBoxListÚ	PDFStreamr  Ú
dictionaryÚdictÚsequencerº   r©   )rE   r�   ÚboxTyperØ   Útheforms        r   ÚgetFormBBoxzPDFDocument.getFormBBoxÎ  sÃ   € õ # 4Ñ(Ô(ˆØ˜4œ?Ð*Ð*Ø”o lÔ3ˆGÝ�wÐ8Ñ9Ô9ð @ØÔ6°wÔ?Ð?Ý˜'¥>Ñ2Ô2ð Yà×'Ò'Ñ)Ô)Ð)Ý˜G¥YÑ/Ô/ð Yå˜GÔ.Ô3°GÔ<ÔEÑFÔFÐFå Ð!JÍTÐRVÉZÌZÑ!WÑXÔXÐXð +Ð*r   c                 ó    — t          |¦  «        S )ziLets canvas find out what form is called internally.
        Never mind whether it is defined yet or not.)rA   ©rE   r�   s     r   ÚgetXObjectNamezPDFDocument.getXObjectNameà  s   € õ ˜4Ñ Ô Ð r   c                 ót   — i }|D ]%}t          |¦  «        }t          |¦  «        }|||<   Œ&t          |¦  «        S )z…construct an xobject dict (for inclusion in a resource dict, usually)
           from a list of form names (images not yet supported))rA   rË   rx   )rE   Ú	formnamesÚDr�   rØ   Ú	references         r   ÚxobjDictzPDFDocument.xobjDictå  sK   € ð ˆØð 	(ð 	(ˆDÝ& tÑ,Ô,ˆLÝ*¨<Ñ8Ô8ˆIØ'ˆAˆl‰OˆOå˜QÑÔÐr   c                 ó¾  — t          |t          ¦  «        }| j        }|€|r|j        t          u r|S t          |t          ¦  «        r�|j        }|�5||k    r/t          dt          |¦  «        ›dt          |¦  «        ›�¦  «        ‚||vr0t          dt          |¦  «        ›dt          |¦  «        ›d�¦  «        ‚t	          |¦  «        S | j        dz   x}| _        |€dt          |¦  «        z   }||v r<||         }||k    rt          dt          |¦  «        z   ¦  «        ‚t	          |¦  «        S |r||_        |d	f| j        |<   || j        |<   |||<   t	          |¦  «        S )
Nzattempt to reregister object z with new name zobject of type z
 named as z, but not registeredr&   ÚRzredefining named object: r   )r,   r2   rh   r¥   rË   r3   r!   rº   r©   r8   rf   r]   rg   rj   )rE   r.  r�   Úiobrh   Úintnamer]   Úothers           r   r4   zPDFDocument.Referenceð  s”  € õ ˜�YÑ'Ô'ˆØ”_ˆ
Øˆ< ˆ<¨¬Õ9KÐ(KÐ(KØˆJÝ�3Õ(Ñ)Ô)ð 	/àÔ*ˆGØÐ D¨'¢M MÝ �jÝ˜‘M”M�M�M¥4¨¡:¤: :ð"/ñ 0ô 0ð 0à˜jÐ(Ð(Ý �jÕX\Ð]`ÑXaÔXaÐXaÐXaÕbgÐhoÑbpÔbpÐbpÐbpÐ!qÑrÔrÐrÝ% gÑ.Ô.Ð.à-1Ô-?ÀÑ-AÐAˆ˜Ô*Øˆ<Ø•t˜MÑ*Ô*Ñ*ˆDØ�:ÐÐØ˜tÔ$ˆEØ�cŠzˆzÝ Ð!<½TÀ$¹Z¼ZÑ!GÑHÔHÐHÝ% dÑ+Ô+Ð+Øð 	(Ø#'ˆCÔ à1>ÀÐ0BˆÔ'¨Ñ-Ø)-ˆŒ˜Ñ&Øˆ
�4ÑÝ! $Ñ'Ô'Ð'r   )r<  rH   )+r   r   r   ÚdefaultStreamFiltersrC   rW   r   ÚpageCompressionr6   ÚPDF_VERSION_DEFAULTrƒ   ra   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  r5   r;  rG  rJ  rO  r4   r   r   r   rY   rY   o   sN  € € € € € àÐØˆl‰nŒn€GàØ&Ô6Ø$Ô.ØØ/Øð3ð 3ð 3ð 3ðj!ð !ð !ðMð Mð Mð
.ð .ð .ð
ð ð ðNð Nð Nð@ð ð ð ð ð ðð ð ðHð Hð Hð-ð -ð -ð7ð 7ð 7ðð ð ðð ð ð'ð 'ð 'ð>ð >ð >ð0ð 0ð 0ðð ð ðð ð ð*$ð $ð $ð&ð &ð &ð(ð (ð (ð(ð (ð (ð*ð *ð *ð*ð *ð *ð1ð 1ð 1ðð ð ðC!ð C!ð C!ðJ/ð /ð /ð
Yð Yð Yð Yð$!ð !ð !ð
	 ð 	 ð 	 ð(ð (ð (ð (ð (ð (r   rY   ÚtrueÚfalseÚnullc                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )r•   úutf-8c                 ó"   — || _         || _        d S rH   )rF   r“   )rE   rF   r“   s      r   rƒ   zPDFText.__init__  s   € ØˆŒØˆŒˆˆr   c                 óÊ   — | j         }t          |¦  «        r|                     | j        ¦  «        }t	          j        |j                             |¦  «        ¦  «        }d|z   dz   S )Nó   <ó   >)rF   r
   r.   r“   ÚbinasciiÚhexlifyrW   )rE   r<   rF   Úresults       r   r5   zPDFText.format  sZ   € ØŒFˆÝ�Q‰<Œ<ð 	#Ø—’˜œÑ"Ô"ˆAÝÔ! (Ô"2×"9Ò"9¸!Ñ"<Ô"<Ñ=Ô=ˆØ�f‰}˜tÑ#Ð#r   c                 óH   — t          ¦   «         }|                      |¦  «        S rH   )rU   r5   )rE   Údummydocs     r   Ú__str__zPDFText.__str__   s   € Ý‘:”:ˆØ�{Š{˜8Ñ$Ô$Ð$r   N)r\  )r   r   r   rƒ   r5   rf  r   r   r   r•   r•     sF   € € € € € ðð ð ð ð$ð $ð $ð%ð %ð %ð %ð %r   r•   c                 ó   — | S rH   r   )Úns    r   Ú	PDFnumberri  $  s   € Ø€Hr   z[^()]c                 óˆ   — t                                d| ¦  «        } d}| D ]}|dk    r|dz  }Œ|dz  }|dk     r dS Œ| rdpdS )z+test whether a string is balanced in parensr  r   ú(r&   )Ú_re_cleanparensÚsub)Úsrh  Úcs      r   Ú_isbalancedrp  *  si   € å×Ò˜B˜qÑ!Ô!€AØ	€AØð ð ˆØˆcŠ6ˆ6�1�a‘4�1�1à�‰FˆAØ�Šsˆs˜1˜1˜1ˆsØˆ5ˆ;�QÐ˜!Ðr   c                 ób   — 	 |                       d¦  «         dS # t          $ r}Y d}~dS d}~ww xY w)z(return true if no Pdfdoc encoding errorsÚpdfdocr&   Nr   )r.   ÚUnicodeEncodeError)ÚutextÚes     r   Ú_checkPdfdocrv  5  sJ   € ðØ�Š�XÑÔÐØˆqøÝð ð ð Øˆqˆqˆqˆqˆqøøøøðøøøs   ‚ ™
.©.c                   ó&   — e Zd ZdZdd„Zd„ Zd„ ZdS )	rp   Fr&   Úautoc                 ó¦   — t          |t          ¦  «        r&|j        | _        |j        | _        |j        | _        dS || _        || _        || _        dS )az  s can be unicode/utf8 or a PDFString
        if escape is true then the output will be passed through escape
        if enc is raw then bytes will be left alone
        if enc is auto we'll try and automatically adapt to utf_16_be/utf_16_le if the
        effective string is not entirely in pdfdoc
        if self.unicodeEncValid unicode will use the specifed encoding
        N)r,   rp   rn  Úescaper“   )rE   rn  rz  r“   s       r   rƒ   zPDFString.__init__?  sN   € õ �a�	Ñ"Ô"ð 	Ø”SˆDŒFØœ(ˆDŒKØ”uˆDŒHˆHˆHàˆDŒFØ ˆDŒKØˆDŒHˆHˆHr   c           	      óî  — | j         }t          | dd¦  «        }t          |¦  «        �r|dk    �r	 |                     t          j        ¦  «        r|                     d¦  «        }nJ|                     t          j        ¦  «        r|                     d¦  «        }n|                     d¦  «        }t          |¦  «        r| 	                    d¦  «        }n"t          j        | 	                    d¦  «        z   }�n
#  	 |                     d¦  «         n*#  t          j        dt          |¦  «        ›�¦  «         ‚ xY wY nÅxY wnÁt          |¦  «        r“|dk    rHt          |¦  «        r| 	                    d¦  «        }n‡t          j        | 	                    d¦  «        z   }nd| j        r| 	                    | j        ¦  «        }nBt          j        | 	                    d¦  «        z   }nt!          dt#          |¦  «        z  ¦  «        ‚t          | d	d
¦  «        }t%          |j        t(          ¦  «        s|j         	                    |¦  «        }d
}|r£	 dt+          |¦  «        z  }n'#  t!          d|›dt          |¦  «        ›�¦  «        ‚xY w|dz  r|                     dd¦  «        }|dz  r9t/          |¦  «        r*|                     dd¦  «                             dd¦  «        }t1          |¦  «        S d|z   dz   S )Nr“   rx  Ú	utf_16_beÚ	utf_16_leÚutf8rr  z	Error in z-PDFString argument must be str/unicode not %srz  r&   ú(%s)zcannot escape ú é   z\012ú
r(   z\(rk  z\)ú)ó   (ó   ))rn  r£   r	   Ú
startswithÚcodecsÚBOM_UTF16_BEÚdecodeÚBOM_UTF16_LErv  r.   r   r›   r©   r
   ÚunicodeEncValidr“   rº   r8   r,   rW   rC   r   Úreplacerp  r0   )rE   r<   rn  r“   Úurz  Úess          r   r5   zPDFString.formatO  sß  € ØŒFˆÝ�d˜5 Ñ(Ô(ˆÝ�1‰:Œ:ñ 	XØ�fŠ}‰}ðØ—|’|¥FÔ$7Ñ8Ô8ð -ØŸHšH [Ñ1Ô1˜˜ØŸš¥fÔ&9Ñ:Ô:ð -ØŸHšH [Ñ1Ô1˜˜àŸHšH VÑ,Ô,˜Ý# A‘”ð FØŸHšH XÑ.Ô.˜˜å"Ô/°·²¸Ñ0EÔ0EÑE˜ùøððØŸš Ñ*Ô*Ð*Ð*øðÝœ˜µd¸1±g´g°gÐ%?Ñ@Ô@Ð@Øøøøð +Ð*øøøð õ$ �q‰\Œ\ð 	XØ�fŠ}ˆ}Ý ‘?”?ð BØŸš Ñ*Ô*�A�AåÔ+¨A¯HªH°[Ñ,AÔ,AÑA�A�AØÔ%ð >Ø—H’H˜TœXÑ&Ô&��åÔ'¨¯ª°Ñ(=Ô(=Ñ=��åÐLÍtÐTUÉwÌwÑVÑWÔWÐWå˜˜h qÑ)Ô)ˆÝ˜(Ô*­<Ñ8Ô8ð 	ØÔ ×'Ò'¨Ñ*Ô*ˆAØˆFØð 	#ðGØ�i¨™lœlÑ*��øðGÝ �j¸!¸!¸!½TÀ!¹W¼W¸WÐ!EÑFÔFÐFøøøØ�a‰xð .Ø—Z’Z ¨Ñ-Ô-�Ø�a‰xð >�K¨™OœOð >Ø—Z’Z  cÑ*Ô*×2Ò2°5¸Ñ=Ô=�Ý˜R‘=”=Ð à˜!‘8˜d‘?Ð"s0   ±CC9 Ã9D>Ã<DÄD>Ä'D9Ä9D>ÉI  É $Jc                 ó0   — dt          | j        ¦  «        z  S )Nr  )r   rn  rQ   s    r   rf  zPDFString.__str__ƒ  s   € Ø�	 $¤&Ñ)Ô)Ñ)Ð)r   N)r&   rx  )r   r   r   r‹  rƒ   r5   rf  r   r   r   rp   rp   =  sL   € € € € € Ø€Oðð ð ð ð 2#ð 2#ð 2#ðh*ð *ð *ð *ð *r   rp   é!   é~   c                 óî   — t          | ¦  «        }t          |¦  «        D ]?\  }}||k     s
||k    s|dv r*dt          t          |¦  «        ¦  «        dd …         z   ||<   Œ@dd                     |¦  «        z   S )Nz
%()<>{}[]#ú#r�  ú/r  )r  Ú	enumerateÚhexÚordÚjoin)r±   ÚloÚhiÚLÚiro  s         r   rè   rè   †  s{   € õ 	ˆT‰
Œ
€AÝ˜‰|Œ|ð 'ð '‰ˆˆ!ØˆRŠ4ˆ4�1�R’4�4˜1 Ð,Ð,Ø•s�3˜q™6œ6‘{”{ 1 2 2”Ñ&ˆAˆa‰DøØ�—’˜‘
”
ÑÐr   c                   óF   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zdd	„Z	d
„ Z
d„ ZdS )rx   TNc                 óN   — |€	i | _         dS |                     ¦   «         | _         dS )zPdict should be namestring to value eg "a": 122 NOT pdfname to value NOT "/a":122N)rC  Úcopy)rE   rC  s     r   rƒ   zPDFDictionary.__init__’  s%   € àˆ<ØˆDŒIˆIˆIàŸ	š	™œˆDŒIˆIˆIr   c                 ó   — || j         |<   d S rH   ©rC  )rE   r�   rê   s      r   Ú__setitem__zPDFDictionary.__setitem__˜  s   € ØˆŒ	�$‰ˆˆr   c                 ó   — | j         |         S rH   r¡  ©rE   Úas     r   Ú__getitem__zPDFDictionary.__getitem__š  s   € ØŒy˜Œ|Ðr   c                 ó   — || j         v S rH   r¡  r¤  s     r   Ú__contains__zPDFDictionary.__contains__œ  s   € Ø�D”Iˆ~Ðr   c                 óV   — |                      | j        |         ¦  «        | j        |<   d S rH   )r4   rC  )rE   r�   r<   s      r   r4   zPDFDictionary.Referencež  s%   € Ø"×,Ò,¨T¬Y°t¬_Ñ=Ô=ˆŒ	�$‰ˆˆr   ó   
 c                 ó2  ‡‡— | j         Š	 t          ‰                     ¦   «         ¦  «        }n"#  t          t	          ‰¦  «        ¦  «         ‚ xY wt          ‰t          ¦  «        s|                     ¦   «          ˆˆfd„|D ¦   «         }| j        rt          j
        s| j        dk    r|                     |¦  «        }nV|j        }t          t          dt          |¦  «        d¦  «        ¦  «        D ]} ||d¦  «         Œd                     |¦  «        }d|z   dz   S )Nc                 ó~   •— g | ]9}t          t          |¦  «        ‰¦  «        d z   t          ‰|         ‰¦  «        z   ‘Œ:S )ó    )r5   rè   )Ú.0rŒ   rC  r<   s     €€r   ú
<listcomp>z(PDFDictionary.format.<locals>.<listcomp>¨  sA   ø€ ÐWÐWÐWÈQ�f•W˜Q‘Z”Z Ñ)Ô)¨$Ñ.­v°d¸1´g¸hÑ/GÔ/GÑGÐWÐWÐWr   Úforcedé   rª  r­  s   <<
s   
>>)rC  r  r‹   r®   rf   r,   r   r  Ú	multiliner   ÚpdfMultiLiner˜  ÚinsertÚreversedÚranger  )rE   r<   ÚINDr‹   r›  rF   rœ  rC  s    `     @r   r5   zPDFDictionary.format   s  øø€ ØŒyˆð	Ý˜Ÿ	š	™œÑ$Ô$ˆDˆDøð	Ý•%˜‘+”+ÑÔÐØøøøÝ˜$�{Ñ+Ô+Ð8¨T¯YªY©[¬[¨[ØWÐWÐWÐWÐWÐRVÐWÑWÔWˆØŒNð 	�yÔ5ð 	¸$¼.È(Ò:RÐ:RØ—’˜‘”ˆAˆAð ŒhˆAÝ�e A¥s¨1¡v¤v¨qÑ1Ô1Ñ2Ô2ð ð �Ø��!�F‘”��Ø—	’	˜!‘”ˆAØ�q‰y˜Ñ Ð s	   ‹!- ­Ac                 ó*   — t          | j        ¦  «        S rH   )rx   rC  rQ   s    r   rŸ  zPDFDictionary.copy³  s   € Ý˜TœYÑ'Ô'Ð'r   c                 óš   — | j         }d„ |                     ¦   «         D ¦   «         }|D ]"}|                     |¦  «        ||dd …         <   Œ#d S )Nc                 ó<   — g | ]}|                      d ¦  «        ¯|‘ŒS )r”  )r†  )r®  rŒ   s     r   r¯  z+PDFDictionary.normalize.<locals>.<listcomp>¹  s)   € Ð6Ð6Ð6�1 A§L¢L°Ñ$5Ô$5Ð6ˆQÐ6Ð6Ð6r   r&   )rC  r‹   Úpop)rE   rM  ÚKrŒ   s       r   Ú	normalizezPDFDictionary.normalize¶  sZ   € àŒIˆØ6Ð6˜Ÿš™œÐ6Ñ6Ô6ˆØð 	 ð 	 ˆAØ—u’u˜Q‘x”xˆAˆa���Œe‰HˆHð	 ð 	 r   rH   ©rª  )r   r   r   r²  rƒ   r¢  r¦  r¨  r4   r5   rŸ  r½  r   r   r   rx   rx   �  s›   € € € € € Ø€Ið$ð $ð $ð $ð ð  ð  ðð ð ðð ð ð>ð >ð >ð!ð !ð !ð !ð&(ð (ð (ð ð  ð  ð  ð  r   rx   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚcheckPDFNamesc                 óT   — t          t          t          |¦  «        ¦  «        | _        d S rH   )r  Úmaprè   Únames)rE   rÃ  s     r   rƒ   zcheckPDFNames.__init__¾  s   € Ý�#�g eÑ,Ô,Ñ-Ô-ˆŒ
ˆ
ˆ
r   c                 ód   — |                      d¦  «        st          |¦  «        }|| j        v r|S d S )Nr”  )r†  rè   rÃ  )rE   rê   s     r   rœ   zcheckPDFNames.__call__À  s=   € Ø×Ò Ñ$Ô$ð 	!Ý˜%‘.”.ˆEØ�D”JÐÐØˆLð Ðr   N)r   r   r   rƒ   rœ   r   r   r   rÀ  rÀ  ½  s2   € € € € € ð.ð .ð .ðð ð ð ð r   rÀ  c                 ó   — | dv r| S d S )N)rX  rY  r   )rê   s    r   ÚcheckPDFBooleanrÆ  Æ  s   € ØÐ Ð Ð ¨ ,Ð Ð r   c                   ó    — e Zd Zi Zdd„Zd„ ZdS )ÚCheckedPDFDictionaryNc                 óR   — t                                | |¦  «         |r	|| _        d S d S rH   )rx   rƒ   Úvalidate)rE   rC  rÊ  s      r   rƒ   zCheckedPDFDictionary.__init__Ë  s.   € Ý×Ò˜t DÑ)Ô)Ð)ØÐ- X�T”]�]�]Ð-Ð-r   c                 óÎ   — || j         vrt          d|z  ¦  «        ‚ | j         |         |¦  «        }|€t          d|›d|›�¦  «        ‚t                               | ||¦  «         d S )Nzinvalid key, %rz
Bad value z	 for key )rÊ  rº   rx   r¢  )rE   r�   rê   Úcvalues       r   r¢  z CheckedPDFDictionary.__setitem__Ï  sw   € Ø�t”}Ð$Ð$ÝÐ.°Ñ5Ñ6Ô6Ð6Ø$�”˜tÔ$ UÑ+Ô+ˆØˆ>Ý�*¸%¸%¸%ÀÀÐEÑFÔFÐFÝ×!Ò! $ t¨FÑ3Ô3Ð3Ð3Ð3r   ©NN)r   r   r   rÊ  rƒ   r¢  r   r   r   rÈ  rÈ  É  s<   € € € € € Ø€Hð.ð .ð .ð .ð4ð 4ð 4ð 4ð 4r   rÈ  c                   ó�  — e Zd Z eeeeeee ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž  ed                     ¦   «         Ž ¬¦  «        ZdS )ÚViewerPreferencesPDFDictionaryz#UseNone UseOutlines UseThumbs UseOCzL2R R2Lz(MediaBox CropBox BleedBox TrimBox ArtBoxzNone AppDefaultz.Simplex DuplexFlipShortEdge DuplexFlipLongEdge)ÚHideToolbarÚHideMenubarÚHideWindowUIÚ	FitWindowÚCenterWindowÚDisplayDocTitleÚNonFullScreenPageModeÚ	DirectionÚViewAreaÚViewClipÚ	PrintAreaÚ	PrintClipÚPrintScalingÚDuplexN)r   r   r   rC  rÆ  rÀ  ÚsplitrÊ  r   r   r   rÏ  rÏ  ×  së   € € € € € ØˆTØ+Ø+Ø,Ø)Ø,Ø /Ø&3 mÐ5Z×5`Ò5`Ñ5bÔ5bÐ&cØ'˜-¨¯ªÑ):Ô):Ð;Ø&˜Ð(R×(XÒ(XÑ(ZÔ(ZÐ[Ø&˜Ð(R×(XÒ(XÑ(ZÔ(ZÐ[Ø'˜-Ð)S×)YÒ)YÑ)[Ô)[Ð\Ø'˜-Ð)S×)YÒ)YÑ)[Ô)[Ð\Ø*˜]Ð,=×,CÒ,CÑ,EÔ,EÐFØ$�}Ð&V×&\Ò&\Ñ&^Ô&^Ð_ðñ ô €H€H€Hr   rÏ  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚPDFStreamFilterZCompressÚFlateDecodec                 ór   — t          |¦  «        r|                     d¦  «        }t          j        |¦  «        S )Nr~  )r
   r.   ÚzlibÚcompress©rE   Útexts     r   r.   zPDFStreamFilterZCompress.encodeí  s1   € Ý�T‰?Œ?ð 	'Ø—;’;˜vÑ&Ô&ˆDÝŒ}˜TÑ"Ô"Ð"r   c                 ó*   — t          j        |¦  «        S rH   )rã  Ú
decompress)rE   Úencodeds     r   r‰  zPDFStreamFilterZCompress.decodeñ  s   € ÝŒ˜wÑ'Ô'Ð'r   N©r   r   r   Úpdfnamer.   r‰  r   r   r   rà  rà  ë  s7   € € € € € Ø€Gð#ð #ð #ð(ð (ð (ð (ð (r   rà  c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚPDFStreamFilterBase85EncodeÚASCII85Decodec                 ó^   — ddl m} t          |¦  «        }t          j        r ||¦  «        }|S )Nr   )Ú_wrap)Úreportlab.pdfbase.pdfutilsrð  r   r   ÚwrapA85)rE   ræ  rð  s      r   r.   z"PDFStreamFilterBase85Encode.encodeù  s>   € Ø4Ð4Ð4Ð4Ð4Ð4Ý  Ñ&Ô&ˆÝÔð 	Ø�5˜‘;”;ˆDØˆr   c                 ó    — t          |¦  «        S rH   )r   rå  s     r   r‰  z"PDFStreamFilterBase85Encode.decodeÿ  s   € Ý  Ñ&Ô&Ð&r   Nrê  r   r   r   rí  rí  ÷  s7   € € € € € Ø€Gðð ð ð'ð 'ð 'ð 'ð 'r   rí  c                   ó$   — e Zd ZdZdZdd„Zd„ ZdS )rA  z@set dictionary elements explicitly stream.dictionary[name]=valuer&   Nc                 óP   — |€t          ¦   «         }|| _        || _        || _        d S rH   )rx   rB  ÚcontentÚfilters)rE   rB  rö  r÷  s       r   rƒ   zPDFStream.__init__	  s*   € ØÐÝ&™œˆJØ$ˆŒØˆŒØˆŒˆˆr   c                 ól  — | j         }t          |j                             ¦   «         ¦  «        }| j        }| j        }| j        €t          d¦  «        ‚|€|j        }|�‚d|j        vryt          |¦  «        }| 	                    ¦   «          g }|D ]?}| 
                    |¦  «        }|                     dt          |j        ¦  «        ¦  «         Œ@t          |¦  «        |d<   |j         
                    |¦  «        }t!          ||¦  «        }t#          |¦  «        |d<   t!          ||¦  «        }	|	dz   |z   dz   S )Nzstream content not setÚFilterr   ÚLengths   
stream
s
   endstream
)rB  rx   rC  rŸ  rö  r÷  rº   rU  r  Úreverser.   r´  rè   rë  ÚPDFArrayrW   r5   r  )
rE   r<   rB  rö  r÷  ÚrfÚfnamesr>   ÚfcÚfds
             r   r5   zPDFStream.format  s5  € Ø”_ˆ
å" :¤?×#7Ò#7Ñ#9Ô#9Ñ:Ô:ˆ
Ø”,ˆØ”,ˆØŒ<ÐÝÐ5Ñ6Ô6Ð6Øˆ?ØÔ3ˆGàÐ 8°:´?Ð#BÐ#Bå�g‘”ˆBØ�JŠJ‰LŒLˆLØˆFØð 5ð 5�ð Ÿ(š( 7Ñ+Ô+�Ø—’˜a¥¨¬Ñ!3Ô!3Ñ4Ô4Ð4Ð4õ $,¨FÑ#3Ô#3ˆJ�xÑ àÔ"×)Ò)¨'Ñ2Ô2ˆÝ�G˜XÑ&Ô&ˆÝ" 7™|œ|ˆ
�8ÑÝ�J Ñ)Ô)ˆØ�-Ñ Ñ" >Ñ1Ð1r   ©NNN)r   r   r   rV   r"   rƒ   r5   r   r   r   rA  rA    sB   € € € € € ØJÐJà€Kðð ð ð ð2ð 2ð 2ð 2ð 2r   rA  c                 ó¶   — | €t           } |                      ¦   «         dz   } t          | t          j        rt
          t          gpt          g¬¦  «        }d|_        |S )Nr‚  )rö  r÷  ztest stream)ÚteststreamcontentÚstriprA  r   ÚuseA85ÚPDFBase85EncodeÚPDFZCompressr#   )rö  ÚSs     r   Ú
teststreamr	  /  s^   € à€Ý#ˆØ�mŠm‰oŒo Ñ$€GÝ˜GÝ%Ô,ÐOµ/Å,Ð1OÐaÕT`ÐSað	cñ 	cô 	c€Að "€A„MØ€Hr   z\
1 0 0 1 0 0 cm BT /F9 12 Tf 14.4 TL ET
1.00 0.00 1.00 rg
n 72.00 72.00 432.00 648.00 re B*
c                   ó&   — e Zd ZdZd„ Zd„ Zdd„ZdS )rü  Tc                 ó.   — t          |¦  «        | _        d S rH   )r  rD  )rE   rD  s     r   rƒ   zPDFArray.__init__A  s   € Ý˜X™œˆŒˆˆr   c                 ó^   — t          t          |j        | j        ¦  «        ¦  «        | _        dS )z'make all objects in sequence referencesN)r  rÂ  r4   rD  rI   s     r   Ú
ReferenceszPDFArray.ReferencesC  s$   € å�S Ô!3°T´]ÑCÔCÑDÔDˆŒˆˆr   rª  c                 óŠ  ‡— ˆfd„| j         D ¦   «         }| j        rt          j        s| j        dk    r|                     |¦  «        }ntt          |¦  «        }|dk    rJ|j        }t          t          d|d¦  «        ¦  «        D ]} ||d¦  «         Œd                     |¦  «        }nd                     |¦  «        }d|z   dz   S )Nc                 ó0   •— g | ]}t          |‰¦  «        ‘ŒS r   )r5   )r®  ru  r<   s     €r   r¯  z#PDFArray.format.<locals>.<listcomp>G  s#   ø€ Ð8Ð8Ð8 Q�V�A�xÑ Ô Ð8Ð8Ð8r   r°  é
   rª  r­  s   [ s    ])	rD  r²  r   r³  r˜  r  r´  rµ  r¶  )rE   r<   r·  r›  rh  rF   rœ  s    `     r   r5   zPDFArray.formatF  sÍ   ø€ Ø8Ð8Ð8Ð8¨$¬-Ð8Ñ8Ô8ˆØŒNð 	!�yÔ5ð 	!¸$¼.È(Ò:RÐ:RØ—’˜‘”ˆAˆAå�!‰fŒfˆAØ�Štˆtà”(�Ý!¥%¨¨A¨rÑ"2Ô"2Ñ3Ô3ð  ð  �AØ�A�a˜‘K”K�K�KØ—I’I˜a‘L”L��à—I’I˜a‘L”L�Ø�q‰y˜5Ñ Ð r   Nr¾  )r   r   r   r²  rƒ   r  r5   r   r   r   rü  rü  ?  sN   € € € € € Ø€Ið'ð 'ð 'ðEð Eð Eð!ð !ð !ð !ð !ð !r   rü  c                   ó   — e Zd ZdZdS )ÚPDFArrayCompactFN)r   r   r   r²  r   r   r   r  r  V  s   € € € € € Ø€I€I€Ir   r  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r  r&   c                 ó"   — || _         || _        d S rH   )r�   rö  )rE   r�   rö  s      r   rƒ   zPDFIndirectObject.__init__[  s   € ØˆŒ	ØˆŒˆˆr   c                 óþ   — | j         }|j        |         \  }}|j                             ||¦  «         t	          | j        |d¬¦  «        }t          |›d|›d�¦  «        |z   |                     d¦  «        rdndz   dz   S )Nr&   ©r=   r€  z obj
ó   
r   s   endobj
)r�   rg   rW   rO   r5   rö  r0   Úendswith)rE   r<   r�   rh  ÚvÚfcontents         r   r5   zPDFIndirectObject.format^  s–   € ØŒyˆØÔ2°4Ô8‰ˆˆ1àÔ×!Ò! ! QÑ'Ô'Ð'Ý˜$œ,¨¸1Ð=Ñ=Ô=ˆÝ¨¨¨¨1¨1¨1Ð-Ñ.Ô.ØñØ'×0Ò0°Ñ7Ô7ÐB˜˜¸UñDàñð 	r   N)r   r   r   r"   rƒ   r5   r   r   r   r  r  Y  s7   € € € € € Ø€Kðð ð ðð ð ð ð r   r  c                   ó   — e Zd Zd„ Zd„ ZdS )rË   c                 ó   — || _         d S rH   )r�   rI  s     r   rƒ   zPDFObjectReference.__init__i  ó   € ØˆŒ	ˆ	ˆ	r   c                 óš   — 	 t          d|j        | j                 z  ¦  «        S #  t          dt	          | j        ¦  «        z  ¦  «        ‚xY w)Nz%s %s Rz:forward reference to %s not resolved upon final formatting)r0   rg   r�   rÂ   r©   rI   s     r   r5   zPDFObjectReference.formatk  sP   € ð	kÝ˜Y¨Ô)LÈTÌYÔ)WÑWÑXÔXÐXøð	kÝÐWÕZ^Ð_cÔ_hÑZiÔZiÑiÑjÔjÐjøøøs	   ‚!$ ¤&A
N©r   r   r   rƒ   r5   r   r   r   rË   rË   h  s7   € € € € € ðð ð ðkð kð kð kð kr   rË   c                   ó*   — e Zd Zefd„Zd„ Zd„ Zd„ ZdS )r  c                 ó”   — g | _         | j         j        | _        d| _        |                      t          d|z  ¦  «        dz   ¦  «         d S )Nr   z%%PDF-%s.%ss5   
%“Œ‹ž ReportLab Generated PDF document (opensource)
)Ústringsr  r›   r2  r  r0   )rE   r}   s     r   rƒ   zPDFFile.__init__s  sV   € ØˆŒØ”\Ô(ˆŒ
ØˆŒð 	�Š•)˜M¨JÑ6Ñ7Ô7ØRñSñ 	ô 	ð 	ð 	ð 	r   c                 ó   — d S rH   r   rQ   s    r   ÚcloseOrResetzPDFFile.closeOrReset�  s   € Øˆr   c                 óŠ   — t          |¦  «        }| j        }|t          |¦  «        z   | _        |                      |¦  «         |S )zGshould be constructed as late as possible, return position where placed)r0   r2  r  r›   )rE   rn  rc  s      r   r  zPDFFile.add„  s9   € å�a‰LŒLˆØ”ˆØ�S ™VœV‘mˆŒØ�
Š
�1‰ŒˆØˆr   c                 ó6   — d                      | j        ¦  «        S )Nr   )r˜  r"  rI   s     r   r5   zPDFFile.formatŒ  s   € Ø�xŠx˜œÑ%Ô%Ð%r   N)r   r   r   rW  rƒ   r$  r  r5   r   r   r   r  r  q  sX   € € € € € à!4ð ð ð ð ðð ð ðð ð ð&ð &ð &ð &ð &r   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚPDFCrossReferenceSubsectionc                 ó"   — || _         || _        d S rH   )ÚfirstentrynumberÚ
idsequence)rE   r*  r+  s      r   rƒ   z$PDFCrossReferenceSubsection.__init__�  s   € Ø 0ˆÔØ$ˆŒˆˆr   c                 ó–  — | j         }| j        }t          |¦  «        }t          |¦  «        }i }|dk    r d|d<   |dz   }|                     dd¦  «         |j        }|j        }||z   dz
  }	|D ]‰}
||
         \  }}||v r8t          d|›dt          |
¦  «        ›dt          ||
         ¦  «        ›�¦  «        ‚||	k    s||k     rt          d|›d|›d	|	›�¦  «        ‚||z
  }|
||<   ||
         }d
||fz  ||<   ŒŠ|›d|›�}|                     d|¦  «         | 	                    d¦  «         t          d                     |¦  «        ¦  «        S )z`id sequence should represent contiguous object nums else error. free numbers not supported (yet)r   zstandard free entryr&   z0000000000 65535 f zobject number collision r€  zobject number z not in range z..z%0.10d %0.5d n r  r‚  )r*  r+  r  r  r´  rg   ri   rº   r©   r  r0   r˜  )rE   r<   r*  r+  ÚentriesÚnentriesÚtakenr)  ri   Úlastentrynumberr¦   ÚnumrN   Úrnumr2  Ú	firstlines                   r   r5   z"PDFCrossReferenceSubsection.format“  s   € àÔ0ÐØ”_ˆ
Ý�zÑ"Ô"ˆÝ�z‘?”?ˆàˆØ˜QÒÐØ,ˆE�!‰HØ ‘zˆHØ�NŠN˜1Ð3Ñ4Ô4Ð4ØÔ4ˆØÔ(ˆ
Ø*¨8Ñ3°AÑ5ˆØð 
	Að 
	AˆBØ# BœZ‰NˆS�'Ø�eˆ|ˆ|Ý �jÀsÀsÀsÍDÐQSÉHÌHÈHÈHÕVZÐ[`ÐacÔ[dÑVeÔVeÐVeÐ!fÑgÔgÐgØ�?Ò"Ð" cÐ*:Ò&:Ð&:Ý �jÈ3È3È3ÐP`ÐP`ÐP`ÐbqÐbqÐ!rÑsÔsÐsàÐ'Ñ'ˆDØˆE�#‰JØ ”^ˆFØ,°¸Ð/@Ñ@ˆG�C‰LˆLà/Ð/Ð/°°Ð:ˆ	Ø�Š�q˜)Ñ$Ô$Ð$à�Š�rÑÔÐÝ˜Ÿš 7Ñ+Ô+Ñ,Ô,Ð,r   Nr  r   r   r   r(  r(  �  s2   € € € € € ð%ð %ð %ð-ð -ð -ð -ð -r   r(  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r   c                 ó   — g | _         d S rH   )ÚsectionsrQ   s    r   rƒ   zPDFCrossReferenceTable.__init__µ  s   € ØˆŒˆˆr   c                 óZ   — t          ||¦  «        }| j                             |¦  «         d S rH   )r(  r6  r  )rE   Ú
firstentryr'  Úsections       r   r!  z!PDFCrossReferenceTable.addsection·  s-   € Ý-¨j¸#Ñ>Ô>ˆØŒ×Ò˜WÑ%Ô%Ð%Ð%Ð%r   c                 óÚ   — | j         }|st          d¦  «        ‚dg}| j         D ]'}t          ||¦  «        }|                     |¦  «         Œ(t	          d                     |¦  «        ¦  «        S )Nzno crossref sectionss   xref
r   )r6  rº   r5   r  r0   r˜  )rE   r<   r6  r›  rn  Úfss         r   r5   zPDFCrossReferenceTable.formatº  sp   € Ø”=ˆØð 	5ÝÐ3Ñ4Ô4Ð4ØˆKˆØ”ð 	ð 	ˆAÝ˜˜8Ñ$Ô$ˆBØ�HŠH�R‰LŒLˆLˆLÝ˜Ÿš !™œÑ%Ô%Ð%r   N)r   r   r   rƒ   r!  r5   r   r   r   r   r   ´  sA   € € € € € ðð ð ð&ð &ð &ð&ð &ð &ð &ð &r   r   c                   ó   — e Zd Zdd„Zd„ ZdS )r"  Nc                 ó´   — || _         |�|€t          d¦  «        ‚t          ¦   «         x}| _        d|fd|fd|fd|fd|fd|ffD ]\  }	}
|
�|
||	<   Œd|_        d S )	NzSize and Root keys requiredr  ÚPrevr  r  r˜   r  r°  )r  rº   rx   rC  r²  )rE   r  r  r>  r  r  r˜   r  rC  rh  r  s              r   rƒ   zPDFTrailer.__init__Å  sˆ   € Ø"ˆŒØˆ<˜4˜<ÝÐ:Ñ;Ô;Ð;Ý(™?œ?Ð*ˆˆtŒyØ˜t�n v¨t n°v¸t°nØ˜t�n t¨R j°9¸gÐ2FðHð 	ð 	‰EˆQˆqàˆ}Ø��Q‘øØˆŒˆˆr   c           
      ó¬   — | j                              |d¬¦  «        }d                     d|dt          t	          | j        ¦  «        ¦  «        dg¦  «        S )Nr  ©r·  r   s   trailer
s   
startxref
s   
%%EOF
)rC  r5   r˜  r0   r-   r  )rE   r<   Úfdicts      r   r5   zPDFTrailer.formatÏ  sX   € Ø”	× Ò  ¨eÐ Ñ4Ô4ˆØ�xŠxØØØ Ý�#˜dœnÑ-Ô-Ñ.Ô.Øðñ ô ð 	r   )NNNNNNr  r   r   r   r"  r"  Ä  s7   € € € € € ð	 ð 	 ð 	 ð 	 ð	ð 	ð 	ð 	ð 	r   r"  c                   ó0   ‡ — e Zd Zdˆ fd„	Zˆ fd„Zd„ Zˆ xZS )ÚXMPNc           
      ó.  •— |r|rt          d¦  «        ‚|s|st          d¦  «        ‚t          ¦   «                              t          t	          t          d¦  «        t          d¦  «        ¬¦  «        ¦  «        ¬¦  «         || _        d | _        || _        d S )Nz5XMP is ambiguous with both path and creator argumentsz-XMP needs at least a path or creator argumentÚMetadataÚXML)ÚTypeÚSubtype)rB  )	rº   Úsuperrƒ   rx   rC  rè   Ú
_XMP__pathÚ_XMP__pathContentÚ_XMP__creator)rE   Úpathrü   r¥   s      €r   rƒ   zXMP.__init__à  s²   ø€ Øð 	N�Gð 	NÝÐTÑUÔUÐUØð 	N˜'ð 	NÝÐLÑMÔMÐMÝ‰Œ×ÒÝ$¥TÝ˜ZÑ(Ô(Ý ™œð&ñ &ô &ñ ô ð 	ñ 	ô 	ð 	ð
 ˆŒØ!ˆÔØ ˆŒˆˆr   c                 óˆ   •— |                       |¦  «        | _        t          t          | ¦  «                             |¦  «        S rH   )ÚmakeContentrö  rI  rC  r5   )rE   r–   r¥   s     €r   r5   z
XMP.formatî  s4   ø€ Ø×'Ò'¨Ñ,Ô,ˆŒÝ•S˜‰Œ×%Ò% cÑ*Ô*Ð*r   c                 ó   — | j         rc| j        €Uddlm} t	          | j         d¦  «        5 } ||                     ¦   «         ¦  «        | _        d d d ¦  «         n# 1 swxY w Y   | j        S |                      |¦  «        S )Nr   )ÚsmartDecodeÚrb)rJ  rK  Úreportlab.lib.rparsexmlrQ  r§   ÚreadrL  )rE   r–   rQ  Ú_s       r   rO  zXMP.makeContentò  sÀ   € ØŒ;ð 	'ØÔ!Ð)Ø?Ð?Ð?Ð?Ð?Ð?Ý˜$œ+ dÑ+Ô+ð ?¨qØ)4¨°Q·V²V±X´XÑ)>Ô)>�DÔ&ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?àÔ%Ð%à—>’> #Ñ&Ô&Ð&s   ª#AÁAÁ ArÍ  )r   r   r   rƒ   r5   rO  Ú__classcell__)r¥   s   @r   rC  rC  ß  se   ø€ € € € € ð!ð !ð !ð !ð !ð !ð+ð +ð +ð +ð +ð'ð 'ð 'ð 'ð 'ð 'ð 'r   rC  c                   ó–   — e Zd ZdZdZ ed¦  «         ed¦  «        ddœZd                     ¦   «         ZeZ	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )rk   zDocument Rootr&   rl   ÚUseNoneN)rG  ÚPageModerq   zÀ
        Dests Outlines Pages Threads AcroForm Names OpenAction PageMode URI
        ViewerPreferences PageLabels PageLayout JavaScript StructTreeRoot SpiderInfo
        MarkInfo Metadata Tabsc                 ó€  — |                       |¦  «         | j        }| j        }i }|                     ¦   «         D ]\  }}t	          | ||¦  «        }|�|||<   Œ| j        D ]}t	          | |d ¦  «        }|�|||<   Œ|D ]$}||v r|                     ||         ¦  «        ||<   Œ%t          |¦  «        }t          ||¦  «        S rH   )	Úcheck_formatÚ__Defaults__Ú__Refs__Úitemsr£   Ú__NoDefault__r4   rx   r5   )rE   r<   ÚdefaultsÚRefsrM  rŒ   r  rC  s           r   r5   zPDFCatalog.format
  sê   € Ø×Ò˜(Ñ#Ô#Ð#ØÔ$ˆØŒ}ˆØˆØ—>’>Ñ#Ô#ð 	ð 	‰CˆAˆaÝ˜˜Q˜qÑ!Ô!ˆAØˆ}Ø��!‘øØÔ#ð 	ð 	ˆAÝ˜˜Q˜tÑ$Ô$ˆAØˆ}Ø��!‘øàð 	0ð 	0ˆAØ�Aˆvˆvà×)Ò)¨!¨A¬$Ñ/Ô/��!‘øÝ˜QÑÔˆÝ�d˜HÑ%Ô%Ð%r   c                 ó0   — |                       d¦  «         d S )NÚUseOutlines©ÚsetPageModerQ   s    r   ÚshowOutlinezPDFCatalog.showOutline  s   € Ø×Ò˜Ñ'Ô'Ð'Ð'Ð'r   c                 ó0   — |                       d¦  «         d S )NÚ
FullScreenrd  rQ   s    r   ÚshowFullScreenzPDFCatalog.showFullScreen"  s   € Ø×Ò˜Ñ&Ô&Ð&Ð&Ð&r   c                 ó6   — |rt          |¦  «        | _        d S d S rH   )rè   Ú
PageLayout)rE   Úlayouts     r   ÚsetPageLayoutzPDFCatalog.setPageLayout%  s%   € Øð 	.Ý% f™oœoˆDŒOˆOˆOð	.ð 	.r   c                 ó6   — |rt          |¦  «        | _        d S d S rH   )rè   rY  )rE   Úmodes     r   re  zPDFCatalog.setPageMode)  s%   € Øð 	*Ý# D™MœMˆDŒMˆMˆMð	*ð 	*r   c                 ó   — dS )zfor use in subclassesNr   rI   s     r   r[  zPDFCatalog.check_format-  rK   r   )r   r   r   r#   r"   rè   r\  rÞ  r_  r]  r5   rf  ri  rm  re  r[  r   r   r   rk   rk   ü  s½   € € € € € Ø!€KØ€Kà#˜G IÑ.Ô.Ø#˜G IÑ.Ô.Øðð €Lð"÷ #(¢%¡'¤'ð ð €Hð&ð &ð &ð*(ð (ð (ð'ð 'ð 'ð.ð .ð .ð*ð *ð *ðð ð ð ð r   rk   c                   óz   — e Zd ZdZdZdZd ed¦  «        iZd                     ¦   «         Z	dgZ
d„ Zd	„ Zd
„ Zd„ ZdS )rn   zHPAGES TREE WITH ONE INTERNAL NODE, FOR "BALANCING" CHANGE IMPLEMENTATIONz	page treer&   rG  r%   zKids Count ParentÚParentc                 ó   — g | _         d S rH   ©r�   rQ   s    r   rƒ   zPDFPages.__init__:  s   € ØˆŒ
ˆ
ˆ
r   c                 ó   — | j         |         S rH   rt  )rE   Úitems     r   r¦  zPDFPages.__getitem__<  s   € ØŒz˜$ÔÐr   c                 ó:   — | j                              |¦  «         d S rH   )r�   r  ©rE   r¹   s     r   rÎ   zPDFPages.addPage>  s   € ØŒ
×Ò˜$ÑÔÐÐÐr   c                 ó’   — | j         }t          |¦  «        }|                     |¦  «         || _        t	          |¦  «        | _        d S rH   )r�   rü  r  ÚKidsr  ÚCount)rE   r<   r�   Úkidss       r   r[  zPDFPages.check_format@  s>   € à”
ˆÝ˜‰Œˆà�Š˜Ñ!Ô!Ð!ØˆŒ	Ý˜‘Z”ZˆŒ
ˆ
ˆ
r   N)r   r   r   rV   r#   r"   rè   r\  rÞ  r_  r]  rƒ   r¦  rÎ   r[  r   r   r   rn   rn   1  sŽ   € € € € € ØRÐRØ€KØ€Kà˜G˜G GÑ,Ô,ð €Là'×-Ò-Ñ/Ô/€MØˆz€Hðð ð ð ð  ð  ð ð  ð  ð ð  ð  ð  ð  r   rn   c                   óÆ   — e Zd ZdZdZdZd ed¦  «        iZd                     ¦   «         Z	d                     ¦   «         Z
dZd	Zd
ZdZdZd
Zi Zi Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd
S )ÚPDFPagezPage dictionaryr   r&   rG  rÈ   z³Parent
        MediaBox Resources Contents CropBox Rotate Thumb Annots B Dur Hid Trans AA
        PieceInfo LastModified SeparationInfo ArtBox TrimBox BleedBox ID PZ
        TranszContents Parent IDéS  iJ  Nc                 ó<   — | j         D ]}t          | |d ¦  «         Œd S rH   )r_  ÚsetattrrI  s     r   rƒ   zPDFPage.__init__c  s3   € àÔ&ð 	&ð 	&ˆDÝ�D˜$ Ñ%Ô%Ð%Ð%ð	&ð 	&r   c                 ó   — || _         d S rH   r…   r†   s     r   ra   zPDFPage.setCompressiong  s   € Ø ˆÔÐÐr   c                 óŽ   — | j         rt          d¦  «        ‚t          |¦  «        rd                     |¦  «        dz   }|| _        d S )Nz&overridden! must set stream explicitlyr‚  )ÚOverride_default_compilationrº   r   r˜  Ústream)rE   Úcodes     r   Ú	setStreamzPDFPage.setStreami  sJ   € ØÔ,ð 	GÝÐEÑFÔFÐFÝ�‰;Œ;ð 	(Ø—9’9˜T‘?”? 4Ñ'ˆDØˆŒˆˆr   c                 ó.   — t          |¦  «        | _        d S rH   )rx   ÚTrans)rE   ÚtranDicts     r   ÚsetPageTransitionzPDFPage.setPageTransitionp  s   € Ý" 8Ñ,Ô,ˆŒ
ˆ
ˆ
r   c                 óÒ  — | j         rd S | j        p5t          | j        dv rdd| j        | j        gpdd| j        | j        g¦  «        | _        | j        sd | _        n3t          | j        t          ¦  «        st          | j        ¦  «        | _        | j	        sn| j
        }|st          ¦   «         | _	        nQt          ¦   «         }| j        r't          j        rt           t"          gpt"          g|_        ||_        d|_        || _	        | j        s³t-          ¦   «         }|                     ¦   «          | j        r|                     ¦   «          n|                     ¦   «          | j        r| j        |_        | j        r| j        |_        |                     | j        ¦  «         |                      | j!        ¦  «         || _        | j"        s#|j#        }| $                    |¦  «        | _"        d S d S )N)éZ   i  r   zpage stream)%r„  r<  rü  ÚRotateÚ
pageheightÚ	pagewidthÚAnnotsr,   r2   ÚContentsr…  r	  rA  r{   r   r  r  r  r÷  rö  r#   Ú	ResourcesÚPDFResourceDictionaryÚ
basicFontsÚ	hasImagesÚallProcsÚ
basicProcsÚXObjectsÚXObjectÚ	ExtGStateÚ
setShadingÚ_shadingUsedÚsetColorSpaceÚ_colorsUsedrr  r%   r4   )rE   r<   r…  r  Ú	resourcesr�   s         r   r[  zPDFPage.check_formats  s  € àÔ,ð 	ØˆFØœð  _­°$´+ÀÐ2IÐ2rÈqÐQRÐSWÔSbÐcgÔcqÐNrð  3^ÐwxÐz{ð  ~Bô  ~Lð  NRô  N]ð  w^ñ  *_ô  *_ˆŒØŒ{ð 	4ØˆDŒKˆKõ ˜dœk­)Ñ4Ô4ð 4Ý& t¤{Ñ3Ô3�”ØŒ}ð 
	"Ø”[ˆFØð "Ý *¡¤�”�å‘K”K�ØÔ#ð gÝ )Ô 0Ð TµoÅ|Ð5TÐ fÕYeÐXf�A”IØ"�”	Ø -�”Ø !�”ØŒ~ð 	'Ý-Ñ/Ô/ˆIà× Ò Ñ"Ô"Ð"ØŒ~ð 'Ø×"Ò"Ñ$Ô$Ð$Ð$à×$Ò$Ñ&Ô&Ð&ØŒ}ð 2à$(¤M�	Ô!ØŒ~ð 5Ø&*¤n�	Ô#Ø× Ò  Ô!2Ñ3Ô3Ð3Ø×#Ò# DÔ$4Ñ5Ô5Ð5à&ˆDŒNØŒ{ð 	4Ø”NˆEØ"×,Ò,¨UÑ3Ô3ˆDŒKˆKˆKð	4ð 	4r   )r   r   r   r#   r„  r"   rè   r\  rÞ  r_  r]  r�  r�  r…  r–  r{   r™  rŸ  Ú_shadingsUsedr‰  rƒ   ra   r‡  r‹  r[  r   r   r   r~  r~  I  sÚ   € € € € € Ø#€Kð $%Ð Ø€KØ˜G˜G F™OœOð €Lð÷ ’‘”ð ð (×-Ò-Ñ/Ô/€HØ€IØ€JØ€FØ€IØ€KØ€HØ€KØ€MØ€Eð&ð &ð &ð!ð !ð !ðð ð ð-ð -ð -ð*4ð *4ð *4ð *4ð *4r   r~  c                   ó   — e Zd ZdS )ÚDuplicatePageLabelPageNr   r   r   r   r£  r£     r    r   r£  c                   ó6   — e Zd ZdZdZi ZdgZg Zd„ Zd„ Z	d„ Z
dS )ÚPDFPageLabelsNr   ÚNumsc                 ó   — g | _         d S rH   )ÚlabelsrQ   s    r   rƒ   zPDFPageLabels.__init__©  s   € ØˆŒˆˆr   c                 ó>   — | j                              ||f¦  «         dS )a¨   Adds a new PDFPageLabel to this catalog.
        The 'page' argument, an integer, is the page number in the PDF document
        with which the 'label' should be associated. Page numbering in the PDF
        starts at zero! Thus, to change the label on the first page, '0' should be
        provided as an argument, and to change the 6th page, '5' should be provided
        as the argument.

        The 'label' argument should be a PDFPageLabel instance, which describes the
        format of the labels starting on page 'page' in the PDF and continuing
        until the next encounter of a PDFPageLabel.

        The order in which labels are added is not important.
        N)r¨  r  )rE   r¹   Úlabels      r   ÚaddPageLabelzPDFPageLabels.addPageLabel¬  s$   € ð 	Œ×Ò˜D %˜=Ñ)Ô)Ð)Ð)Ð)r   c           
      óÖ  ‡— 	 | j                              ¦   «          nf# t          $ rY t          d„ | j         D ¦   «         ¦  «        Št	          dt          t          ˆfd„‰D ¦   «         ¦  «        ¦  «        z  ¦  «         Y nw xY wg }| j         D ]/\  }}|                     |¦  «         |                     |¦  «         Œ0t          |¦  «        | _	        t                               | |¦  «        S )Nc                 ó   — g | ]
}|d          ‘ŒS ©r   r   )r®  r/   s     r   r¯  z(PDFPageLabels.format.<locals>.<listcomp>À  s   € Ð4Ð4Ð4 1˜!˜Aœ$Ð4Ð4Ð4r   z-

!!!!! Duplicate PageLabel seen for pages %rc                 óF   •— g | ]}‰                      |¦  «        d k    ¯|‘ŒS ©r&   )Úcount)r®  r/   Útmps     €r   r¯  z(PDFPageLabels.format.<locals>.<listcomp>Á  s6   ø€ Ð[}Ð[}Ð[}ÐbcÐnq×nwÒnwÐxyÑnzÔnzÐ{|Òn|Ðn|Ð\]Ðn|Ðn|Ðn|r   )r¨  r  r£  Úsortedr   r  Úsetr  rü  r¦  rk   r5   )rE   r<   r¨  r¹   rª  r²  s        @r   r5   zPDFPageLabels.format¼  s  ø€ ð	AØŒK×ÒÑÔÐÐøÝ%ð 	Að 	Að 	AÝÐ4Ð4¨¬Ð4Ñ4Ô4Ñ5Ô5ˆCÝÐOÕRVÕWZÐ[}Ð[}Ð[}Ð[}ÐgjÐ[}Ñ[}Ô[}ÑW~ÔW~ÑRÔRÑñ  Aô  Að  Að  Að  Að	Aøøøð ˆØœ;ð 	!ð 	!‰KˆD�%Ø�MŠM˜$ÑÔÐØ�MŠM˜%Ñ Ô Ð Ð å˜VÑ$Ô$ˆŒ	Ý× Ò   xÑ0Ô0Ð0s   ƒ �A B Á?B )r   r   r   Ú__comment__r"   r\  r_  r]  rƒ   r«  r5   r   r   r   r¥  r¥  ¢  s\   € € € € € Ø€KØ€KØ€LØ�H€MØ€Hðð ð ð*ð *ð *ð 1ð 1ð 1ð 1ð 1r   r¥  c                   óh   — e Zd ZdZdZi Zd                     ¦   «         ZdZdZ	dZ
dZdZd	Zdd
„Zd„ ZdS )ÚPDFPageLabelNr   zType S P Stz:ARABIC ROMAN_UPPER ROMAN_LOWER LETTERS_UPPER LETTERS_LOWERrM  rQ  ÚrÚAr¥  c                 ó  — |rQ|                      ¦   «         | j        v r"t          | |                      ¦   «         ¦  «        }t          |¦  «        | _        |rt          |¦  «        | _        |rt          |¦  «        | _        dS dS )a+  
        A PDFPageLabel changes the style of page numbering as displayed in a PDF
        viewer. PDF page labels have nothing to do with 'physical' page numbers
        printed on a canvas, but instead influence the 'logical' page numbers
        displayed by PDF viewers. However, when using roman numerals (i, ii,
        iii...) or page prefixes for appendecies (A.1, A.2...) on the physical
        pages PDF page labels are necessary to change the logical page numbers
        displayed by the PDF viewer to match up with the physical numbers. A
        PDFPageLabel changes the properties of numbering at the page on which it
        appears (see the class 'PDFPageLabels' for specifying where a PDFPageLabel
        is associated) and all subsequent pages, until a new PDFPageLabel is
        encountered.

        The arguments to this initialiser determine the properties of all
        subsequent page labels. 'style' determines the numberings style, arabic,
        roman, letters; 'start' specifies the starting number; and 'prefix' any
        prefix to be applied to the page numbers. All these arguments can be left
        out or set to None.

        * style:

            - None:                       No numbering, can be used to display the prefix only.
            - PDFPageLabel.ARABIC:        Use arabic numbers: 1, 2, 3, 4...
            - PDFPageLabel.ROMAN_UPPER:   Use upper case roman numerals: I, II, III...
            - PDFPageLabel.ROMAN_LOWER:   Use lower case roman numerals: i, ii, iii...
            - PDFPageLabel.LETTERS_UPPER: Use upper case letters: A, B, C, D...
            - PDFPageLabel.LETTERS_LOWER: Use lower case letters: a, b, c, d...

        * start:

            -   An integer specifying the starting number for this PDFPageLabel. This
                can be used when numbering style changes to reset the page number back
                to one, ie from roman to arabic, or from arabic to appendecies. Can be
                any positive integer or None. I'm not sure what the effect of
                specifying None is, probably that page numbering continues with the
                current sequence, I'd have to check the spec to clarify though.

        * prefix:

            -   A string which is prefixed to the page numbers. Can be used to display
                appendecies in the format: A.1, A.2, ..., B.1, B.2, ... where a
                PDFPageLabel is used to set the properties for the first page of each
                appendix to restart the page numbering at one and set the prefix to the
                appropriate letter for current appendix. The prefix can also be used to
                display text only, if the 'style' is set to None. This can be used to
                display strings such as 'Front', 'Back', or 'Cover' for the covers on
                books.

        N)	ÚupperÚ__convertible__r£   rè   r  ri  ÚStrp   ÚP)rE   ÚstyleÚstartÚprefixs       r   rƒ   zPDFPageLabel.__init__×  sx   € ðd ð 	$Ø�{Š{‰}Œ} Ô 4Ð4Ð4½gÀdÈ5Ï;Ê;É=Ì=Ñ>YÔ>Y°eÝ˜U‘^”^ˆDŒFØÐ,�I eÑ,Ô,�$”'ØÐ-�I fÑ-Ô-�4”6�6�6Ð-Ð-r   c                 ó:   — t           j        rt          ¦   «         ‚dS )NF)r   ÚerrorOnDuplicatePageLabelPager£  )rE   Úoths     r   Ú__lt__zPDFPageLabel.__lt__  s   € ÝÔ2ð 	+Ý(Ñ*Ô*Ð*Øˆur   r  )r   r   r   r#   r"   r\  rÞ  r_  r¼  ÚARABICÚROMAN_UPPERÚROMAN_LOWERÚLETTERS_UPPERÚLETTERS_LOWERrƒ   rÅ  r   r   r   r·  r·  Ê  sv   € € € € € Ø€KØ€KØ€LØ!×'Ò'Ñ)Ô)€MØR€Oà€FØ€KØ€KØ€MØ€Mð6.ð 6.ð 6.ð 6.ðpð ð ð ð r   r·  c                 óZ  — t          ¦   «         }t          ¦   «         |_        | j        }|                      |¦  «        |_        t          g d¢¦  «        |_        t          ¦   «         }| 	                    ¦   «          | 
                    ¦   «          ||_        |                     |¦  «         d S )N)r   r   r  iI  )r~  r	  r’  r%   r4   rr  rü  r<  r”  r—  r•  r“  rÎ   )r<   r¾  r�   r   s       r   ÚtestpagerÌ    s–   € Ý‰	Œ	€AÝ‘”€A„JØŒN€EØ×!Ò! %Ñ(Ô(€A„HÝÐ*Ð*Ð*Ñ+Ô+€A„JÝ%Ñ'Ô'€IØ×ÒÑÔÐØ×ÒÑÔÐØ€A„KØ	‡M‚M�!ÑÔÐÐÐr   z/
<<
  /Count
      0
  /Type
      /Outlines
>>c                   óH   — e Zd ZdZe                     dd¦  «        ZdZd„ ZdS )rr   zTEST OUTLINE!r‚  r&   c                 ó*   — t          | j        ¦  «        S rH   )r0   ræ  rI   s     r   r5   zPDFOutlines0.format.  s   € Ý˜œÑ#Ô#Ð#r   N)	r   r   r   r#   ÚDUMMYOUTLINErŒ  ræ  r"   r5   r   r   r   rr   rr   *  sB   € € € € € Ø!€KØ×Ò  dÑ+Ô+€DØ€Kð$ð $ð $ð $ð $r   rr   c                   ó8   — e Zd ZdZdxZxZxZxZxZxZ	xZ
Zd„ ZdS )ÚOutlineEntryObjectzan entry in an outlineNc                 óÜ   — i }t          | j        ¦  «        |d<   | j        |d<   | j        |d<   dD ]}t	          | |¦  «        }|�|||<   Œt          |¦  «        }|                     |¦  «        S )NÚTitlerr  ÚDest)r>  ÚNextÚFirstÚLastr{  )rp   rÓ  rr  rÔ  r£   rx   r5   )rE   r<   rM  rh  r  ÚPDs         r   r5   zOutlineEntryObject.format4  s|   € ØˆÝ˜tœzÑ*Ô*ˆˆ'‰
Ø”kˆˆ(‰Ø”Iˆˆ&‰	Ø;ð 	ð 	ˆAÝ˜˜aÑ Ô ˆAØˆ}Ø��!‘øÝ˜1ÑÔˆØ�yŠy˜Ñ"Ô"Ð"r   )r   r   r   rV   rÓ  rÔ  rr  r>  rÕ  rÖ  r×  r{  r5   r   r   r   rÑ  rÑ  1  sQ   € € € € € ØÐØAEÐE€EÐEˆDÐE�6ÐE˜DÐE 4ÐE¨%ÐE°$¸ð
#ð 
#ð 
#ð 
#ð 
#r   rÑ  c                   ó\   — e Zd ZdZdxZZdZdZd„ Zdd„Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zdd„ZdS )rs   aø  
    takes a recursive list of outline destinations like::

        out = PDFOutline1()
        out.setNames(canvas, # requires canvas for name resolution
        "chapter1dest",
        ("chapter2dest",
        ["chapter2section1dest",
        "chapter2section2dest",
        "chapter2conclusiondest"]
        ), # end of chapter2 description
        "chapter3dest",
        ("chapter4dest", ["c4s1", "c4s2"])
        )

    Higher layers may build this structure incrementally. KISS at base level.
    Nr   éÿÿÿÿc                 óL   — i | _         i | _        g | _        g | _        i | _        d S rH   )ÚdestinationnamestotitlesÚdestinationstotitlesÚ
levelstackÚ	buildtreeÚ	closedictrQ   s    r   rƒ   zPDFOutlines.__init__X  s+   € Ø(*ˆÔ%Ø$&ˆÔ!ØˆŒØˆŒØˆŒˆˆr   c                 óÞ  — |€|dk    rt          d¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        z  ¦  «        ‚|dk     rt          d¦  «        ‚|€|}| j        }| j        }| j        }||k    rA||dz   k    rt          d|›d|›d	|›d
|›d�	¦  «        ‚|dz   x}}|                     g ¦  «         ||k     rj|d         }|d= |d         }	|	d         }
t          |
t          ¦  «        r$|
\  }}t          dt          |
¦  «        z   ¦  «        ‚|
}|}||f|	d<   |dz
  }||k     °j|€dS |d                              |¦  «         || j
        |<   |r
d| j        |<   || _        dS )z/destinationname of None means "close the tree" Nr   zclose tree must have level of 0zlevel must be integer, got %sznegative levels not allowedr&   zcan't jump from outline level z
 to level z&, need intermediates (destinationname=z, title=rƒ  rÚ  z cannot reset existing sections: )rº   r,   r:   r8   ÚcurrentlevelrÞ  rß  r  Útupler©   rÜ  rà  )rE   ÚdestinationnameÚlevelrò   Úclosedrâ  ÚstackÚtreeÚcurrentÚpreviousÚlastinpreviousr�   Úsectionlists                r   ÚaddOutlineEntryzPDFOutlines.addOutlineEntry_  s  € àÐ" u¨a¢x xÝÐ>Ñ?Ô?Ð?Ý˜%¥Ñ$Ô$Ðe­JÐ7VÕY]Ð^cÑYdÔYdÑ7dÑ,eÔ,eÐ&eØ�Š7ˆ7�*Ð%BÑCÔCÐCØˆ= /˜%ØÔ(ˆØ”ˆØŒ~ˆà�ÒÐØ�\ !‘^Ò#Ð#Ý �jð  FRð  FRð  FRð  TYð  TYð  TYð  [jð  [jð  [jð  lqð  lqð  lqð  "rñ  sô  sð  sØ#/°¡>Ð1ˆE�LØ�LŠL˜ÑÔÐØ�LÒ Ð à˜B”iˆGØ�b�	Ø˜R”yˆHØ% bœ\ˆNÝ˜.­Ñ/Ô/ð 3Ø&4Ñ#��{Ý Ð!CÅdÈ>ÑFZÔFZÑ!ZÑ[Ô[Ð[à%�Ø%�Ø $ kÐ2�˜‘à'¨™>ˆLð �LÒ Ð ð Ð" F FØˆbŒ	×Ò˜Ñ)Ô)Ð)Ø9>ˆÔ% oÑ6ØÐ6°Q�4”> /Ñ2Ø!ˆÔÐÐr   c                 ó   — || _         d S rH   )Úmydestinations)rE   Údestinationtrees     r   ÚsetDestinationszPDFOutlines.setDestinations„  s   € Ø-ˆÔÐÐr   c                 ó®   — i }t          d¦  «        |d<   | j        |d<   | j        |d<   | j        |d<   t	          |¦  «        }|                     |¦  «        S )Nru   rG  r{  rÖ  r×  )rè   r±  ÚfirstÚlastrx   r5   ©rE   r<   rM  rØ  s       r   r5   zPDFOutlines.format‡  sX   € àˆÝ˜JÑ'Ô'ˆˆ&‰	Ø”Zˆˆ'‰
Ø”Zˆˆ'‰
Ø”Iˆˆ&‰	Ý˜1ÑÔˆØ�yŠy˜Ñ"Ô"Ð"r   c                 ó\   — |                       ||¦  «        }|                      |¦  «         d S rH   ©ÚtranslateNamesrñ  ©rE   r¯   ÚnametreeÚdesttrees       r   ÚsetNameszPDFOutlines.setNames‘  s1   € Ø×&Ò& v¨xÑ8Ô8ˆØ×Ò˜XÑ&Ô&Ð&Ð&Ð&r   c                 ó\   — |                       ||¦  «        }|                      |¦  «         dS )z1Explicit list so I don't need to do in the callerNr÷  rù  s       r   ÚsetNameListzPDFOutlines.setNameList•  s1   € à×&Ò& v¨xÑ8Ô8ˆØ×Ò˜XÑ&Ô&Ð&Ð&Ð&r   c                 ó6  — | j         }| j        }| j        }t          |¦  «        rrt	          |¦  «        s|                     d¦  «        }|                     |¦  «        }|}||v r	||         }n|||<   |||<   ||v rd||<   ||                     |¦  «        iS t          |¦  «        rVg }|D ]+}	|                     |  	                    ||	¦  «        ¦  «         Œ,t          |t          ¦  «        rt          |¦  «        S |S t          dt          |¦  «        z  ¦  «        ‚)z=recursively translate tree of names into tree of destinationsr~  r&   z5in outline, destination name must be string: got a %s)rÜ  rÝ  rà  r   r
   r‰  Ú_bookmarkReferencer   r  rø  r,   rã  r¨   r8   )
rE   r¯   ÚobjectrÜ  rÝ  rà  Údestinationrò   r›  Úos
             r   rø  zPDFOutlines.translateNamesš  sB  € à#'Ô#@Ð Ø#Ô8ÐØ”Nˆ	Ý�‰=Œ=ð 	?Ý˜VÑ$Ô$ÐD¨v¯}ª}¸VÑ/DÔ/D fØ ×3Ò3°FÑ;Ô;ˆKØˆEØÐ1Ð1Ð1Ø0°Ô8��à27Ð(¨Ñ/Ø05Ð  Ñ-Ø˜Ð"Ð"Ø)*�	˜+Ñ&Ø˜F×5Ò5°fÑ=Ô=Ð>Ð>Ý�‰=Œ=ð 	ØˆAØð 9ð 9�Ø—’˜×,Ò,¨V°QÑ7Ô7Ñ8Ô8Ð8Ð8Ý˜&¥Ñ'Ô'ð  Ý˜Q‘x”x�ØˆHåÐOÕPTÐU[ÑP\ÔP\Ñ\Ñ]Ô]Ð]r   c                 óz  — | j         €c| j        r>|                      d¦  «         | j        d         }|                      ||¦  «        | _         ndx| _        | _        d| _        d| _        dS t          | j         | j        ¦  «        | _        |  	                    || j         d¬¦  «        \  | _        | _        d| _        dS )zPprepare all data structures required for save operation (create related objects)Nr   rÚ  r&   r  )
rï  rÞ  rí  rø  ró  rô  r±  r¶   rà  Úmaketree)rE   r<   r¯   Ú	destnamess       r   rJ   zPDFOutlines.prepareµ  s¸   € àÔÐ&ØŒð 	Ø×$Ò$ TÑ*Ô*Ð*Ø œO¨AÔ.�	à&*×&9Ò&9¸&À)Ñ&LÔ&L�Ô#Ð#à)-Ð-�”
˜TœYØ�”
Ø�”
Ø�õ ˜4Ô.°´Ñ?Ô?ˆŒ
Ø"&§-¢-°¸$Ô:MÐXY -Ñ"ZÔ"ZÑˆŒ�T”YØˆŒ
ˆ
ˆ
r   c                 óh  — |rd}|                      |j        ¦  «        }n+| xj        dz  c_        d| j        z  }|€t          d¦  «        ‚t	          |¦  «        st          d¦  «        ‚t          |¦  «        }|dz
  }d x}x}	}
| j        }| j        }t          |¦  «        D �]Ž}t          ¦   «         }||_
        |›d|›�}|                      ||¦  «        }|�||_        |
|_        |	€|}	|}
|}|}
||         }t          |t          ¦  «        r|}n™t          |t          ¦  «        re	 |\  }}n$#  t          dt          |¦  «        z  ¦  «        ‚xY wt          ||¦  «        |_        |                      |||¦  «        \  |_        |_        nt          dt)          |¦  «        z  ¦  «        ‚	 t+          |                     ¦   «         ¦  «        \  \  }}n$#  t          d	t/          |¦  «        z   ¦  «        ‚xY w||         |_        ||_        t          |t          ¦  «        r||v r|j         |_        �Œ�|	|
fS )
NÚOutliner&   z
Outline.%sz2non-top level outline elt parent must be specifiedz-destinationtree must be list or tuple, got %sú.z7destination tree elt tuple should have two elts, got %sz4destination tree elt should be dict or tuple, got %sz3bad outline leaf dictionary, should have one entry )r4   ru   r±  rº   r   r  rÜ  rà  r¶  rÑ  rr  rÕ  r>  r,   rC  rã  r{  r  rÖ  r×  r8   r  r^  r   rÓ  rÔ  )rE   r<   rð  rr  r=   Ú	levelnameÚneltsÚ	lastindexÚlasteltÚfirstrefÚlastrefrÜ  rà  ÚindexÚeltobjÚeltnameÚeltrefÚeltÚleafdictÚsubsectionsrÓ  rÔ  s                         r   r  zPDFOutlines.maketreeÉ  sz  € Øð 	WØ!ˆIØ×'Ò'¨Ô(9Ñ:Ô:ˆFˆFàˆJŒJ˜!‰OˆJŒJØ$ t¤zÑ1ˆIØˆ~Ý Ð!UÑVÔVÐVÝ�_Ñ%Ô%ð 	NÝÐLÑMÔMÐMÝ�OÑ$Ô$ˆØ˜!‘Gˆ	Ø'+Ð+ˆÐ+�(˜WØ#'Ô#@Ð Ø”Nˆ	Ý˜5‘\”\ð $	-ñ $	-ˆEÝ'Ñ)Ô)ˆFØ"ˆFŒMØ!*  ¨E¨EÐ2ˆGØ×'Ò'¨°Ñ8Ô8ˆFàÐ"Ø%�”Ø%�”ØÐØ!�ØˆGØˆGØˆGØ! %Ô(ˆCÝ˜#�dÑ#Ô#ð eà��Ý˜C¥Ñ&Ô&ð 	eðkØ.1Ñ+�X˜{˜{øðkÝ$Ð%^ÕadÐehÑaiÔaiÑ%iÑjÔjÐjøøøÝ$ [°)Ñ<Ô<�”Ø.2¯mªm¸HÀkÐSYÑ.ZÔ.ZÑ+�”˜vœ{˜{å Ð!WÕZ^Ð_bÑZcÔZcÑ!cÑdÔdÐdðeÝ"& x§~¢~Ñ'7Ô'7Ñ"8Ô"8‘‘�%˜˜øðeÝ Ð!VÕW^Ð_bÑWcÔWcÑ!cÑdÔdÐdøøøØ3°EÔ:ˆFŒLØˆFŒKÝ˜#�eÑ$Ô$ð -¨°Ð):Ð):à &¤˜}�”ùØ˜'Ð"Ð"s   Ä%D+Ä+!EÆ)&GÇ!G1)r   NNr´   )r   r   r   rV   rï  r¶   r&  râ  rƒ   rí  rñ  r5   rü  rþ  rø  rJ   r  r   r   r   rs   rs   @  sÉ   € € € € € ðð ð& "Ð!€N�UØ€GØ€Lðð ð ð#"ð #"ð #"ð #"ðJ.ð .ð .ð#ð #ð #ð'ð 'ð 'ð'ð 'ð 'ð
^ð ^ð ^ð6ð ð ð(5#ð 5#ð 5#ð 5#ð 5#ð 5#r   rs   c                 ó&  — t          | t          ¦  «        r3| \  }}t          |                     ¦   «         ¦  «        \  \  }}|r||v rdS t	          | ¦  «        r9g }| D ]%}|                     t          ||¦  «        ¦  «         Œ&t          |¦  «        S dS )zButility for outline: recursively count leaves in a tuple/list treer&   )r,   rã  r  r^  r   r  r±  Úsum)rè  rà  r  r  rÓ  rÔ  Úcountsru  s           r   r±  r±     s¤   € å�$•uÑÔð à"&Ñˆ�;Ý˜xŸ~š~Ñ/Ô/Ñ0Ô0‰‰ˆ%�Øð 	˜ Ð*Ð*Ø�1ÝˆT�{„{ð àˆØð 	/ð 	/ˆAØ�MŠM�%  9Ñ-Ô-Ñ.Ô.Ð.Ð.Ý�6‰{Œ{ÐØˆ1r   z$ReportLab PDF Library - (opensource)c                   óF   — e Zd ZdZeZdZdZdZdZ	dZ
dZd„ Zd„ Zd	„ Zd
„ ZdS )rv   zÌPDF documents can have basic information embedded, viewable from
    File | Document Info in Acrobat Reader.  If this is wrong, you get
    Postscript errors while printing, even though it does not print.Ú	anonymousÚuntitledÚunspecifiedr  Nc                 ó   — d| _         d S )NÚFalse)ÚtrappedrQ   s    r   rƒ   zPDFInfo.__init__  ó   € ØˆŒˆˆr   c                 ó„   — | j         | j        | j        | j        fD ]$}|                     t          |¦  «        ¦  «         Œ%d S rH   )rò   rõ   rù   r  rd   r   )rE   Ú	md5objectr/   s      r   r”   zPDFInfo.digest   sI   € à”*˜dœk¨4¬<¸¼ÐGð 	)ð 	)ˆAØ×Ò�W Q™ZœZÑ(Ô(Ð(Ð(ð	)ð 	)r   c                 óÖ  — i }t          | j        ¦  «        |d<   t          | j        ¦  «        |d<   t          |j        | j        ¬¦  «        x|d<   |d<   t          | j        ¦  «        |d<   t          | j        ¦  «        |d<   t          | j        ¦  «        |d<   t          | j	        ¦  «        |d	<   t          | j        ¦  «        |d
<   t          |¦  «        }|                     |¦  «        S )NrÓ  ÚAuthor)Útsr  ÚModDateÚCreationDateÚProducerÚCreatorÚSubjectÚKeywordsÚTrapped)rp   rò   rõ   ÚPDFDatere   r  r   rü   rù   r  rè   r   rx   r5   rõ  s       r   r5   zPDFInfo.format%  sÒ   € ØˆÝ˜tœzÑ*Ô*ˆˆ'‰
Ý ¤Ñ,Ô,ˆˆ(‰Ý+2°hÔ6IÐX\ÔXkÐ+lÑ+lÔ+lÐlˆˆ)‰�q˜Ñ(Ý! $¤-Ñ0Ô0ˆˆ*‰Ý  ¤Ñ.Ô.ˆˆ)‰Ý  ¤Ñ.Ô.ˆˆ)‰Ý! $¤-Ñ0Ô0ˆˆ*‰Ý˜tœ|Ñ,Ô,ˆˆ)‰å˜1ÑÔˆØ�yŠy˜Ñ"Ô"Ð"r   c                 óŽ   — |                       ¦   «         }| j                             ¦   «         D ]\  }}t          |||¦  «         Œ|S )z'shallow copy - useful in pagecatchering)Ú	__klass__Ú__dict__r^  r�  )rE   r�   rŒ   r  s       r   rŸ  zPDFInfo.copy3  sL   € à—’Ñ Ô ˆØ”M×'Ò'Ñ)Ô)ð 	!ð 	!‰DˆAˆqÝ�E˜1˜aÑ Ô Ð Ð Øˆr   )r   r   r   rV   rÿ   r   rü   rò   rõ   rù   r  r  rƒ   r”   r5   rŸ  r   r   r   rv   rv     s�   € € € € € ðHð Hð !€HØ€GØ€EØ€FØ€GØ€HØ€Nðð ð ð)ð )ð )ð
#ð #ð #ðð ð ð ð r   rv   c                   óV   — e Zd ZdZd ed¦  «        fgZdZedz   Zdd„Zd„ Z	d	„ Z
d
„ ZdS )Ú
Annotationzsuperclass for all annotations.rG  ÚAnnot)rG  ÚRectr’  rH  )ÚBorderÚCÚTÚMÚFÚHÚBSÚAAÚASÚPopupr¾  ÚAPr&   c                 óŠ   — |d         }t          |¦  «        st          |¦  «        |d<   t          |d         |¦  «        |d<   |S )ú@transform dict args from python form to pdf string rep as neededr5  r’  )r   rü  rp   )rE   Údrz  r5  s       r   ÚcvtdictzAnnotation.cvtdictA  sD   € à�ŒyˆÝ�T‰{Œ{ð 	'Ý  ™œˆAˆf‰IÝ! ! J¤-°Ñ7Ô7ˆˆ*‰Øˆr   c                 ó†  — d|v r|d         }|d= nd}i }| j         D ]
\  }}|||<   Œ|                     |¦  «         | j        D ]}||vrt          d|› d�¦  «        ‚Œ|                      ||¬¦  «        }| j        }|                     ¦   «         D ]$}||vrt          | j        j        ›d|›�¦  «        ‚Œ%t          |¦  «        S )Nrz  r&   zkeyword argument z missing)rz  z  bad annotation dictionary name )
r`  rd   Úrequiredrº   rD  Ú	permittedr‹   r¥   r   rx   )rE   Úkwrz  rC  r�   ÚvalrG  s          r   ÚAnnotationDictzAnnotation.AnnotationDictH  s  € Ø�rˆ>ˆ>Ø˜”\ˆFØ�8��àˆFØˆØœ-ð 	ð 	‰JˆT�#ØˆAˆd‰GˆGØ	�Š�‰ŒˆØ”Mð 	Eð 	EˆDØ˜1ˆ}ˆ}Ý Ð!C°TÐ!CÐ!CÐ!CÑDÔDÐDð à�LŠL˜ &ˆLÑ)Ô)ˆØ”Nˆ	Ø—F’F‘H”Hð 	jð 	jˆDØ˜9Ð$Ð$Ý È4Ì>ÔKbÐKbÐKbÐcgÐcgÐ!hÑiÔiÐið %å˜QÑÔÐr   c                 ó    — t          d¦  «        ‚)NzEDictString undefined for virtual superclass Annotation, must overload©rº   rQ   s    r   ÚDictzAnnotation.Dict[  s   € ÝÐ`ÑaÔaÐar   c                 óT   — |                       ¦   «         }|                     |¦  «        S rH   ©rM  r5   ©rE   r<   rM  s      r   r5   zAnnotation.format_  s!   € Ø�IŠI‰KŒKˆØ�xŠx˜Ñ!Ô!Ð!r   Nr°  )r   r   r   rV   rè   r`  rF  rG  rD  rJ  rM  r5   r   r   r   r3  r3  ;  s‹   € € € € € Ø)Ð)Ø˜˜ Ñ)Ô)Ð+Ð,€HØ6€HØð Oñ O€Iðð ð ð ð ð  ð  ð&bð bð bð"ð "ð "ð "ð "r   r3  c                   ó.   — e Zd Zej        dz   Zd„ Zd„ ZdS )ÚFreeTextAnnotation)ÚDAc                 ó>   — || _         || _        || _        || _        d S rH   )r5  r’  rS  Úotherkw)rE   r5  r’  rS  rH  s        r   rƒ   zFreeTextAnnotation.__init__e  s"   € ØˆŒ	Ø ˆŒØˆŒØˆŒˆˆr   c                 óš   — i }|                      | j        ¦  «         | j        |d<   | j        |d<   | j        |d<   d|d<    | j        di |¤ŽS )Nr5  r’  rS  z	/FreeTextrH  r   )rd   rU  r5  r’  rS  rJ  ©rE   rC  s     r   rM  zFreeTextAnnotation.Dictj  s^   € ØˆØ	�Š�”ÑÔÐØ”Iˆˆ&‰	Øœˆˆ*‰Ø”'ˆˆ$‰Ø"ˆˆ)‰Ø"ˆtÔ"Ð'Ð' QÐ'Ð'Ð'r   N)r   r   r   r3  rG  rƒ   rM  r   r   r   rR  rR  c  s?   € € € € € ØÔ$ wÑ.€Iðð ð ð
(ð (ð (ð (ð (r   rR  c                   ó6   — e Zd Zej        dz   Zdd„Zd„ Zd„ ZdS )ÚLinkAnnotation)rÔ  r¹  ÚPAú[0 0 1]c                 óL   — || _         || _        || _        || _        || _        d S rH   )r6  r5  r’  ÚDestinationrU  )rE   r5  r’  r]  r6  rH  s         r   rƒ   zLinkAnnotation.__init__w  s*   € ØˆŒØˆŒ	Ø ˆŒØ&ˆÔØˆŒˆˆr   c                 ó   — dS )Nz„
          << /Type /Annot /Subtype /Link /Rect [71 717 190 734] /Border [16 16 1]
             /Dest [23 0 R /Fit] >>
             r   rQ   s    r   ÚdummyDictStringzLinkAnnotation.dummyDictString~  s   € ðð r   c                 ó®   — i }|                      | j        ¦  «         | j        |d<   | j        |d<   | j        |d<   d|d<   | j        |d<    | j        di |¤ŽS )Nr6  r5  r’  z/LinkrH  rÔ  r   )rd   rU  r6  r5  r’  r]  rJ  rW  s     r   rM  zLinkAnnotation.Dict„  sj   € ØˆØ	�Š�”ÑÔÐØ”kˆˆ(‰Ø”Iˆˆ&‰	Øœˆˆ*‰Øˆˆ)‰ØÔ$ˆˆ&‰	Ø"ˆtÔ"Ð'Ð' QÐ'Ð'Ð'r   N)r[  )r   r   r   r3  rG  rƒ   r_  rM  r   r   r   rY  rY  s  sX   € € € € € àÔ$ð (ñ €Iðð ð ð ðð ð ð(ð (ð (ð (ð (r   rY  c                   óB   — e Zd ZdZej        dz   Zg d¢fd„Zd	d„Zd„ ZdS )
ÚHighlightAnnotationa  
    HighlightAnnotation is an annotation that highlights the selected area.

    Rect is the mouseover area that will show the contents.

    QuadPoints is a list of points to highlight, you can have many groups of
    four QuadPoints to allow highlighting many lines.
    )Ú
QuadPoints)g�Âõ(\�ê?g{®Gázì?gffffffî?c                 óL   — || _         || _        || _        || _        || _        d S rH   )r5  r’  rU  rc  ÚColor)rE   r5  r’  rc  re  rH  s         r   rƒ   zHighlightAnnotation.__init__™  s)   € ØˆŒ	Ø ˆŒØˆŒØ$ˆŒØˆŒ
ˆ
ˆ
r   r&   c                 óÐ  — |d         }|d         }|d         }t          |t          ¦  «        s't          |¦  «                             |d¬¦  «        |d<   t          |t          ¦  «        s't          |¦  «                             |d¬¦  «        |d<   t          |t          ¦  «        s't          |¦  «                             |d¬¦  «        |d<   t	          |d         |¦  «        |d<   |S )rB  r5  rc  r7  r­  r@  r’  )r,   r-   rü  r5   rp   )rE   rC  rz  r5  ÚQuadre  s         r   rD  zHighlightAnnotation.cvtdict   sÖ   € à�ŒyˆØ�ŒˆØ�#”ˆÝ˜$¥Ñ$Ô$ð 	;Ý  ™œ×-Ò-¨a°TÐ-Ñ:Ô:ˆAˆf‰IÝ˜$¥Ñ$Ô$ð 	AÝ& t™nœn×3Ò3°A¸4Ð3Ñ@Ô@ˆAˆl‰OÝ˜%¥Ñ%Ô%ð 	9Ý˜e‘_”_×+Ò+¨A°4Ð+Ñ8Ô8ˆAˆc‰FÝ! ! J¤-°Ñ8Ô8ˆˆ*‰Øˆr   c                 ó®   — i }|                      | j        ¦  «         | j        |d<   | j        |d<   d|d<   | j        |d<   | j        |d<    | j        di |¤ŽS )Nr5  r’  z
/HighlightrH  rc  r7  r   )rd   rU  r5  r’  rc  re  rJ  rW  s     r   rM  zHighlightAnnotation.Dict®  si   € ØˆØ	�Š�”ÑÔÐØ”Iˆˆ&‰	Øœˆˆ*‰Ø#ˆˆ)‰Øœ/ˆˆ,‰Ø”ˆˆ#‰Ø"ˆtÔ"Ð'Ð' QÐ'Ð'Ð'r   Nr°  )	r   r   r   rV   r3  rG  rƒ   rD  rM  r   r   r   rb  rb  Ž  sn   € € € € € ðð ð Ô$Ð'7Ñ7€Ià9KÐ9KÐ9Kð ð ð ð ðð ð ð ð(ð (ð (ð (ð (r   rb  c                   ó.   — e Zd Zej        dz   Zd„ Zd„ ZdS )ÚTextAnnotation)ÚOpenÚNamec                 ó¢   — t          j        | ||f|                     dd ¦  «        pt          |¦  «        |                     dd¦  «        dœ|¤Ž d S )Nrc  re  )r   r   r   )rc  re  )rb  rƒ   r»  Úrect_to_quad)rE   r5  r’  rH  s       r   rƒ   zTextAnnotation.__init__»  sn   € ÝÔ$ TØØð	ð Ÿ6š6 ,¨tÑ4Ô4ÐJ½ÀTÑ8JÔ8JØ—f’f˜W WÑ-Ô-ð		ð 	ð
 ð	ð 	ð 	ð 	ð 	r   c                 óD   — t                                | ¦  «        }d|d<   |S )Nz/TextrH  )rb  rM  rW  s     r   rM  zTextAnnotation.DictÂ  s#   € Ý×$Ò$ TÑ*Ô*ˆØˆˆ)‰Øˆr   N)r   r   r   rb  rG  rƒ   rM  r   r   r   rj  rj  ¸  sD   € € € € € Ø#Ô-ð 1ñ €Iðð ð ðð ð ð ð r   rj  c           	      óv   — | d         | d         | d         | d         | d         | d         | d         | d         gS )z9
    Utility method to convert a Rect to a QuadPoint
    r   r&   r�  r'   r   )r5  s    r   rn  rn  Ç  s@   € ð �ŒG�T˜!”W˜d 1œg t¨A¤wØ�ŒG�T˜!”W˜d 1œg t¨A¤wð0ð 0r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚPDFRectanglec                 óD   — ||||f\  | _         | _        | _        | _        d S rH   )ÚllxÚllyÚulxÚury)rE   rt  ru  Úurxrw  s        r   rƒ   zPDFRectangle.__init__Ô  s%   € Ø14°c¸3ÀÐ1CÑ.ˆŒ�$”(˜DœH d¤h h hr   c                 óp   — t          | j        | j        | j        | j        g¦  «        }t          ||¦  «        S rH   )rü  rt  ru  rv  rw  r5   )rE   r<   r¹  s      r   r5   zPDFRectangle.formatÖ  s0   € Ý�d”h ¤¨$¬(°D´HÐ=Ñ>Ô>ˆÝ�a˜Ñ"Ô"Ð"r   Nr  r   r   r   rr  rr  Ó  s5   € € € € € ðDð Dð Dð#ð #ð #ð #ð #r   rr  c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )r.  Nc                 ó^   — |€t          ¦   «         }|                      |¦  «         || _        d S rH   )r   Ú_initr  )rE   r&  r  s      r   rƒ   zPDFDate.__init__Ü  s-   € Øˆ:Ý‘”ˆBØ�
Š
�2‰ŒˆØ*ˆÔÐÐr   c                 óN   — |j         | _        |j        | _        |j        | _        d S rH   )ÚYMDhmsÚdateÚdhhÚdmm)rE   r&  s     r   r|  zPDFDate._initâ  s!   € Ø”IˆŒ	Ø”6ˆŒØ”6ˆŒˆˆr   c                 óf   ‡ — ‰ j         pˆ fd„}t          t           |‰ j        Ž ¦  «        |¦  «        S )Nc           	      ó2   •— d| |||||‰j         ‰j        fz  S )Nz%D:%04d%02d%02d%02d%02d%02d%+03d'%02d')r€  r�  )ÚyyyyÚmmÚddÚhhÚmrn  rE   s         €r   ú<lambda>z PDFDate.format.<locals>.<lambda>é  s)   ø€ Ø;Ø  2 b¨¨1¨T¬X°d´hÐ?ñ@ð r   )r  r5   rp   r  )rE   r–   Údfmts   `  r   r5   zPDFDate.formatç  sO   ø€ ØÔ!ð Að@ð @ð @ð @ð 	õ •i   d¤iÐ 0Ñ1Ô1°3Ñ7Ô7Ð7r   rÍ  )r   r   r   rƒ   r|  r5   r   r   r   r.  r.  Ú  sF   € € € € € ð+ð +ð +ð +ðð ð ð
8ð 8ð 8ð 8ð 8r   r.  c                   ó`   — e Zd ZdZdxZxZZd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )r]  aM  

    not a PDFObject!  This is a placeholder that can delegates
    to a pdf object only after it has been defined by the methods
    below.

    EG a Destination can refer to Appendix A before it has been
    defined, but only if Appendix A is explicitly noted as a destination
    and resolved before the document is generated...

    For example the following sequence causes resolution before doc generation.
        d = Destination()
        d.fit() # or other format defining method call
        d.setPage(p)
        (at present setPageRef is called on generation of the page).
    Nc                 ó0   — || _         d x| _        | _        d S rH   )r�   Úfmtr¹   rI  s     r   rƒ   zDestination.__init__   s   € ØˆŒ	Ø#Ð#ˆŒ�4”9�9�9r   c                 óº   — | j         }|€t          d| j        z  ¦  «        ‚| j        }|€t          d| j        z  ¦  «        ‚||_        |                     |¦  «        S )NzYformat not resolved, probably missing URL scheme or undefined destination target for '%s'zTPage not bound, probably missing URL scheme or undefined destination target for '%s')r�  rº   r�   r¹   r5   )rE   r<   r>   Úps       r   r5   zDestination.format  sŒ   € ØŒHˆØˆ9�Jð  (Cð  FJô  FOñ  (Oñ  Pô  Pð  PØŒIˆØˆ9�JÐ'}ð  AEô  AJñ  (Jñ  Kô  Kð  KØˆŒØ�xŠx˜Ñ!Ô!Ð!r   c                 ó4   — t          d |||¦  «        | _        d S rH   )ÚPDFDestinationXYZr�  )rE   ÚleftÚtopÚzooms       r   ÚxyzzDestination.xyz
  s   € Ý$ T¨4°°dÑ;Ô;ˆŒˆˆr   c                 ó.   — t          d ¦  «        | _        d S rH   )ÚPDFDestinationFitr�  rQ   s    r   ÚfitzDestination.fit  s   € Ý$ TÑ*Ô*ˆŒˆˆr   c                 ó.   — t          d ¦  «        | _        d S rH   )ÚPDFDestinationFitBr�  rQ   s    r   ÚfitbzDestination.fitb  s   € Ý% dÑ+Ô+ˆŒˆˆr   c                 ó0   — t          d |¦  «        | _        d S rH   )ÚPDFDestinationFitHr�  ©rE   r“  s     r   ÚfithzDestination.fith  s   € Ý% d¨3Ñ/Ô/ˆŒˆˆr   c                 ó0   — t          d |¦  «        | _        d S rH   )ÚPDFDestinationFitVr�  ©rE   r’  s     r   ÚfitvzDestination.fitv  s   € Ý% d¨DÑ1Ô1ˆŒˆˆr   c                 ó0   — t          d |¦  «        | _        d S rH   )ÚPDFDestinationFitBHr�  rž  s     r   ÚfitbhzDestination.fitbh  s   € Ý& t¨SÑ1Ô1ˆŒˆˆr   c                 ó0   — t          d |¦  «        | _        d S rH   )ÚPDFDestinationFitBVr�  r¢  s     r   ÚfitbvzDestination.fitbv  s   € Ý& t¨TÑ2Ô2ˆŒˆˆr   c                 ó6   — t          d ||||¦  «        | _        d S rH   )ÚPDFDestinationFitRr�  )rE   r’  ÚbottomÚrightr“  s        r   ÚfitrzDestination.fitr  s   € Ý% d¨D°&¸%ÀÑEÔEˆŒˆˆr   c                 ó   — || _         d S rH   ©r¹   rx  s     r   ÚsetPagezDestination.setPage  r  r   )r   r   r   rV   Úrepresentationr5   r¹   rƒ   r•  r˜  r›  rŸ  r£  r¦  r©  r®  r±  r   r   r   r]  r]  î  s×   € € € € € ðð ð  &*Ð)€NÐ)�V˜dð$ð $ð $ð"ð "ð "ð<ð <ð <ð+ð +ð +ð,ð ,ð ,ð0ð 0ð 0ð2ð 2ð 2ð2ð 2ð 2ð3ð 3ð 3ðFð Fð Fðð ð ð ð r   r]  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r‘  ÚXYZc                 ó>   — || _         || _        || _        || _        d S rH   )r¹   r“  r”  r’  )rE   r¹   r’  r“  r”  s        r   rƒ   zPDFDestinationXYZ.__init__   s"   € ØˆŒ	ØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	r   c                 óÀ   — |                      | j        ¦  «        }t          |t          | j        ¦  «        | j        | j        | j        g¦  «        }t          ||¦  «        S rH   )	r4   r¹   rü  rè   Útypenamer’  r“  r”  r5   ©rE   r<   Úpagerefr¹  s       r   r5   zPDFDestinationXYZ.format%  sO   € Ø×$Ò$ T¤YÑ/Ô/ˆÝ˜¥¨¬Ñ!7Ô!7¸¼ÀDÄHÈdÌiÐYÑ[Ô[ˆÝ�a˜Ñ"Ô"Ð"r   N©r   r   r   r·  rƒ   r5   r   r   r   r‘  r‘    s7   € € € € € Ø€Hðð ð ð
#ð #ð #ð #ð #r   r‘  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r—  ÚFitc                 ó   — || _         d S rH   r°  rx  s     r   rƒ   zPDFDestinationFit.__init__,  r  r   c                 óœ   — |                      | j        ¦  «        }t          |t          | j        ¦  «        g¦  «        }t          ||¦  «        S rH   )r4   r¹   rü  rè   r·  r5   r¸  s       r   r5   zPDFDestinationFit.format.  sC   € Ø×$Ò$ T¤YÑ/Ô/ˆÝ˜¥¨¬Ñ!7Ô!7Ð9Ñ;Ô;ˆÝ�a˜Ñ"Ô"Ð"r   Nrº  r   r   r   r—  r—  *  s7   € € € € € Ø€Hðð ð ð#ð #ð #ð #ð #r   r—  c                   ó   — e Zd ZdZdS )rš  ÚFitBN©r   r   r   r·  r   r   r   rš  rš  3  s   € € € € € Ø€H€H€Hr   rš  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r�  ÚFitHc                 ó"   — || _         || _        d S rH   )r¹   r“  )rE   r¹   r“  s      r   rƒ   zPDFDestinationFitH.__init__8  s   € ØˆŒ	 3˜$œ(˜(˜(r   c                 ó¨   — |                      | j        ¦  «        }t          |t          | j        ¦  «        | j        g¦  «        }t          ||¦  «        S rH   )r4   r¹   rü  rè   r·  r“  r5   r¸  s       r   r5   zPDFDestinationFitH.format:  sG   € Ø×$Ò$ T¤YÑ/Ô/ˆÝ˜¥¨¬Ñ!7Ô!7¸¼ÐCÑEÔEˆÝ�a˜Ñ"Ô"Ð"r   Nrº  r   r   r   r�  r�  6  s7   € € € € € Ø€Hð'ð 'ð 'ð#ð #ð #ð #ð #r   r�  c                   ó   — e Zd ZdZdS )r¥  ÚFitBHNrÁ  r   r   r   r¥  r¥  ?  ó   € € € € € Ø€H€H€Hr   r¥  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r¡  ÚFitVc                 ó"   — || _         || _        d S rH   )r¹   r’  )rE   r¹   r’  s      r   rƒ   zPDFDestinationFitV.__init__D  s   € ØˆŒ	 D˜$œ)˜)˜)r   c                 ó¨   — |                      | j        ¦  «        }t          |t          | j        ¦  «        | j        g¦  «        }t          ||¦  «        S rH   )r4   r¹   rü  rè   r·  r’  r5   r¸  s       r   r5   zPDFDestinationFitV.formatF  sG   € Ø×$Ò$ T¤YÑ/Ô/ˆÝ˜¥¨¬Ñ!7Ô!7¸¼ÐDÑFÔFˆÝ�a˜Ñ"Ô"Ð"r   Nrº  r   r   r   r¡  r¡  B  s7   € € € € € Ø€Hð)ð )ð )ð#ð #ð #ð #ð #r   r¡  c                   ó   — e Zd ZdZdS )r¨  ÚFitBVNrÁ  r   r   r   r¨  r¨  K  rÈ  r   r¨  c                   ó   — e Zd ZdZd„ Zd„ ZdS )r«  ÚFitRc                 óL   — || _         || _        || _        || _        || _        d S rH   )r¹   r’  r¬  r­  r“  )rE   r¹   r’  r¬  r­  r“  s         r   rƒ   zPDFDestinationFitR.__init__P  s*   € ØˆŒ	 D˜$œ)°f¨$¬+È¸d¼jÐY\ÐPTÔPXÐPXÐPXr   c                 óÌ   — |                      | j        ¦  «        }t          |t          | j        ¦  «        | j        | j        | j        | j        g¦  «        }t          ||¦  «        S rH   )
r4   r¹   rü  rè   r·  r’  r¬  r­  r“  r5   r¸  s       r   r5   zPDFDestinationFitR.formatR  sW   € Ø×$Ò$ T¤YÑ/Ô/ˆÝ˜¥¨¬Ñ!7Ô!7¸¼ÀDÄKÐQUÔQ[Ð]aÔ]eÐfÑhÔhˆÝ�a˜Ñ"Ô"Ð"r   Nrº  r   r   r   r«  r«  N  s:   € € € € € Ø€Hð]ð ]ð ]ð#ð #ð #ð #ð #r   r«  c                   ó|   — e Zd ZdZd„ Zd„ d                     ¦   «         D ¦   «         ZdZd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )r”  z7each element *could* be reset to a reference if desiredc           	      óÌ   — | j         D ]'}t          | ||                     |i ¦  «        ¦  «         Œ(|                      ¦   «          d|v r|                     d¦  «        | _        d S d S ©NÚProcSet)Údict_attributesr�  r»  r˜  rÖ  )rE   ÚkwdsrU  s      r   rƒ   zPDFResourceDictionary.__init__]  so   € ØÔ%ð 	+ð 	+ˆAÝ�D˜˜4Ÿ8š8 A b™>œ>Ñ*Ô*Ð*Ð*à�ŠÑÔÐØ˜ÐÐØŸ(š( 9Ñ-Ô-ˆDŒLˆLˆLð Ðr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r   )rè   ©r®  rn  s     r   r¯  z PDFResourceDictionary.<listcomp>d  s   € ÐLÐLÐL˜q•˜‘
”
ÐLÐLÐLr   zPDF Text ImageB ImageC ImageI)Ú
ColorSpacerš  r›  ÚFontÚPatternÚ
PropertiesÚShadingc                 ó   — | j         | _        d S rH   ©ÚstdprocsrÖ  rQ   s    r   r—  zPDFResourceDictionary.allProcsg  s   € à”}ˆŒˆˆr   c                 ó.   — | j         d d…         | _        d S )Nr�  rá  rQ   s    r   r˜  z PDFResourceDictionary.basicProcsk  s   € Ø”} R a RÔ(ˆŒˆˆr   c                 ó8   — t          t          ¦  «        | _        d S rH   )rË   r$   rÜ  rQ   s    r   r•  z PDFResourceDictionary.basicFontsn  s   € Ý&¥zÑ2Ô2ˆŒ	ˆ	ˆ	r   c                 óh   — |                      ¦   «         D ]\  }}t          |¦  «        | j        |<   Œd S rH   )r^  rË   rÛ  )rE   Ú
colorsUsedro  rn  s       r   rž  z#PDFResourceDictionary.setColorSpaceq  sB   € Ø×#Ò#Ñ%Ô%ð 	7ð 	7‰CˆAˆaÝ!3°AÑ!6Ô!6ˆDŒO˜AÑÐð	7ð 	7r   c                 óh   — |                      ¦   «         D ]\  }}t          |¦  «        | j        |<   Œd S rH   )r^  rË   rß  )rE   ÚshadingUsedro  rn  s       r   rœ  z PDFResourceDictionary.setShadingu  s@   € Ø×$Ò$Ñ&Ô&ð 	4ð 	4‰CˆAˆaÝ0°Ñ3Ô3ˆDŒL˜‰OˆOð	4ð 	4r   c                 óB  — i }| j         D ]C}t          | |¦  «        }t          |t          ¦  «        r|rt	          |¦  «        }|||<   Œ>|||<   ŒD| j        }d}t          |¦  «        r|rt          |¦  «        }|||<   n|||<   t	          |¦  «        }t          ||¦  «        S rÕ  )	r×  r£   r,   rC  rx   rÖ  r   rü  r5   )rE   r<   rM  Údnamer  Údvr‚   s          r   r5   zPDFResourceDictionary.formaty  sÁ   € ØˆØÔ)ð 	ð 	ˆEÝ˜˜eÑ$Ô$ˆAÝ˜!�DÑ!Ô!ð Øð "Ý& qÑ)Ô)�BØ!�A�e‘Høà��%‘�ØŒLˆØˆÝ�‰8Œ8ð 	Øð Ý˜a‘[”[�Ø��%‘øàˆAˆe‰HÝ˜1ÑÔˆÝ�b˜(Ñ#Ô#Ð#r   N)r   r   r   rV   rƒ   rÞ  râ  r×  r—  r˜  r•  rž  rœ  r5   r   r   r   r”  r”  [  s«   € € € € € ØAÐAð.ð .ð .ð MÐLÐ$C×$IÒ$IÑ$KÔ$KÐLÑLÔL€HØh€Oð%ð %ð %ð)ð )ð )ð3ð 3ð 3ð7ð 7ð 7ð4ð 4ð 4ð$ð $ð $ð $ð $r   r”  c                   ót   — e Zd ZdZdZd                     ¦   «         ZdZdZd                     ¦   «         Z	d„ Z
dS )	ÚPDFType1Fontz"no init: set attributes explicitlyr&   zType Subtype BaseFont NamerÜ  ÚType1z;FirstChar LastChar Widths Encoding ToUnicode FontDescriptorc                 ó$  — i }| j         D ]4}t          | |¦  «        r"t          | |¦  «        }t          |¦  «        ||<   Œ5| j        D ]'}t          | |¦  «        rt          | |¦  «        }|||<   Œ(t          |¦  «        }|                     |¦  «        S rH   )Úname_attributesr3   r£   rè   Úlocal_attributesrx   r5   )rE   r<   rM  r�   rê   rØ  s         r   r5   zPDFType1Font.format�  s¦   € ØˆØÔ(ð 	)ð 	)ˆDÝ�t˜TÑ"Ô"ð )Ý  dÑ+Ô+�Ý! %™.œ.��$‘øØÔ)ð 	 ð 	 ˆDÝ�t˜TÑ"Ô"ð  Ý  dÑ+Ô+�Ø��$‘øå˜1ÑÔˆØ�yŠy˜Ñ"Ô"Ð"r   N)r   r   r   rV   r"   rÞ  rð  rG  rH  rñ  r5   r   r   r   rí  rí  ”  s[   € € € € € Ø,Ð,Ø€Kà2×8Ò8Ñ:Ô:€OØ€DØ€GàT×ZÒZÑ\Ô\Ðð#ð #ð #ð #ð #r   rí  c                   ó   — e Zd ZdZdS )ÚPDFTrueTypeFontÚTrueTypeN)r   r   r   rH  r   r   r   ró  ró  ®  s   € € € € € Ø€G€G€Gr   ró  c                   óJ   — e Zd ZdxZxZxZxZxZxZZ	dZ
dZd„ Zd„ Zd„ Zd„ ZdS )r?  Nr&   r   c                 ó>   — || _         || _        || _        || _        d S rH   )ÚlowerxÚloweryÚupperxÚuppery)rE   r÷  rø  rù  rú  s        r   rƒ   zPDFFormXObject.__init__Ø  s    € àˆŒ¨&˜dœk¸f°$´+ÐRXÀdÄkÀkÀkr   c                 óv   — t          |¦  «        rd                     |¦  «        }t          |¦  «        | _        d S )Nr‚  )r   r˜  r0   r…  )rE   r±   s     r   ÚsetStreamListzPDFFormXObject.setStreamListÜ  s0   € Ý�‰;Œ;ð 	#Ø—9’9˜T‘?”?ˆDÝ ‘o”oˆŒˆˆr   c                 óv   — | j         rt          | j         j        ¦  «        S | j        | j        | j        | j        gS )z4get the declared bounding box for the form as a list)ÚBBoxr  rD  r÷  rø  rù  rú  rQ   s    r   r@  zPDFFormXObject.BBoxListá  s7   € àŒ9ð 	HÝ˜œ	Ô*Ñ+Ô+Ð+à”K ¤¨d¬k¸4¼;ÐGÐGr   c                 ó’  — | j         p&t          | j        | j        | j        | j        g¦  «        | _         | j        pt          g d¢¦  «        | _        | j        sd | _        nt          d¦  «        ‚| j	        s@| j
        }|st          ¦   «         | _	        n#t          ¦   «         }||_        d|_        || _	        | j        slt!          ¦   «         }|                     ¦   «          | j        r|                     ¦   «          n|                     ¦   «          | j        r| j        |_        || _        | j        r,t0          j        rt4          t6          gpt6          g| j	        _        | j	        j        }t=          d¦  «        |d<   t=          d¦  «        |d<   d|d	<   | j         |d
<   | j        |d<   | j        |d<   | j	                             |¦  «        S )N)r&   r   r   r&   r   r   z-annotations don't work in PDFFormXObjects yetzxobject form streamrš  rG  ÚFormrH  r&   ÚFormTyperþ  ÚMatrixr“  ) rþ  rü  r÷  rø  rù  rú  r  r‘  rº   r’  r…  r	  rA  rö  r#   r“  r”  r•  r–  r—  r˜  r™  rš  r{   r   r  r  r  r÷  rB  rè   r5   )rE   r<   r…  r  r   Úsdicts         r   r5   zPDFFormXObject.formatè  s½  € Ø”IÐ_¥¨4¬;¸¼ÀTÄ[ÐRVÔR]Ð*^Ñ!_Ô!_ˆŒ	Ø”kÐA¥XÐ.@Ð.@Ð.@Ñ%AÔ%AˆŒØŒ{ð 	NØˆDŒKˆKõ ÐLÑMÔMÐMØŒ}ð 		"Ø”[ˆFØð "Ý *¡¤�”�å‘K”K�Ø"�”	à 5�”Ø !�”ØŒ~ð 	%Ý-Ñ/Ô/ˆIà× Ò Ñ"Ô"Ð"ØŒ~ð 'Ø×"Ò"Ñ$Ô$Ð$Ð$à×$Ò$Ñ&Ô&Ð&ØŒ}ð 2à$(¤M�	Ô!Ø$ˆDŒNØÔð 	kÝ$-Ô$4Ð$X½/Í<Ð9XÐ$jÕ]iÐ\jˆDŒMÔ!Ø”Ô(ˆÝ 	Ñ*Ô*ˆˆf‰Ý" 6™?œ?ˆˆiÑØˆˆjÑØœ	ˆˆf‰Øœ+ˆˆh‰Ø!œ^ˆˆkÑØŒ}×#Ò# HÑ-Ô-Ð-r   )r   r   r   r™  r‘  rþ  r  r’  r…  r“  r–  r{   rƒ   rü  r@  r5   r   r   r   r?  r?  Ñ  s‡   € € € € € ð IMÐL€HÐLˆvÐL˜ÐL˜vÐL¨ÐL°6¸IØ€IØ€KðYð Yð Yð&ð &ð &ð
Hð Hð Hð'.ð '.ð '.ð '.ð '.r   r?  c                   ó    — e Zd ZdZdd„Zd„ ZdS )ÚPDFPostScriptXObjectz,For embedding PD (e.g. tray commands) in PDFNc                 ó   — || _         d S rH   ©rö  )rE   rö  s     r   rƒ   zPDFPostScriptXObject.__init__  r!  r   c                 óÄ   — t          ¦   «         }| j        |_        d|_        |j        }t	          d¦  «        |d<   t	          d¦  «        |d<   |                     |¦  «        S )Nzxobject postscript streamrš  rG  ÚPSrH  )rA  rö  r#   rB  rè   r5   )rE   r<   r  r  s       r   r5   zPDFPostScriptXObject.format  sU   € Ý‰KŒKˆØ”LˆŒ	Ø3ˆŒØ”ˆÝ 	Ñ*Ô*ˆˆf‰Ý" 4™=œ=ˆˆiÑØ�xŠx˜Ñ!Ô!Ð!r   rH   )r   r   r   rV   rƒ   r5   r   r   r   r  r    s=   € € € € € Ø2Ð2ðð ð ð ð"ð "ð "ð "ð "r   r  Ú	DeviceRGBÚ
DeviceGrayÚ
DeviceCMYK)ÚRGBr›  ÚCMYKc                   ó:   — e Zd Zd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )
ÚPDFImageXObjectNc                 ón  — || _         d| _        d| _        d| _        d| _        t
          j        rdpd| _        d| _        || _	        |€d S t          |d¦  «        r|                      |¦  «         d S d	d l}|j                             |¦  «        d                              ¦   «         }t!          |¦  «        }	 |d
v r|                      |¦  «        s7t
          j        r|                      |¦  «         n|                      |¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Né   é   r&   r  )rî  r   zß
            003B00 002700 002480 0E4940 114920 14B220 3CB650
            75FE88 17FF8C 175F14 1C07E2 3803C4 703182 F8EDFC
            B2BBC2 BB6F84 31BFC2 18EA3C 0E3E00 07FC00 03F800
            1E1800 1FF800>
            Újpeg_fhr   )z.jpgz.jpeg)r�   ÚwidthÚheightÚbitsPerComponentÚ
colorSpacer   r  Ú_filtersÚstreamContentÚmaskr3   ÚloadImageFromSRCr¬   rM  ÚsplitextÚlowerr   ÚloadImageFromJPEGÚloadImageFromA85ÚloadImageFromRawr«   )rE   r�   Úsourcer  r¬   ÚextÚsrcs          r   rƒ   zPDFImageXObject.__init__&  s?  € ØˆŒ	ØˆŒ
ØˆŒØ !ˆÔØ&ˆŒÝ!Ô(Ð?Ð-?ÐEÀ2ˆŒðˆÔð ˆŒ	àˆ>ØˆDÝ�V˜IÑ&Ô&ð 	Ø×!Ò! &Ñ)Ô)Ð)Ð)Ð)ð ˆIˆIˆIØ”'×"Ò" 6Ñ*Ô*¨1Ô-×3Ò3Ñ5Ô5ˆCÝ Ñ'Ô'ˆCðØÐ/Ð/Ð/°D×4JÒ4JÈ3Ñ4OÔ4OÐ/Ý Ô'ð 3Ø×-Ò-¨cÑ2Ô2Ð2Ð2à×-Ò-¨cÑ2Ô2Ð2à—	’	‘”���ø�—	’	‘”��øøøs   Â8AD ÄD4c                 ó  — g }t          j        ||d¬¦  «        }|s|                      |d         ¦  «        S d„ |D ¦   «         }|d                              ¦   «         }t	          |d         ¦  «        t	          |d         ¦  «        c| _        | _        ddd	d
œ|d                  | _        d| _        d| _	        |r|  
                    |d         ¦  «         n| j        dk    rd | _        d                     |dd…         ¦  «        | _        d S )NT©ÚIMGÚ
detectJpegr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )r  rÚ  s     r   r¯  z4PDFImageXObject.loadImageFromA85.<locals>.<listcomp>L  s    € Ð2Ð2Ð2 1�Q—W’W‘Y”YÐ2Ð2Ð2r   r&   r'   r
  r  r  ©z/RGBz/Gz/CMYKé   é   ©rî  rá  rx  r  rÚ  )r   ÚmakeA85Imager  rÞ  r:   r  r  r  r  r  Ú_checkTransparencyr  r˜  r  ©rE   r"  r'  Ú	imagedataÚwordss        r   r   z PDFImageXObject.loadImageFromA85G  s  € ØˆÝÔ)¨&°SÀDÐIÑIÔIˆ	Øð 	1Ø×(Ò(¨¨Q¬Ñ0Ô0Ð0Ø2Ð2¨	Ð2Ñ2Ô2ˆ	Ø˜!”×"Ò"Ñ$Ô$ˆÝ#& u¨Q¤x¡=¤=µ°U¸1´X±´ÐˆŒ
�D”KØ"-°LÈ,ÐWÐWÐX]Ð^_ÔX`ÔaˆŒØ !ˆÔØ5ˆŒØð 	1�×'Ò'¨¨A¬Ñ/Ô/Ð/Ð/ØŒY˜ÒÐ¨D ¤	ØŸWšW Y¨q°¨t¤_Ñ5Ô5ˆÔÐÐr   c                 óü  — 	 	 t          j        |¦  «        }|                     d¦  «         n# |                     d¦  «         w xY wn#  Y dS xY w|d         |d         c| _        | _        d| _        |d         dk    rd| _        n"|d         dk    rd| _        nd	| _        d| _        |                     ¦   «         | _	        t          j        r!t          | j	        ¦  «        | _	        d
| _        nd| _        d | _        dS )Nr   Fr&   r,  r�  r  r'   r
  r  )rî  Ú	DCTDecode)r4  T)r   ÚreadJPEGInfoÚseekr  r  r  r  Ú_dotransrT  r  r   r  r   r  r  )rE   Ú	imageFilerR   s      r   r  z!PDFImageXObject.loadImageFromJPEGV  s  € ð	ð"ÝÔ,¨YÑ7Ô7�à—’˜qÑ!Ô!Ð!Ð!ø�	—’˜qÑ!Ô!Ð!Ð!øøøÐ!øð	Ø�5�5øøøØ"& q¤'¨4°¬7ÐˆŒ
�D”KØ !ˆÔØ�Œ7�aŠ<ˆ<Ø*ˆDŒOˆOØ�!ŒW˜Š\ˆ\Ø)ˆDŒOˆOà*ˆDŒOØˆDŒMØ&Ÿ^š^Ñ-Ô-ˆÔÝÔð 	)Ý!2°4Ô3EÑ!FÔ!FˆDÔØ7ˆDŒMˆMà(ˆDŒMØˆŒ	Øˆts   ƒ- —A ­AÁA ÁAc                 óü  — g }t          j        ||d¬¦  «        }|s|                      |d         ¦  «        S |d                              ¦   «         }t	          |d         ¦  «        | _        t	          |d         ¦  «        | _        dddd	œ|d
                  | _        d| _        d| _	        |r|  
                    |d         ¦  «         n| j        dk    rd | _        d                     |dd…         ¦  «        | _        d S )NTr&  r   r&   r'   r
  r  r  r*  r+  r,  ©rá  rx  r   rÚ  )r   ÚmakeRawImager  rÞ  r:   r  r  r  r  r  r/  r  r˜  r  r0  s        r   r!  z PDFImageXObject.loadImageFromRawp  sø   € ØˆÝÔ)¨&°SÀDÐIÑIÔIˆ	Øð 	1Ø×(Ò(¨¨Q¬Ñ0Ô0Ð0Ø˜!”×"Ò"Ñ$Ô$ˆÝ˜˜qœ‘]”]ˆŒ
Ý˜% œ(‘m”mˆŒØ"-°LÈ,ÐWÐWÐX]Ð^_ÔX`ÔaˆŒØ !ˆÔØ&ˆŒØð 	1�×'Ò'¨¨A¬Ñ/Ô/Ð/Ð/ØŒY˜ÒÐ¨D ¤	Ø ŸXšX i°°"°¤oÑ6Ô6ˆÔÐÐr   c                 ó>  — | j         dk    r°|j        rWd | _         t          t          |j                             ¦   «         ¦  «        |j        d ¬¦  «        | _        ddg| j        _        d S |                     ¦   «         }|r3|d         |d         |d         |d         |d         |d         f| _         d S d | _         d S t          | j         d¦  «        rL| j          	                    ¦   «         }|d         |d         |d         |d         |d         |d         f| _         d S d S )Nrx  )r  r   r&   r�  Úrgb)
r  Ú_dataAr  r   Ú
getRGBDataÚ_smaskÚ_decodeÚgetTransparentr3   r=  )rE   ÚimÚtcrU  s       r   r/  z"PDFImageXObject._checkTransparency  s  € ØŒ9�fÒÐØŒyð 	%Ø �”	Ý-­i¸¼	×8LÒ8LÑ8NÔ8NÑ.OÔ.OÐPRÔPYÐ_cÐdÑdÔd�”Ø'(¨ e�”Ô#Ð#Ð#à×&Ò&Ñ(Ô(�Øð %Ø!# A¤¨¨1¬¨r°!¬u°b¸´e¸RÀ¼UÀBÀqÄEÐ J�D”I�I�Ià $�D”I�I�IÝ�T”Y˜uÑ%Ô%ð 	6Ø”	—’‘”ˆAØ˜!œ˜Q˜qœT ! A¤$ q¨¤t¨A¨a¬D°°1´Ð5ˆDŒIˆIˆIð	6ð 	6r   c                 óÊ  — |                      ¦   «         }|r|                      |¦  «         dS |                     ¦   «         \  | _        | _        |                     ¦   «         }t          j        |¦  «        | _        t          j
        r!t          | j        ¦  «        | _        d| _        nd| _        t          |j                 | _        d| _        |                      |¦  «         dS )z%Extracts the stream, width and heightr-  r:  r,  N)r  r  ÚgetSizer  r  r?  rã  rä  r  r   r  r   r  Ú_mode2CSro  r  r  r/  )rE   rC  Úfpr’   s       r   r  z PDFImageXObject.loadImageFromSRC�  sÄ   € à�ZŠZ‰\Œ\ˆØð 	(Ø×"Ò" 2Ñ&Ô&Ð&Ð&Ð&à&(§j¢j¡l¤lÑ#ˆDŒJ˜œØ—-’-‘/”/ˆCå!%¤¨sÑ!3Ô!3ˆDÔÝÔð /Ý%6°tÔ7IÑ%JÔ%J�Ô"Ø =�”�à .�”Ý% b¤gÔ.ˆDŒOØ$%ˆDÔ!Ø×#Ò# BÑ'Ô'Ð'Ð'Ð'r   c                 ó¼  — t          | j        ¬¦  «        }|j        }t          d¦  «        |d<   t          d¦  «        |d<   | j        |d<   | j        |d<   | j        |d<   t          | j        ¦  «        |d	<   | j        d
k    r&t          | dd¦  «        rt          g d¢¦  «        |d<   n(t          | dd ¦  «        rt          | j
        ¦  «        |d<   t          t          t          | j        ¦  «        ¦  «        |d<   t          | j        ¦  «        |d<   | j        rt          | j        ¦  «        |d<   t          | dd ¦  «        r
| j        |d<   |                     |¦  «        S )Nr  rš  rG  ÚImagerH  ÚWidthÚHeightÚBitsPerComponentrÛ  r  r7  r   )r&   r   r&   r   r&   r   r&   r   ÚDecoderA  rù  rú  ÚMaskÚsmaskÚSMask)rA  r  rB  rè   r  r  r  r  r£   rü  rA  rÂ  r  r  r  rP  r5   )rE   r<   r  rC  s       r   r5   zPDFImageXObject.format¢  sN  € Ý Ô 2Ð3Ñ3Ô3ˆØŒ|ˆÝ˜yÑ)Ô)ˆˆV‰Ý! 'Ñ*Ô*ˆˆY‰Øœ
ˆˆW‰ØœˆˆX‰Ø#'Ô#8ˆÐÑ Ý$ T¤_Ñ5Ô5ˆˆ\ÑØŒ?˜LÒ(Ð(­W°T¸*ÀQÑ-GÔ-GÐ(Ý%Ð&7Ð&7Ð&7Ñ8Ô8ˆD�‰NˆNÝ�T˜) DÑ)Ô)ð 	4Ý% d¤lÑ3Ô3ˆD�‰NÝ!¥#¥g¨d¬mÑ"<Ô"<Ñ=Ô=ˆˆX‰Ý˜TÔ/Ñ0Ô0ˆˆX‰ØŒ9Ð8¥X¨d¬iÑ%8Ô%8�d˜6‘lÝ�4˜ Ñ%Ô%ÐA°t´z t¨G¡}Ø�xŠx˜Ñ!Ô!Ð!r   rÍ  )
r   r   r   rƒ   r   r  r!  r/  r  r5   r   r   r   r  r     sƒ   € € € € € ðð ð ð ðB6ð 6ð 6ðð ð ð47ð 7ð 7ð6ð 6ð 6ð (ð (ð (ð&"ð "ð "ð "ð "r   r  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ré   c                 ó¾   — ddl m} t          ||¦  «        st          d| j        j        z  ¦  «        ‚|j        st          d| j        j        z  ¦  «        ‚|| _        d S )Nr   )Ú	CMYKColorz%s needs a CMYKColor argumentz-%s needs a CMYKColor argument with a spotName)Úreportlab.lib.colorsrT  r,   rº   r¥   r   râ   rë   )rE   rë   rT  s      r   rƒ   zPDFSeparationCMYKColor.__init__¶  so   € Ø2Ð2Ð2Ð2Ð2Ð2Ý˜$˜yÑ)Ô)ð 	hÝÐ<¸t¼~Ô?VÑVÑWÔWÐWØ”ð 	hÝÐLÈtÌ~ÔOfÑfÑgÔgÐgØˆŒ	ˆ	ˆ	r   c                 óä  — g j         }t          | j                             ¦   «         ¦  «        D ]¦\  }}t          |¦  «        }|dk    rA|dk    r |d¦  «          |d¦  «         Œ7 |t	          |¦  «        ¦  «          |d¦  «         Œ[|dk    r |d¦  «         n. |d¦  «          |t	          |¦  «        ¦  «          |d¦  «          |d¦  «         Œ§d	d
                     |j        ¦  «        z  S )zpcreate the postscript code for the tint transfer function
        effectively this is tint*c, tint*y, ... tint*kr'   ç        r»  z0.0Úmulr   ÚdupÚexchz{%s}r€  )r  r•  rë   r9   r-   r˜  Ú__self__)rE   rQ  rœ  r  s       r   Ú_makeFuncPSz"PDFSeparationCMYKColor._makeFuncPS¾  sú   € ð ŒIˆÝ˜TœYŸ^š^Ñ-Ô-Ñ.Ô.ð 	ð 	‰CˆAˆaÝ�A‰hŒhˆAØ�!ŠtˆtØ�c’6�6Ø�A�e‘H”H�HØ�A�e‘H”H�H�Hà�A•c˜!‘f”f‘I”I�IØ�A�e‘H”H�H�Hà�a’4�4Ø�A�e‘H”H�H�Hà�A�e‘H”H�HØ�A•c˜!‘f”f‘I”I�IØ�A�e‘H”H�HØ��&‘	”	�	�	Ø˜Ÿš !¤*Ñ-Ô-Ñ.Ð.r   c                 ó<  — t          t          d¦  «        t          | j        j        ¦  «        t          d¦  «        t	          t          t          dt          d¦  «        t          d¦  «        ¬¦  «        ¦  «        |                      ¦   «         d ¬¦  «        f¦  «        S )NÚ
Separationr  r(   )r   r&   )r   r&   r   r&   r   r&   r   r&   )ÚFunctionTypeÚDomainÚRange)rB  rö  r÷  )r  rè   rë   râ   rA  rx   rC  r\  rQ   s    r   rê   zPDFSeparationCMYKColor.valueÕ  s�   € ÝÝ˜LÑ)Ô)Ý˜DœIÔ.Ñ/Ô/Ý˜LÑ)Ô)ÝÝ#0µØ)*Ý#2°5Ñ#9Ô#9Ý"1Ð2CÑ"DÔ"Dð2ñ 2ô 2ñ $ô $ð
 !%× 0Ò 0Ñ 2Ô 2Ø $ðñ ô ð	 ñ ô ð 	r   N)r   r   r   rƒ   r\  rê   r   r   r   ré   ré   µ  sA   € € € € € ðð ð ð/ð /ð /ð.ð ð ð ð r   ré   c                   ó6   — e Zd ZdZg ZdZedz   Zd„ Zd„ Zd„ Z	dS )ÚPDFFunctionz"superclass for all function types.)r_  r`  )ra  c                 ó  — i }| j         D ]
\  }}|||<   Œ|                     |¦  «         | j        D ]}||vrt          d|z  ¦  «        ‚Œ| j        }|                     ¦   «         D ]}||vrt          d|z  ¦  «        ‚Œt          |¦  «        S ©Nzkeyword argument %s missingz!bad annotation dictionary name %s)r`  rd   rF  rº   rG  r‹   rx   )rE   rH  rC  r�   rI  rG  s         r   ÚFunctionDictzPDFFunction.FunctionDictê  s½   € ØˆØœ-ð 	ð 	‰JˆT�#ØˆAˆd‰GˆGØ	�Š�‰ŒˆØ”Mð 	Gð 	GˆDØ˜1ˆ}ˆ}Ý Ð!>ÀÑ!EÑFÔFÐFð à”Nˆ	Ø—F’F‘H”Hð 	Mð 	MˆDØ˜9Ð$Ð$Ý Ð!DÀtÑ!KÑLÔLÐLð %å˜QÑÔÐr   c                 ó    — t          d¦  «        ‚©Nz?Dict undefined for virtual superclass PDFShading, must overloadrL  rI   s     r   rM  zPDFFunction.Dictø  ó   € ÝÐZÑ[Ô[Ð[r   c                 óV   — |                       |¦  «        }|                     |¦  «        S rH   rO  rP  s      r   r5   zPDFFunction.formatý  ó%   € Ø�IŠI�hÑÔˆØ�xŠx˜Ñ!Ô!Ð!r   N)
r   r   r   rV   r`  rF  rG  rf  rM  r5   r   r   r   rc  rc  å  s^   € € € € € Ø,Ð,Ø€HØ)€HØ˜Ñ#€Ið ð  ð  ð\ð \ð \ð
"ð "ð "ð "ð "r   rc  c                   ón   — e Zd Zej        d ed¦  «        fgz   Zej        dz   Zej        dz   Zd„ Zd„ Z	dS )ÚPDFExponentialFunctionr`  )rW  g      ð?)ÚN)ÚC0ÚC1rn  c                 ó>   — || _         || _        || _        || _        d S rH   )ro  rp  rn  rU  )rE   ro  rp  rn  rH  s        r   rƒ   zPDFExponentialFunction.__init__	  s"   € ØˆŒØˆŒØˆŒØˆŒˆˆr   c                 óÎ   — i }|                      | j        ¦  «         d|d<   t          | j        ¦  «        |d<   t          | j        ¦  «        |d<   | j        |d<    | j        di |¤ŽS )Nr�  r_  ro  rp  rn  r   )rd   rU  r  ro  rp  rn  rf  ©rE   r<   rC  s      r   rM  zPDFExponentialFunction.Dict
	  so   € ØˆØ	�Š�”ÑÔÐØˆˆ.ÑÝ! $¤'Ñ*Ô*ˆˆ$‰Ý! $¤'Ñ*Ô*ˆˆ$‰Ø”ˆˆ#‰Ø ˆtÔ Ð%Ð% 1Ð%Ð%Ð%r   N)
r   r   r   rc  r`  r  rF  rG  rƒ   rM  r   r   r   rm  rm  	  sl   € € € € € ØÔ#¨°/°/À*Ñ2MÔ2MÐ'NÐ&OÑO€HØÔ# fÑ,€HØÔ%Ð(9Ñ9€Iðð ð ð
&ð &ð &ð &ð &r   rm  c                   óB   — e Zd Zej        dz   Zej        dz   Zd„ Zd„ ZdS )ÚPDFStitchingFunction)Ú	FunctionsÚBoundsÚEncodec                 ó>   — || _         || _        || _        || _        d S rH   )rv  rw  rx  rU  )rE   rv  rw  rx  rH  s        r   rƒ   zPDFStitchingFunction.__init__	  s"   € Ø"ˆŒØˆŒØˆŒØˆŒˆˆr   c                 ó  ‡— i }|                      | j        ¦  «         d|d<   t          ˆfd„| j        D ¦   «         ¦  «        |d<   t          | j        ¦  «        |d<   t          | j        ¦  «        |d<    | j        di |¤ŽS )Nr'   r_  c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r   )r4   )r®  r/   r<   s     €r   r¯  z-PDFStitchingFunction.Dict.<locals>.<listcomp>	  s'   ø€ Ð"QÐ"QÐ"Q¸Q 8×#5Ò#5°aÑ#8Ô#8Ð"QÐ"QÐ"Qr   rv  rw  rx  r   )rd   rU  rü  rv  rw  rx  rf  rs  s    ` r   rM  zPDFStitchingFunction.Dict	  s�   ø€ ØˆØ	�Š�”ÑÔÐØˆˆ.ÑÝ!Ð"QÐ"QÐ"QÐ"QÀ$Ä.Ð"QÑ"QÔ"QÑRÔRˆˆ+‰Ý˜tœ{Ñ+Ô+ˆˆ(‰Ý˜tœ{Ñ+Ô+ˆˆ(‰Ø ˆtÔ Ð%Ð% 1Ð%Ð%Ð%r   N)r   r   r   rc  rF  rG  rƒ   rM  r   r   r   ru  ru  	  sN   € € € € € ØÔ#Ð&GÑG€HØÔ%Ð(IÑI€Iðð ð ð
&ð &ð &ð &ð &r   ru  c                   ó2   — e Zd ZdZdZedz   Zd„ Zd„ Zd„ ZdS )Ú
PDFShadingz!superclass for all shading types.)ÚShadingTyperÛ  )Ú
Backgroundrþ  Ú	AntiAliasc                 óö   — i }|                      |¦  «         | j        D ]}||vrt          d|z  ¦  «        ‚Œ| j        }|                     ¦   «         D ]}||vrt          d|z  ¦  «        ‚Œt          |¦  «        S re  )rd   rF  rº   rG  r‹   rx   )rE   rH  rC  r�   rG  s        r   ÚShadingDictzPDFShading.ShadingDict(	  s�   € ØˆØ	�Š�‰ŒˆØ”Mð 	Gð 	GˆDØ˜1ˆ}ˆ}Ý Ð!>ÀÑ!EÑFÔFÐFð à”Nˆ	Ø—F’F‘H”Hð 	Mð 	MˆDØ˜9Ð$Ð$Ý Ð!DÀtÑ!KÑLÔLÐLð %å˜QÑÔÐr   c                 ó    — t          d¦  «        ‚rh  rL  rI   s     r   rM  zPDFShading.Dict4	  ri  r   c                 óV   — |                       |¦  «        }|                     |¦  «        S rH   rO  rP  s      r   r5   zPDFShading.format9	  rk  r   N)	r   r   r   rV   rF  rG  r‚  rM  r5   r   r   r   r}  r}  $	  sZ   € € € € € Ø+Ð+Ø,€HØÐ<Ñ<€Ið
 ð 
 ð 
 ð\ð \ð \ð
"ð "ð "ð "ð "r   r}  c                   óB   — e Zd Zej        dz   Zej        dz   Zd„ Zd„ ZdS )ÚPDFFunctionShading)ÚFunction)r`  r  r‡  c                 ó0   — || _         || _        || _        d S rH   )r‡  rÛ  rU  )rE   r‡  rÛ  rH  s       r   rƒ   zPDFFunctionShading.__init__@	  s   € Ø ˆŒØ$ˆŒØˆŒˆˆr   c                 óÆ   — i }|                      | j        ¦  «         d|d<   t          | j        ¦  «        |d<   |                     | j        ¦  «        |d<    | j        di |¤ŽS )Nr&   r~  rÛ  r‡  r   )rd   rU  rè   rÛ  r4   r‡  r‚  rs  s      r   rM  zPDFFunctionShading.DictD	  sj   € ØˆØ	�Š�”ÑÔÐØˆˆ-ÑÝ! $¤/Ñ2Ô2ˆˆ,‰Ø ×*Ò*¨4¬=Ñ9Ô9ˆˆ*‰ØˆtÔÐ$Ð$ !Ð$Ð$Ð$r   N©r   r   r   r}  rF  rG  rƒ   rM  r   r   r   r†  r†  =	  sM   € € € € € ØÔ" ]Ñ2€HØÔ$Ð'GÑG€Iðð ð ð%ð %ð %ð %ð %r   r†  c                   óB   — e Zd Zej        dz   Zej        dz   Zd„ Zd„ ZdS )ÚPDFAxialShading©ÚCoordsr‡  ©rŽ  r`  r‡  ÚExtendc                 óF   — ||||f| _         || _        || _        || _        d S rH   ©rŽ  r‡  rÛ  rU  )rE   Úx0Úy0Úx1Úy1r‡  rÛ  rH  s           r   rƒ   zPDFAxialShading.__init__P	  s+   € Ø˜2˜r 2Ð&ˆŒØ ˆŒØ$ˆŒØˆŒˆˆr   c                 óô   — i }|                      | j        ¦  «         d|d<   t          | j        ¦  «        |d<   t	          | j        ¦  «        |d<   |                     | j        ¦  «        |d<    | j        di |¤ŽS )Nr�  r~  rÛ  rŽ  r‡  r   ©	rd   rU  rè   rÛ  r  rŽ  r4   r‡  r‚  rs  s      r   rM  zPDFAxialShading.DictU	  ó}   € ØˆØ	�Š�”ÑÔÐØˆˆ-ÑÝ! $¤/Ñ2Ô2ˆˆ,‰Ý% d¤kÑ2Ô2ˆˆ(‰Ø ×*Ò*¨4¬=Ñ9Ô9ˆˆ*‰ØˆtÔÐ$Ð$ !Ð$Ð$Ð$r   NrŠ  r   r   r   rŒ  rŒ  L	  óR   € € € € € ØÔ"Ð%;Ñ;€HØÔ$ð (6ñ 6€Iðð ð ð
%ð %ð %ð %ð %r   rŒ  c                   óB   — e Zd Zej        dz   Zej        dz   Zd„ Zd„ ZdS )ÚPDFRadialShadingr�  r�  c	                 óJ   — ||||||f| _         || _        || _        |	| _        d S rH   r’  )
rE   r“  r”  Úr0r•  r–  Úr1r‡  rÛ  rH  s
             r   rƒ   zPDFRadialShading.__init__b	  s/   € Ø˜2˜r 2 r¨2Ð.ˆŒØ ˆŒØ$ˆŒØˆŒˆˆr   c                 óô   — i }|                      | j        ¦  «         d|d<   t          | j        ¦  «        |d<   t	          | j        ¦  «        |d<   |                     | j        ¦  «        |d<    | j        di |¤ŽS )Nr'   r~  rÛ  rŽ  r‡  r   r˜  rs  s      r   rM  zPDFRadialShading.Dictg	  r™  r   NrŠ  r   r   r   rœ  rœ  ^	  rš  r   rœ  Ú__main__z-There is no script interpretation for pdfdoc.r®  rH   )„Ú__version__rV   ra  r‡  rã  Úcollectionsr   r  r   Ú	reportlabr   r­   r   r   r   r	   r
   r   r   r   r   r   Úreportlab.lib.rl_accelr   r   r   r   r   Úhashlibr   Úsysr   Ú	Exceptionr   r!   r"   r#   r$   r%   rW  rC  rŠ   r0   r5   rA   ÚformNamerC   r2   rU   rY   ÚPDFtrueÚPDFfalseÚPDFnullr•   ri  ÚreÚcompilerl  rp  rv  rp   Úchrrè   rx   rÀ  rÆ  rÈ  rÏ  rà  r  rí  r  rA  r	  r  rü  r  r  rË   r  r(  r   r"  rC  rk   rn   r~  r£  r¥  r·  rÌ  rÏ  rr   rÑ  rs   r±  rÿ   rv   r3  rR  rY  rb  rj  rn  rr  r.  r]  r‘  r—  rš  r�  r¥  r¡  r¨  r«  r”  rí  ró  r?  r  rG  r  ré   rc  rm  ru  r}  r†  rŒ  rœ  r   r®   r   r   r   ú<module>r°     sÃ  ðð €ð	€ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð ð Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  Pð  PØ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð	ð 	ð 	ð 	ð 	ˆyñ 	ô 	ð 	ð &Ð ð €ð €ð €
ð 	€ð Ð Ø�dØðñ ô Ð ð=ð =ð =ð'ð 'ð 'ð 'ð4'ð 'ð 'ð €ðð ð ð ð ñ ô ð ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðð ð ð ð ˆyñ ô ð ð
`(ð `(ð `(ð `(ð `(�)ñ `(ô `(ð `(ðF €Ø€Ø
€ð%ð %ð %ð %ð %ˆiñ %ô %ð %ðð ð ð 
€	€	€	Ø�”
˜7Ñ#Ô#€Øð	ð 	ð 	ðð ð ðG*ð G*ð G*ð G*ð G*�	ñ G*ô G*ð G*ðR �C˜‘I”I   T¡¤ð ð ð ð ð+ ð + ð + ð + ð + �Iñ + ô + ð + ðZð ð ð ð ñ ô ð ð/ð /ð /ð4ð 4ð 4ð 4ð 4˜=ñ 4ô 4ð 4ðð ð ð ð Ð%9ñ ô ð ð((ð (ð (ð (ð (ñ (ô (ð (ð (Ð'Ñ)Ô)€ð	'ð 	'ð 	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð .Ð-Ñ/Ô/€ð(2ð (2ð (2ð (2ð (2�	ñ (2ô (2ð (2ðT	ð 	ð 	ð 	ðÐ ð
!ð !ð !ð !ð !ˆyñ !ô !ð !ð.ð ð ð ð �hñ ô ð ðð ð ð ð ˜	ñ ô ð ðkð kð kð kð k˜ñ kô kð kð&ð &ð &ð &ð &ˆiñ &ô &ð &ð<#-ð #-ð #-ð #-ð #- )ñ #-ô #-ð #-ðJ&ð &ð &ð &ð &˜Yñ &ô &ð &ð ð ð ð ð �ñ ô ð ð6'ð 'ð 'ð 'ð 'ˆ)ñ 'ô 'ð 'ð:3ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ðj ð  ð  ð  ð  ˆzñ  ô  ð  ð0T4ð T4ð T4ð T4ð T4ˆjñ T4ô T4ð T4ðn	ð 	ð 	ð 	ð 	˜Yñ 	ô 	ð 	ð&1ð &1ð &1ð &1ð &1�Jñ &1ô &1ð &1ðPHð Hð Hð Hð H�:ñ Hô Hð HðV
ð 
ð 
ð€ð$ð $ð $ð $ð $�9ñ $ô $ð $ð#ð #ð #ð #ð #˜ñ #ô #ð #ð~#ð ~#ð ~#ð ~#ð ~#�)ñ ~#ô ~#ð ~#ð@ð ð ð ð  ;Ð ð'ð 'ð 'ð 'ð 'ˆiñ 'ô 'ð 'ðT&"ð &"ð &"ð &"ð &"�ñ &"ô &"ð &"ðP(ð (ð (ð (ð (˜ñ (ô (ð (ð (ð (ð (ð (ð (�Zñ (ô (ð (ð6((ð ((ð ((ð ((ð ((˜*ñ ((ô ((ð ((ðTð ð ð ð Ð(ñ ô ð ð0ð 0ð 0ð#ð #ð #ð #ð #�9ñ #ô #ð #ð8ð 8ð 8ð 8ð 8ˆiñ 8ô 8ð 8ð(-ð -ð -ð -ð -�)ñ -ô -ð -ð`
#ð 
#ð 
#ð 
#ð 
#˜	ñ 
#ô 
#ð 
#ð#ð #ð #ð #ð #˜	ñ #ô #ð #ðð ð ð ð Ð*ñ ô ð ð#ð #ð #ð #ð #˜ñ #ô #ð #ðð ð ð ð Ð,ñ ô ð ð#ð #ð #ð #ð #˜ñ #ô #ð #ðð ð ð ð Ð,ñ ô ð ð#ð #ð #ð #ð #˜ñ #ô #ð #ð1$ð 1$ð 1$ð 1$ð 1$˜Iñ 1$ô 1$ð 1$ðr#ð #ð #ð #ð #�9ñ #ô #ð #ð4ð ð ð ð �lñ ô ð ðF>.ð >.ð >.ð >.ð >.�Yñ >.ô >.ð >.ð@"ð "ð "ð "ð "˜9ñ "ô "ð "ð  °lÐ	CÐ	C€ðS"ð S"ð S"ð S"ð S"�iñ S"ô S"ð S"ðj.ð .ð .ð .ð .ñ .ô .ð .ð`"ð "ð "ð "ð "�)ñ "ô "ð "ð8&ð &ð &ð &ð &˜[ñ &ô &ð &ð$&ð &ð &ð &ð &˜;ñ &ô &ð &ð""ð "ð "ð "ð "�ñ "ô "ð "ð2%ð %ð %ð %ð %˜ñ %ô %ð %ð%ð %ð %ð %ð %�jñ %ô %ð %ð$%ð %ð %ð %ð %�zñ %ô %ð %ð$ ˆZÒÐØ	€EÐ
9Ñ:Ô:Ð:Ð:Ð:ð Ðr   