§
    dÒ³gë†  ã                   ó²  — d dl Z d dl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 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z# ddl"m$Z$ ddl"m%Z% ddl"m&Z& ddl"m'Z' ddl"m(Z( ddl"m)Z) ddl*m+Z+ ddl*m,Z, ddl*m-Z- ddl*m.Z. ddl*m/Z/m0Z0 dd l*m1Z1 dd!l*m2Z2 dd"l*m3Z3 dd#l*m4Z4 dd$l5m6Z6 dd%l5m7Z7m8Z8m9Z9m:Z: dd&l5m;Z; dd'l5m<Z<  e j=        e>¦  «        Z? G d(„ d)e#¦  «        Z@ G d*„ d+e#¦  «        ZA e,d,¦  «        ZB e,d-¦  «        ZC e,d.¦  «        ZD e,d/¦  «        ZE e,d0¦  «        ZF G d1„ d2¦  «        ZGeeHe
eHeHeHf         e
eHeHeHeHf         f         ZI G d3„ d4¦  «        ZJ G d5„ d6¦  «        ZK G d7„ d8e1ee.e%f                  ¦  «        ZLe2e%         ZM	  G d9„ d:¦  «        ZNdS );é    N)ÚBytesIO)ÚDictÚListÚMappingÚOptionalÚSequenceÚTupleÚUnionÚcasté   )Úsettings)ÚCMap)ÚCMapBase)ÚCMapDB)ÚPDFColorSpace)ÚPREDEFINED_COLORSPACE)Ú	PDFDevice)Ú
PDFTextSeq)Ú
PDFCIDFont)ÚPDFFont)ÚPDFFontError)ÚPDFTrueTypeFont)ÚPDFType1Font)ÚPDFType3Font)ÚPDFPage)ÚPDFException)Ú	PDFObjRef)Ú	PDFStream)Ú
dict_value)Ú
list_value)Úresolve1)Ústream_value)ÚKWD)ÚLIT)ÚPSEOF)Ú	PSKeyword)Ú	PSLiteralÚPSTypeError)ÚPSStackParser)ÚPSStackType)Úkeyword_name©Úliteral_name)ÚMATRIX_IDENTITY)ÚMatrixÚPointÚPathSegmentÚRect)Úchoplist)Úmult_matrixc                   ó   — e Zd ZdS )ÚPDFResourceErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úP/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pdfminer/pdfinterp.pyr6   r6   -   ó   € € € € € Ø€Dr<   r6   c                   ó   — e Zd ZdS )ÚPDFInterpreterErrorNr7   r;   r<   r=   r@   r@   1   r>   r<   r@   ÚPDFÚTextÚFontÚFormÚImagec                   óH   — e Zd ZU eed<   eed<   d	d„Zdefd„Zd
d„Z	d	d„Z
dS )ÚPDFTextStateÚmatrixÚ
linematrixÚreturnNc                 óž   — d | _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        |                      ¦   «          d S )Nr   éd   )	ÚfontÚfontsizeÚ	charspaceÚ	wordspaceÚscalingÚleadingÚrenderÚriseÚreset©Úselfs    r=   Ú__init__zPDFTextState.__init__@   sK   € Ø'+ˆŒ	Ø ˆŒØ !ˆŒØ !ˆŒØ!ˆŒØˆŒØˆŒØˆŒ	Ø�
Š
‰Œˆˆˆr<   c                 ó¨   — d| j         ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d	| j        ›d
| j	        ›d�S )Nz<PDFTextState: font=z, fontsize=z, charspace=z, wordspace=z
, scaling=z
, leading=z	, render=z, rise=z	, matrix=z, linematrix=ú>)
rM   rN   rO   rP   rQ   rR   rS   rT   rH   rI   rV   s    r=   Ú__repr__zPDFTextState.__repr__M   sj   € € ð ”	�	�	Ø”��Ø”��Ø”��Ø”��Ø”��Ø”��Ø”	�	�	Ø”��Ø”��ðð	
r<   c                 ó  — t          ¦   «         }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        |S ©N)rG   rM   rN   rO   rP   rQ   rR   rS   rT   rH   rI   ©rW   Úobjs     r=   ÚcopyzPDFTextState.copy`   sj   € Ý‰nŒnˆØ”9ˆŒØ”}ˆŒØœˆŒØœˆŒØ”lˆŒØ”lˆŒØ”[ˆŒ
Ø”9ˆŒØ”[ˆŒ
ØœˆŒØˆ
r<   c                 ó,   — t           | _        d| _        d S )N©r   r   )r.   rH   rI   rV   s    r=   rU   zPDFTextState.resetn   s   € Ý%ˆŒØ ˆŒˆˆr<   ©rJ   N)rJ   rG   )r8   r9   r:   r/   Ú__annotations__r0   rX   Ústrr[   r`   rU   r;   r<   r=   rG   rG   <   s‚   € € € € € € Ø€N€N�NØÐÐÑð	ð 	ð 	ð 	ð
˜#ð 
ð 
ð 
ð 
ð&ð ð ð ð!ð !ð !ð !ð !ð !r<   rG   c                   ó*   — e Zd Zdd„Zdd„Zdefd„ZdS )ÚPDFGraphicStaterJ   Nc                 ó„   — d| _         d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _        d S ©Nr   ©	Ú	linewidthÚlinecapÚlinejoinÚ
miterlimitÚdashÚintentÚflatnessÚscolorÚncolorrV   s    r=   rX   zPDFGraphicState.__init__{   sI   € Ø !ˆŒØ)-ˆŒØ*.ˆŒØ,0ˆŒØ59ˆŒ	Ø(,ˆŒØ*.ˆŒð (,ˆŒð (,ˆŒˆˆr<   c                 óú   — t          ¦   «         }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        |S r]   )
rg   rk   rl   rm   rn   ro   rp   rq   rr   rs   r^   s     r=   r`   zPDFGraphicState.copyŠ   sc   € ÝÑÔˆØœˆŒØ”lˆŒØ”}ˆŒØœˆŒØ”9ˆŒØ”[ˆŒ
Ø”}ˆŒØ”[ˆŒ
Ø”[ˆŒ
Øˆ
r<   c                 ó˜   — d| j         ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d| j        ›d	| j        ›d
�S )Nz<PDFGraphicState: linewidth=z
, linecap=z, linejoin=z,  miterlimit=z, dash=z	, intent=z, flatness=z,  stroking color=z, non stroking color=rZ   rj   rV   s    r=   r[   zPDFGraphicState.__repr__—   sa   € € ð ”��Ø”��Ø”��Ø”��Ø”	�	�	Ø”��Ø”��Ø”��Ø”��ðð	
r<   rc   )rJ   rg   )r8   r9   r:   rX   r`   re   r[   r;   r<   r=   rg   rg   z   sW   € € € € € ð,ð ,ð ,ð ,ðð ð ð ð
˜#ð 
ð 
ð 
ð 
ð 
ð 
r<   rg   c                   óz   — e Zd ZdZddeddfd„Zdee         ddfd„Zdd
e	dede
fd„Zdedee	ef         defd„ZdS )ÚPDFResourceManagerz¸Repository of shared resources.

    ResourceManager facilitates reuse of shared resources
    such as fonts and images so that large objects are not
    allocated multiple times.
    TÚcachingrJ   Nc                 ó"   — || _         i | _        d S r]   )rx   Ú_cached_fonts)rW   rx   s     r=   rX   zPDFResourceManager.__init__²   s   € ØˆŒØ46ˆÔÐÐr<   Úprocsc                 ó8   — |D ]}|t           u rŒ|t          u rŒŒd S r]   )ÚLITERAL_PDFÚLITERAL_TEXT)rW   r{   Úprocs      r=   Úget_procsetzPDFResourceManager.get_procset¶   s:   € Øð 	ð 	ˆDØ•{Ð"Ð"ØØ�Ð%Ð%Øàð	ð 	r<   FÚcmapnameÚstrictc                 óx   — 	 t          j        |¦  «        S # t           j        $ r |r‚ t          ¦   «         cY S w xY wr]   )r   Úget_cmapÚCMapNotFoundr   )rW   r�   r‚   s      r=   r„   zPDFResourceManager.get_cmap¿   sM   € ð	Ý”? 8Ñ,Ô,Ð,øÝÔ"ð 	ð 	ð 	Øð ØÝ‘6”6ˆMˆMˆMð	øøøs   ‚ – 9¸9ÚobjidÚspecc                 ób  — |r|| j         v r| j         |         }�n”t                               d||¦  «         t          j        r|d         t
          urt          d¦  «        ‚d|v rt          |d         ¦  «        }nt          j        rt          d¦  «        ‚d}|dv rt          | |¦  «        }nï|dk    rt          | |¦  «        }nØ|d	k    rt          | |¦  «        }nÁ|d
v rt          | |¦  «        }n¬|dk    rxt          |d         ¦  «        }|sJ ‚t          |d         ¦  «                             ¦   «         }dD ]}||v rt          ||         ¦  «        ||<   Œ|                      d |¦  «        }n.t          j        rt          d|z  ¦  «        ‚t          | |¦  «        }|r| j        r
|| j         |<   |S )Nz#get_font: create: objid=%r, spec=%rÚTypezType is not /FontÚSubtypezFont Subtype is not specified.ÚType1)r‹   ÚMMType1ÚTrueTypeÚType3)ÚCIDFontType0ÚCIDFontType2ÚType0ÚDescendantFontsr   )ÚEncodingÚ	ToUnicodezInvalid Font spec: %r)rz   ÚlogÚdebugr   ÚSTRICTÚLITERAL_FONTr   r-   r   r   r   r   r    r   r`   r!   Úget_fontrx   )rW   r†   r‡   rM   ÚsubtypeÚdfontsÚsubspecÚks           r=   r™   zPDFResourceManager.get_fontÇ   sì  € Øð (	1�U˜dÔ0Ð0Ð0ØÔ% eÔ,ˆD‰Då�IŠIÐ;¸UÀDÑIÔIÐIÝŒð <Ø˜”<¥|Ð3Ð3Ý&Ð':Ñ;Ô;Ð;à˜DÐ Ð Ý& t¨I¤Ñ7Ô7��å”?ð IÝ&Ð'GÑHÔHÐHØ!�ØÐ.Ð.Ð.å# D¨$Ñ/Ô/��Ø˜JÒ&Ð&å& t¨TÑ2Ô2��Ø˜GÒ#Ð#å# D¨$Ñ/Ô/��ØÐ<Ð<Ð<å! $¨Ñ-Ô-��Ø˜GÒ#Ð#å# DÐ):Ô$;Ñ<Ô<�Ø���Ý$ V¨A¤YÑ/Ô/×4Ò4Ñ6Ô6�Ø2ð 7ð 7�AØ˜D�y�yÝ%-¨d°1¬gÑ%6Ô%6˜ ™
øØ—}’} T¨7Ñ3Ô3��å”?ð GÝ&Ð'>ÀÑ'EÑFÔFÐFÝ# D¨$Ñ/Ô/�Øð 1˜œð 1Ø,0�Ô" 5Ñ)Øˆr<   )T)F)r8   r9   r:   Ú__doc__ÚboolrX   r   Úobjectr€   re   r   r„   r   r   r™   r;   r<   r=   rw   rw   ª   sÌ   € € € € € ðð ð7ð 7 ð 7°ð 7ð 7ð 7ð 7ð ¨&Ô!1ð °dð ð ð ð ðð  ð ¨dð ¸xð ð ð ð ð*˜fð *¨G°C¸°KÔ,@ð *ÀWð *ð *ð *ð *ð *ð *r<   rw   c            	       óÎ   — e Zd Zdee         ddfd„Zdd„Zdeddfd„Zdd„Z	dded
e
deee
f         fd„Zdd„Z ed¦  «        Z ed¦  «        Z ed	¦  «        Zdededdfd„ZdS )ÚPDFContentParserÚstreamsrJ   Nc                 óL   — || _         d| _        t          j        | d ¦  «         d S ri   )r£   Úistreamr)   rX   )rW   r£   s     r=   rX   zPDFContentParser.__init__õ   s+   € ØˆŒØˆŒõ 	Ô˜t TÑ*Ô*Ð*Ð*Ð*r<   c                 ó  — | j         s„| j        t          | j        ¦  «        k     r0t	          | j        | j                 ¦  «        }| xj        dz  c_        nt          d¦  «        ‚t          |                     ¦   «         ¦  «        | _         d S d S )Nr   zUnexpected EOF, file truncated?)Úfpr¥   Úlenr£   r"   r%   r   Úget_data)rW   Ústrms     r=   ÚfillfpzPDFContentParser.fillfpý   s   € ØŒwð 	/ØŒ|�c $¤,Ñ/Ô/Ò/Ð/Ý# D¤L°´Ô$>Ñ?Ô?�Ø�” Ñ!�”�åÐ=Ñ>Ô>Ð>Ý˜dŸmšm™oœoÑ.Ô.ˆDŒGˆGˆGð	/ð 	/r<   Úposc                 óX   — |                       ¦   «          t          j        | |¦  «         d S r]   )r«   r)   Úseek)rW   r¬   s     r=   r®   zPDFContentParser.seek  s(   € Ø�Š‰ŒˆÝÔ˜4 Ñ%Ô%Ð%Ð%Ð%r<   c                 ó   — | j         t          | j        ¦  «        k     rd S 	 |                      ¦   «          | j                             ¦   «         | _        | j                             | j        ¦  «        | _        | j        rnd | _        Œfd| _         d S )Nr   r   )	Úcharposr¨   Úbufr«   r§   ÚtellÚbufposÚreadÚBUFSIZrV   s    r=   ÚfillbufzPDFContentParser.fillbuf
  s|   € ØŒ<�#˜dœh™-œ-Ò'Ð'ØˆFð	Ø�KŠK‰MŒMˆMØœ'Ÿ,š,™.œ.ˆDŒKØ”w—|’| D¤KÑ0Ô0ˆDŒHØŒxð ØØˆDŒGð	ð ˆŒˆˆr<   ó   EIÚtargetc                 ój  — |                       |¦  «         d}d}|t          |¦  «        k    �rR|                      ¦   «          |rš| j        | j                 }t          |f¦  «        }||z  }| xj        dz  c_        t          |¦  «        |k    r|                     ¦   «         r|dz  }nÄ|t          |¦  «        k     r |t          ||         f¦  «        k    r|dz  }n‘d}nŽ	 | j                             |d         | j        ¦  «        }|| j        | j        |dz   …         z  }|dz   | _        d}n@# t          $ r3 || j        | j        d …         z  }t          | j        ¦  «        | _        Y nw xY w|t          |¦  «        k    �°R|d t          |¦  «        dz    …         }t          j
        dd|¦  «        }||fS )Nr   r<   r   s   (\x0d\x0a|[\x0d\x0a])$)r®   r¨   r¶   r±   r°   ÚbytesÚisspaceÚindexÚ
ValueErrorÚreÚsub)rW   r¬   r¸   ÚiÚdataÚciÚcÚjs           r=   Úget_inline_dataz PDFContentParser.get_inline_data  sº  € Ø�	Š	�#‰ŒˆØˆØˆØ•3�v‘;”;ÒÑØ�LŠL‰NŒNˆNØð 1Ø”X˜dœlÔ+�Ý˜2˜%‘L”L�Ø˜‘	�Ø�” Ñ!�”Ý�v‘;”; !Ò#Ð#¨¯	ª	©¬Ð#Ø˜‘F�A�AØ�˜V™œ’_�_¨­u°f¸Q´i°\Ñ/BÔ/BÒ)CÐ)CØ˜‘F�A�Aà�A�Að1ØœŸš v¨a¤y°$´,Ñ?Ô?�AØ˜DœH T¤\°A¸±EÐ%9Ô:Ñ:�DØ#$ q¡5�D”LØ�A�AøÝ!ð 1ð 1ð 1Ø˜DœH T¤\ ^ ^Ô4Ñ4�DÝ#& t¤x¡=¤=�D”L�L�Lð1øøøð' •3�v‘;”;ÒÑð, Ð(�˜F™œ a™Ð(Ð(Ô)ˆÝŒvÐ0°#°tÑ<Ô<ˆØ�Tˆ{Ðs   ÃAD, Ä,:E)Å(E)c                 ó>   —  | j         |                      ¦   «         Ž  d S r]   )Úadd_resultsÚpopallrV   s    r=   ÚflushzPDFContentParser.flush4  s    € ØˆÔ˜$Ÿ+š+™-œ-Ð(Ð(Ð(Ð(r<   s   BIs   IDÚtokenc                 óx  — || j         u r|                      |d¦  «         d S || j        u rø	 |                      d¦  «        \  }}t	          |¦  «        dz  dk    r$d                     |¦  «        }t          |¦  «        ‚d„ t          d|¦  «        D ¦   «         }|                      |t	          d¦  «        z   ¦  «        \  }}t          ||¦  «        }|  
                    ||f¦  «         |  
                    || j        f¦  «         d S # t          $ r t          j        r‚ Y d S w xY w|  
                    ||f¦  «         d S )NÚinlineé   r   z"Invalid dictionary construct: {!r}c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r;   r,   )Ú.0r�   Úvs      r=   ú
<dictcomp>z/PDFContentParser.do_keyword.<locals>.<dictcomp>E  s$   € ÐHÐHÐH©F¨Q°•\ !‘_”_ aÐHÐHÐHr<   s   ID )Ú
KEYWORD_BIÚ
start_typeÚ
KEYWORD_IDÚend_typer¨   Úformatr(   r3   rÅ   r   ÚpushÚ
KEYWORD_EIr   r—   )	rW   r¬   rÊ   Ú_ÚobjsÚ	error_msgÚdrÁ   r_   s	            r=   Ú
do_keywordzPDFContentParser.do_keyword;  s^  € Ø�D”OÐ#Ð#à�OŠO˜C Ñ*Ô*Ð*Ð*Ð*Ø�d”oÐ%Ð%ðØ ŸMšM¨(Ñ3Ô3‘	��DÝ�t‘9”9˜q‘= AÒ%Ð%Ø D× KÒ KÈDÑ QÔ Q�IÝ% iÑ0Ô0Ð0ØHÐHµh¸qÀ$Ñ6GÔ6GÐHÑHÔH�Ø"×2Ò2°3½¸V¹¼Ñ3DÑEÔE‘��dÝ  4Ñ(Ô(�Ø—	’	˜3 ˜*Ñ%Ô%Ð%Ø—	’	˜3 ¤Ð0Ñ1Ô1Ð1Ð1Ð1øÝð ð ð Ý”?ð Øðð ð ðøøøð �IŠI�s˜E�lÑ#Ô#Ð#Ð#Ð#s   ¬CD ÄD ÄD rc   )r·   )r8   r9   r:   r   r    rX   r«   Úintr®   r¶   rº   r	   rÅ   rÉ   r#   rÒ   rÔ   rØ   r&   rÝ   r;   r<   r=   r¢   r¢   ô   s"  € € € € € ð+ ¨Ô 0ð +°Tð +ð +ð +ð +ð/ð /ð /ð /ð&˜ð & ð &ð &ð &ð &ð
ð 
ð 
ð 
ðð  3ð °ð À%ÈÈUÈ
ÔBSð ð ð ð ð<)ð )ð )ð )ð ��U‘”€JØ��U‘”€JØ��U‘”€Jð$˜cð $¨)ð $¸ð $ð $ð $ð $ð $ð $r<   r¢   c                   óv  — e Zd ZdZdededdfd„Zd“d„Zdee	e	f         ddfd	„Z
d
eddfd„Zdeddfd„Zdedee         fd„Zdeeeef         fd„Zdeeeef         ddfd„Zd”d„Zd”d„Zdededededededdfd„Zdeddfd„Zdeddfd„Zd eddfd!„Zd"eddfd#„Zd$ed%eddfd&„Zd'eddfd(„Zd)eddfd*„Z d+eddfd,„Z!d-ed.eddfd/„Z"d-ed.eddfd0„Z#d1ed2ed3ed4ed5ed6eddfd7„Z$d3ed4ed5ed6eddf
d8„Z%d1ed2ed5ed6eddf
d9„Z&d”d:„Z'd-ed.ed;ed<eddf
d=„Z(d”d>„Z)d”d?„Z*d”d@„Z+d”dA„Z,d”dB„Z-d”dC„Z.d”dD„Z/d”dE„Z0d”dF„Z1d”dG„Z2d”dH„Z3d”dI„Z4d+eddfdJ„Z5d+eddfdK„Z6dLeddfdM„Z7dLeddfdN„Z8dOedPedQeddfdR„Z9dOedPedQeddfdS„Z:dTedUed.edVeddf
dW„Z;dTedUed.edVeddf
dX„Z<d”dY„Z=d”dZ„Z>d”d[„Z?d”d\„Z@d+e	ddfd]„ZAd”d^„ZBd”d_„ZCd”d`„ZDd”da„ZEdbeddfdc„ZFdbeddeddfde„ZGdbeddfdf„ZHdbeddeddfdg„ZId”dh„ZJdieddfdj„ZKdieddfdk„ZLdleddfdm„ZMdneddfdo„ZNdpedqeddfdr„ZOdseddfdt„ZPdueddfdv„ZQdwedxeddfdy„ZRdwedxeddfdz„ZSd{edQedTed|ed}ed~eddfd„ZTd”d€„ZUd�eddfd‚„ZVdƒeddfd„„ZWdƒeddfd…„ZXd†ed‡edƒeddfdˆ„ZYd”d‰„ZZd”dŠ„Z[deddfd‹„Z\dŒeddfd�„Z]dŽe^ddfd�„Z_e`fdee	e	f         d�eae	         d
eddfd‘„Zbd�eae	         ddfd’„ZcdS )•ÚPDFPageInterpreterzhProcessor for the content of a PDF page

    Reference: PDF Reference, Appendix A, Operator Summary
    ÚrsrcmgrÚdevicerJ   Nc                 ó"   — || _         || _        d S r]   )rá   râ   )rW   rá   râ   s      r=   rX   zPDFPageInterpreter.__init__[  s   € ØˆŒØˆŒØˆr<   c                 óB   — |                       | j        | j        ¦  «        S r]   )Ú	__class__rá   râ   rV   s    r=   ÚdupzPDFPageInterpreter.dup`  s   € Ø�~Š~˜dœl¨D¬KÑ8Ô8Ð8r<   Ú	resourcesc                 ó˜  — || _         i | _        i | _        t          j        ¦   «         | _        |sdS dt          dt          t                   fd„}t          |¦  «         
                    ¦   «         D �]X\  }}t                               d||¦  «         |dk    rxt          |¦  «         
                    ¦   «         D ]U\  }}d}t          |t          ¦  «        r|j        }t          |¦  «        }| j                             ||¦  «        | j        |<   ŒVŒ |dk    rLt          |¦  «         
                    ¦   «         D ])\  }} |t%          |¦  «        ¦  «        }	|	�
|	| j        |<   Œ*Œò|dk    r)| j                             t)          |¦  «        ¦  «         �Œ!|d	k    r1t          |¦  «         
                    ¦   «         D ]\  }
}|| j        |
<   Œ�ŒZdS )
z@Prepare the fonts and XObjects listed in the Resource attribute.Nr‡   rJ   c           	      ó  — t          | t          ¦  «        rt          | d         ¦  «        }nt          | ¦  «        }|dk    rQt          | t          ¦  «        r<dt          | ¦  «        k    r)t	          |t          | d         ¦  «        d         ¦  «        S |dk    rXt          | t          ¦  «        rCdt          | ¦  «        k    r0t	          |t          t          | d         ¦  «        ¦  «        ¦  «        S t          j        |¦  «        S )Nr   ÚICCBasedrÍ   r   ÚNÚDeviceN)	Ú
isinstanceÚlistr-   r¨   r   r"   r    r   Úget)r‡   Únames     r=   Úget_colorspacez9PDFPageInterpreter.init_resources.<locals>.get_colorspacel  sÚ   € Ý˜$¥Ñ%Ô%ð *Ý# D¨¤GÑ,Ô,��å# DÑ)Ô)�Ø�zÒ!Ð!¥j°µtÑ&<Ô&<Ð!ÀÅcÈ$ÁiÄiÂÀÝ$ T­<¸¸Q¼Ñ+@Ô+@ÀÔ+EÑFÔFÐFØ˜Ò"Ð"¥z°$½Ñ'=Ô'=Ð"À!ÅsÈ4ÁyÄyÂ.À.Ý$ T­3­z¸$¸q¼'Ñ/BÔ/BÑ+CÔ+CÑDÔDÐDå,Ô0°Ñ6Ô6Ð6r<   zResource: %r: %rrC   Ú
ColorSpaceÚProcSetÚXObject)rç   ÚfontmapÚxobjmapr   r`   Úcsmapr    r   r   r   Úitemsr•   r–   rí   r   r†   rá   r™   r!   r€   r    )rW   rç   rñ   r�   rÐ   Úfontidr‡   r†   ÚcsidÚ
colorspaceÚxobjidÚxobjstrms               r=   Úinit_resourcesz!PDFPageInterpreter.init_resourcesc  sê  € à"ˆŒØ.0ˆŒØˆŒÝ/DÔ/IÑ/KÔ/KˆŒ
Øð 	ØˆFð
	7¥ð 
	7­Hµ]Ô,Cð 
	7ð 
	7ð 
	7ð 
	7õ ! Ñ+Ô+×1Ò1Ñ3Ô3ð 	4ñ 	4‰FˆQ�Ý�IŠIÐ(¨!¨QÑ/Ô/Ð/Ø�FŠ{ˆ{Ý&0°¡m¤m×&9Ò&9Ñ&;Ô&;ð Nð N‘N�V˜TØ �EÝ! $­	Ñ2Ô2ð +Ø $¤
˜Ý% dÑ+Ô+�DØ+/¬<×+@Ò+@ÀÈÑ+MÔ+M�D”L Ñ(Ð(ðNð �lÒ"Ð"Ý$.¨q¡M¤M×$7Ò$7Ñ$9Ô$9ð 6ð 6‘L�T˜4Ø!/ µ¸±´Ñ!?Ô!?�JØ!Ð-Ø+5˜œ
 4Ñ(øð6ð �i’�Ø”×(Ò(­°A©¬Ñ7Ô7Ð7Ñ7Ø�i’�Ý*4°Q©-¬-×*=Ò*=Ñ*?Ô*?ð 4ð 4Ñ&�V˜XØ+3�D”L Ñ(Ð(ùØˆr<   Úctmc                 óp  — g | _         || _        | j                             | j        ¦  «         t	          ¦   «         | _        t          ¦   «         | _        g | _        g | _	        d| _
        d| _        | j        r?t          t          | j                             ¦   «         ¦  «        ¦  «        x| _
        | _        dS )z<Initialize the text and graphic states for rendering a page.N)Úgstackrÿ   râ   Úset_ctmrG   Ú	textstaterg   ÚgraphicstateÚcurpathÚargstackÚscsÚncsr÷   ÚnextÚiterÚvalues)rW   rÿ   s     r=   Ú
init_statezPDFPageInterpreter.init_state�  s�   € ð KMˆŒØˆŒØŒ×Ò˜DœHÑ%Ô%Ð%Ý%™œˆŒÝ+Ñ-Ô-ˆÔØ*,ˆŒà)+ˆŒà,0ˆŒØ,0ˆŒØŒ:ð 	BÝ"&¥t¨D¬J×,=Ò,=Ñ,?Ô,?Ñ'@Ô'@Ñ"AÔ"AÐAˆDŒH�t”xØˆr<   r_   c                 ó:   — | j                              |¦  «         d S r]   )r  Úappendr^   s     r=   r×   zPDFPageInterpreter.pushŸ  s   € ØŒ×Ò˜SÑ!Ô!Ð!Øˆr<   Únc                 ó`   — |dk    rg S | j         | d …         }| j         d | …         | _         |S ri   )r  )rW   r  Úxs      r=   ÚpopzPDFPageInterpreter.pop£  s;   € Ø�Š6ˆ6ØˆIØŒM˜1˜"˜#˜#ÔˆØœ c¨ r cÔ*ˆŒØˆr<   c                 ór   — | j         | j                             ¦   «         | j                             ¦   «         fS r]   )rÿ   r  r`   r  rV   s    r=   Úget_current_statez$PDFPageInterpreter.get_current_stateª  s.   € Ø”˜$œ.×-Ò-Ñ/Ô/°Ô1B×1GÒ1GÑ1IÔ1IÐJÐJr<   Ústatec                 ón   — |\  | _         | _        | _        | j                             | j         ¦  «         d S r]   )rÿ   r  r  râ   r  )rW   r  s     r=   Úset_current_statez$PDFPageInterpreter.set_current_state­  s4   € ð 9>Ñ5ˆŒ�4”> 4Ô#4ØŒ×Ò˜DœHÑ%Ô%Ð%Øˆr<   c                 ó^   — | j                              |                      ¦   «         ¦  «         dS )zSave graphics stateN)r  r  r  rV   s    r=   Údo_qzPDFPageInterpreter.do_q´  s)   € àŒ×Ò˜4×1Ò1Ñ3Ô3Ñ4Ô4Ð4Øˆr<   c                 ól   — | j         r,|                      | j                              ¦   «         ¦  «         dS )zRestore graphics stateN)r  r  r  rV   s    r=   Údo_QzPDFPageInterpreter.do_Q¹  s1   € àŒ;ð 	6Ø×"Ò" 4¤;§?¢?Ñ#4Ô#4Ñ5Ô5Ð5Øˆr<   Úa1Úb1Úc1Úd1Úe1Úf1c                 óª   — t          t          t          ||||||f¦  «        | j        ¦  «        | _        | j                             | j        ¦  «         dS )z3Concatenate matrix to current transformation matrixN)r4   r   r/   rÿ   râ   r  )rW   r  r  r  r  r   r!  s          r=   Údo_cmzPDFPageInterpreter.do_cm¿  sK   € õ �t¥F¨R°°R¸¸RÀÐ,DÑEÔEÀtÄxÑPÔPˆŒØŒ×Ò˜DœHÑ%Ô%Ð%Øˆr<   rk   c                 óD   — t          t          |¦  «        | j        _        dS )zSet line widthN)r   Úfloatr  rk   )rW   rk   s     r=   Údo_wzPDFPageInterpreter.do_wÍ  s   € å&*­5°)Ñ&<Ô&<ˆÔÔ#Øˆr<   rl   c                 ó   — || j         _        dS )zSet line cap styleN)r  rl   )rW   rl   s     r=   Údo_JzPDFPageInterpreter.do_JÒ  s   € à$+ˆÔÔ!Øˆr<   rm   c                 ó   — || j         _        dS )zSet line join styleN)r  rm   )rW   rm   s     r=   Údo_jzPDFPageInterpreter.do_j×  ó   € à%-ˆÔÔ"Øˆr<   rn   c                 ó   — || j         _        dS )zSet miter limitN)r  rn   )rW   rn   s     r=   Údo_MzPDFPageInterpreter.do_MÜ  s   € à'1ˆÔÔ$Øˆr<   ro   Úphasec                 ó"   — ||f| j         _        dS )zSet line dash patternN)r  ro   )rW   ro   r.  s      r=   Údo_dzPDFPageInterpreter.do_dá  s   € à"&¨ ˆÔÔØˆr<   rp   c                 ó   — || j         _        dS )zSet color rendering intentN)r  rp   )rW   rp   s     r=   Údo_rizPDFPageInterpreter.do_riæ  s   € à#)ˆÔÔ Øˆr<   rq   c                 ó   — || j         _        dS )zSet flatness toleranceN)r  rq   )rW   rq   s     r=   Údo_izPDFPageInterpreter.do_ië  r+  r<   rð   c                 ó   — dS )z7Set parameters from graphics state parameter dictionaryNr;   ©rW   rð   s     r=   Údo_gszPDFPageInterpreter.do_gsð  s	   € ð 	ˆr<   r  Úyc                 óŒ   — | j                              dt          t          |¦  «        t          t          |¦  «        f¦  «         dS )zBegin new subpathÚmN©r  r  r   r%  ©rW   r  r8  s      r=   Údo_mzPDFPageInterpreter.do_mõ  ó4   € àŒ×Ò˜S¥$¥u¨a¡.¤.µ$µu¸a±.´.ÐAÑBÔBÐBØˆr<   c                 óŒ   — | j                              dt          t          |¦  «        t          t          |¦  «        f¦  «         dS )z$Append straight line segment to pathÚlNr;  r<  s      r=   Údo_lzPDFPageInterpreter.do_lú  r>  r<   Úx1Úy1Úx2Úy2Úx3Úy3c                 ó,  — | j                              dt          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f¦  «         dS )z4Append curved segment to path (three control points)rÃ   Nr;  )rW   rB  rC  rD  rE  rF  rG  s          r=   Údo_czPDFPageInterpreter.do_cÿ  so   € ð 	Œ×ÒàÝ•U˜B‘”Ý•U˜B‘”Ý•U˜B‘”Ý•U˜B‘”Ý•U˜B‘”Ý•U˜B‘”ðñ
	
ô 
	
ð 
	
ð 	ˆr<   c           
      óÜ   — | j                              dt          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f¦  «         dS )z8Append curved segment to path (initial point replicated)rÐ   Nr;  )rW   rD  rE  rF  rG  s        r=   Údo_vzPDFPageInterpreter.do_v  óR   € àŒ×ÒØ•$•u˜b‘/”/¥4­¨r¡?¤?µD½À±O´OÅTÍ%ÐQSÁ_Ä_ÐUñ	
ô 	
ð 	
ð 	ˆr<   c           
      óÜ   — | j                              dt          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f¦  «         dS )z6Append curved segment to path (final point replicated)r8  Nr;  )rW   rB  rC  rF  rG  s        r=   Údo_yzPDFPageInterpreter.do_y  rL  r<   c                 ó:   — | j                              d¦  «         dS )zClose subpath©ÚhN)r  r  rV   s    r=   Údo_hzPDFPageInterpreter.do_h$  s   € àŒ×Ò˜FÑ#Ô#Ð#Øˆr<   ÚwrQ  c                 óâ  — t          t          |¦  «        }t          t          |¦  «        }t          t          |¦  «        }t          t          |¦  «        }| j                             d||f¦  «         | j                             d||z   |f¦  «         | j                             d||z   ||z   f¦  «         | j                             d|||z   f¦  «         | j                             d¦  «         dS )zAppend rectangle to pathr:  r@  rP  N)r   r%  r  r  )rW   r  r8  rS  rQ  s        r=   Údo_rezPDFPageInterpreter.do_re)  sÒ   € å•˜‰NŒNˆÝ•˜‰NŒNˆÝ•˜‰NŒNˆÝ•˜‰NŒNˆØŒ×Ò˜S ! Q˜KÑ(Ô(Ð(ØŒ×Ò˜S ! a¡%¨˜OÑ,Ô,Ð,ØŒ×Ò˜S ! a¡%¨¨Q©Ð/Ñ0Ô0Ð0ØŒ×Ò˜S ! Q¨¡U˜OÑ,Ô,Ð,ØŒ×Ò˜FÑ#Ô#Ð#Øˆr<   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )zStroke pathTFN©râ   Ú
paint_pathr  r  rV   s    r=   Údo_SzPDFPageInterpreter.do_S6  s1   € àŒ×Ò˜tÔ0°$¸¸uÀdÄlÑSÔSÐSØˆŒØˆr<   c                 óV   — |                       ¦   «          |                      ¦   «          dS )zClose and stroke pathN)rR  rY  rV   s    r=   Údo_szPDFPageInterpreter.do_s<  ó!   € à�	Š	‰ŒˆØ�	Š	‰ŒˆØˆr<   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )z+Fill path using nonzero winding number ruleFTNrW  rV   s    r=   Údo_fzPDFPageInterpreter.do_fB  s1   € àŒ×Ò˜tÔ0°%¸¸uÀdÄlÑSÔSÐSØˆŒØˆr<   c                 ó*   — |                       ¦   «         S )z6Fill path using nonzero winding number rule (obsolete))r^  rV   s    r=   Údo_FzPDFPageInterpreter.do_FH  s   € à�yŠy‰{Œ{Ðr<   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )zFill path using even-odd ruleFTNrW  rV   s    r=   Údo_f_azPDFPageInterpreter.do_f_aL  s1   € àŒ×Ò˜tÔ0°%¸¸tÀTÄ\ÑRÔRÐRØˆŒØˆr<   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )z6Fill and stroke path using nonzero winding number ruleTFNrW  rV   s    r=   Údo_BzPDFPageInterpreter.do_BR  s1   € àŒ×Ò˜tÔ0°$¸¸eÀTÄ\ÑRÔRÐRØˆŒØˆr<   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )z(Fill and stroke path using even-odd ruleTNrW  rV   s    r=   Údo_B_azPDFPageInterpreter.do_B_aX  s1   € àŒ×Ò˜tÔ0°$¸¸dÀDÄLÑQÔQÐQØˆŒØˆr<   c                 óV   — |                       ¦   «          |                      ¦   «          dS )z>Close, fill, and stroke path using nonzero winding number ruleN)rR  rd  rV   s    r=   Údo_bzPDFPageInterpreter.do_b^  r\  r<   c                 óV   — |                       ¦   «          |                      ¦   «          dS )z0Close, fill, and stroke path using even-odd ruleN)rR  rf  rV   s    r=   Údo_b_azPDFPageInterpreter.do_b_ad  s!   € à�	Š	‰ŒˆØ�Š‰ŒˆØˆr<   c                 ó   — g | _         dS )z$End path without filling or strokingN)r  rV   s    r=   Údo_nzPDFPageInterpreter.do_nj  s   € àˆŒØˆr<   c                 ó   — dS )z3Set clipping path using nonzero winding number ruleNr;   rV   s    r=   Údo_WzPDFPageInterpreter.do_Wo  ó   € àˆr<   c                 ó   — dS )z%Set clipping path using even-odd ruleNr;   rV   s    r=   Údo_W_azPDFPageInterpreter.do_W_as  ro  r<   c                 ó¤   — 	 | j         t          |¦  «                 | _        n.# t          $ r! t          j        rt          d|z  ¦  «        ‚Y nw xY wdS )zOSet color space for stroking operations

        Introduced in PDF 1.1
        úUndefined ColorSpace: %rN)r÷   r-   r  ÚKeyErrorr   r—   r@   r6  s     r=   Údo_CSzPDFPageInterpreter.do_CSw  sq   € ð
	MØ”z¥,¨tÑ"4Ô"4Ô5ˆDŒHˆHøÝð 	Mð 	Mð 	MÝŒð MÝ)Ð*DÀtÑ*KÑLÔLÐLðMð Mð	Møøøð 	ˆó   ‚" ¢(AÁAc                 ó¤   — 	 | j         t          |¦  «                 | _        n.# t          $ r! t          j        rt          d|z  ¦  «        ‚Y nw xY wdS )z*Set color space for nonstroking operationsrs  N)r÷   r-   r  rt  r   r—   r@   r6  s     r=   Údo_cszPDFPageInterpreter.do_csƒ  sq   € ð	MØ”z¥,¨tÑ"4Ô"4Ô5ˆDŒHˆHøÝð 	Mð 	Mð 	MÝŒð MÝ)Ð*DÀtÑ*KÑLÔLÐLðMð Mð	Møøøð 	ˆrv  Úgrayc                 óh   — t          t          |¦  «        | j        _        | j        d         | _        dS )z&Set gray level for stroking operationsÚ
DeviceGrayN©r   r%  r  rr   r÷   r  ©rW   ry  s     r=   Údo_GzPDFPageInterpreter.do_GŒ  ó*   € å#'­¨tÑ#4Ô#4ˆÔÔ Ø”:˜lÔ+ˆŒØˆr<   c                 óh   — t          t          |¦  «        | j        _        | j        d         | _        dS )z)Set gray level for nonstroking operationsr{  N©r   r%  r  rs   r÷   r  r}  s     r=   Údo_gzPDFPageInterpreter.do_g’  r  r<   ÚrÚgÚbc                 óº   — t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f| j        _        | j        d         | _        dS )z%Set RGB color for stroking operationsÚ	DeviceRGBNr|  ©rW   rƒ  r„  r…  s       r=   Údo_RGzPDFPageInterpreter.do_RG˜  ó@   € å$(­°¡N¤NµD½À±N´NÅDÍÐPQÁNÄNÐ#SˆÔÔ Ø”:˜kÔ*ˆŒØˆr<   c                 óº   — t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f| j        _        | j        d         | _        dS )z(Set RGB color for nonstroking operationsr‡  Nr�  rˆ  s       r=   Údo_rgzPDFPageInterpreter.do_rgž  rŠ  r<   rÃ   r:  r�   c                 óâ   — t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f| j        _        | j        d         | _        dS )z&Set CMYK color for stroking operationsÚ
DeviceCMYKNr|  ©rW   rÃ   r:  r8  r�   s        r=   Údo_KzPDFPageInterpreter.do_K¤  óR   € õ •˜‰NŒNÝ•˜‰NŒNÝ•˜‰NŒNÝ•˜‰NŒNð	$
ˆÔÔ ð ”:˜lÔ+ˆŒØˆr<   c                 óâ   — t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        t          t          |¦  «        f| j        _        | j        d         | _        dS )z)Set CMYK color for nonstroking operationsrŽ  Nr�  r�  s        r=   Údo_kzPDFPageInterpreter.do_k¯  r‘  r<   c                 óÌ   — | j         r| j         j        }nt          j        rt	          d¦  «        ‚d}t          t          |                      |¦  «        ¦  «        | j        _	        dS )z"Set color for stroking operations.úNo colorspace specified!r   N)
r  Úncomponentsr   r—   r@   r   ÚColorr  r  rr   ©rW   r  s     r=   Údo_SCNzPDFPageInterpreter.do_SCNº  ó[   € àŒ8ð 	Ø”Ô$ˆAˆAåŒð FÝ)Ð*DÑEÔEÐEØˆAÝ#'­¨t¯xªx¸©{¬{Ñ#;Ô#;ˆÔÔ Øˆr<   c                 óÌ   — | j         r| j         j        }nt          j        rt	          d¦  «        ‚d}t          t          |                      |¦  «        ¦  «        | j        _	        dS )ú$Set color for nonstroking operationsr•  r   N)
r  r–  r   r—   r@   r   r—  r  r  rs   r˜  s     r=   Údo_scnzPDFPageInterpreter.do_scnÅ  rš  r<   c                 ó.   — |                       ¦   «          dS )z!Set color for stroking operationsN)r™  rV   s    r=   Údo_SCzPDFPageInterpreter.do_SCÐ  ó   € à�Š‰ŒˆØˆr<   c                 ó.   — |                       ¦   «          dS )rœ  N)r�  rV   s    r=   Údo_sczPDFPageInterpreter.do_scÕ  r   r<   c                 ó   — dS )z%Paint area defined by shading patternNr;   r6  s     r=   Údo_shzPDFPageInterpreter.do_shÚ  ro  r<   c                 ó8   — | j                              ¦   «          dS )zÓBegin text object

        Initializing the text matrix, Tm, and the text line matrix, Tlm, to
        the identity matrix. Text objects cannot be nested; a second BT cannot
        appear before an ET.
        N)r  rU   rV   s    r=   Údo_BTzPDFPageInterpreter.do_BTÞ  s   € ð 	Œ×ÒÑÔÐØˆr<   c                 ó   — dS )zEnd a text objectNr;   rV   s    r=   Údo_ETzPDFPageInterpreter.do_ETè  ro  r<   c                 ó   — dS )zBegin compatibility sectionNr;   rV   s    r=   Údo_BXzPDFPageInterpreter.do_BXì  ro  r<   c                 ó   — dS )zEnd compatibility sectionNr;   rV   s    r=   Údo_EXzPDFPageInterpreter.do_EXð  ro  r<   Útagc                 ó`   — | j                              t          t          |¦  «        ¦  «         dS )zDefine marked-content pointN©râ   Údo_tagr   r'   ©rW   r­  s     r=   Údo_MPzPDFPageInterpreter.do_MPô  s'   € àŒ×Ò�4¥	¨3Ñ/Ô/Ñ0Ô0Ð0Øˆr<   Úpropsc                 ób   — | j                              t          t          |¦  «        |¦  «         dS )z.Define marked-content point with property listNr¯  ©rW   r­  r³  s      r=   Údo_DPzPDFPageInterpreter.do_DPù  s)   € àŒ×Ò�4¥	¨3Ñ/Ô/°Ñ7Ô7Ð7Øˆr<   c                 ó`   — | j                              t          t          |¦  «        ¦  «         dS )zBegin marked-content sequenceN©râ   Ú	begin_tagr   r'   r±  s     r=   Údo_BMCzPDFPageInterpreter.do_BMCþ  s'   € àŒ×Ò�d¥9¨cÑ2Ô2Ñ3Ô3Ð3Øˆr<   c                 ób   — | j                              t          t          |¦  «        |¦  «         dS )z0Begin marked-content sequence with property listNr¸  rµ  s      r=   Údo_BDCzPDFPageInterpreter.do_BDC  s)   € àŒ×Ò�d¥9¨cÑ2Ô2°EÑ:Ô:Ð:Øˆr<   c                 ó8   — | j                              ¦   «          dS )zEnd marked-content sequenceN)râ   Úend_tagrV   s    r=   Údo_EMCzPDFPageInterpreter.do_EMC  s   € àŒ×ÒÑÔÐØˆr<   Úspacec                 óD   — t          t          |¦  «        | j        _        dS )zªSet character spacing.

        Character spacing is used by the Tj, TJ, and ' operators.

        :param space: a number expressed in unscaled text space units.
        N)r   r%  r  rO   ©rW   rÀ  s     r=   Údo_TczPDFPageInterpreter.do_Tc  ó   € õ $(­¨uÑ#5Ô#5ˆŒÔ Øˆr<   c                 óD   — t          t          |¦  «        | j        _        dS )z£Set the word spacing.

        Word spacing is used by the Tj, TJ, and ' operators.

        :param space: a number expressed in unscaled text space units
        N)r   r%  r  rP   rÂ  s     r=   Údo_TwzPDFPageInterpreter.do_Tw  rÄ  r<   Úscalec                 óD   — t          t          |¦  «        | j        _        dS )zuSet the horizontal scaling.

        :param scale: is a number specifying the percentage of the normal width
        N)r   r%  r  rQ   )rW   rÇ  s     r=   Údo_TzzPDFPageInterpreter.do_Tz!  s   € õ
 "&¥e¨UÑ!3Ô!3ˆŒÔØˆr<   rR   c                 óF   — t          t          |¦  «         | j        _        dS )z©Set the text leading.

        Text leading is used only by the T*, ', and " operators.

        :param leading: a number expressed in unscaled text space units
        N)r   r%  r  rR   )rW   rR   s     r=   Údo_TLzPDFPageInterpreter.do_TL)  s    € õ #'¥u¨gÑ"6Ô"6Ð!6ˆŒÔØˆr<   rù   rN   c                 ó6  — 	 | j         t          |¦  «                 | j        _        nS# t          $ rF t
          j        rt          d|z  ¦  «        ‚| j         	                    di ¦  «        | j        _        Y nw xY wt          t          |¦  «        | j        _        dS )zÞSet the text font

        :param fontid: the name of a font resource in the Font subdictionary
            of the current resource dictionary
        :param fontsize: size is a number representing a scale factor.
        zUndefined Font id: %rN)rõ   r-   r  rM   rt  r   r—   r@   rá   r™   r   r%  rN   )rW   rù   rN   s      r=   Údo_TfzPDFPageInterpreter.do_Tf3  sŸ   € ð	BØ"&¤,­|¸FÑ/CÔ/CÔ"DˆDŒNÔÐøÝð 	Bð 	Bð 	BÝŒð LÝ)Ð*AÀFÑ*JÑKÔKÐKØ"&¤,×"7Ò"7¸¸bÑ"AÔ"AˆDŒNÔÐÐð	Bøøøõ #'¥u¨hÑ"7Ô"7ˆŒÔØˆs   ‚$' §AA7Á6A7rS   c                 óD   — t          t          |¦  «        | j        _        dS )zSet the text rendering modeN)r   rÞ   r  rS   )rW   rS   s     r=   Údo_TrzPDFPageInterpreter.do_TrC  s   € å $¥S¨&Ñ 1Ô 1ˆŒÔØˆr<   rT   c                 óD   — t          t          |¦  «        | j        _        dS )z`Set the text rise

        :param rise: a number expressed in unscaled text space units
        N)r   r%  r  rT   )rW   rT   s     r=   Údo_TszPDFPageInterpreter.do_TsH  s   € õ
 #¥5¨$Ñ/Ô/ˆŒÔØˆr<   ÚtxÚtyc                 óì   — t          t          |¦  «        }t          t          |¦  «        }| j        j        \  }}}}}}||||||z  ||z  z   |z   ||z  ||z  z   |z   f| j        _        d| j        _        dS )zMove text positionrb   N)r   r%  r  rH   rI   ©	rW   rÒ  rÓ  Úar…  rÃ   rÜ   ÚeÚfs	            r=   Údo_TdzPDFPageInterpreter.do_TdP  s}   € å•%˜‰_Œ_ˆÝ•%˜‰_Œ_ˆØ!œ^Ô2ÑˆˆAˆq�!�Q˜Ø!" A q¨!¨R°!©V°b¸1±f©_¸qÑ-@À"ÀqÁ&È2ÐPQÉ6Á/ÐTUÑBUÐ VˆŒÔØ$*ˆŒÔ!Øˆr<   c                 ó  — t          t          |¦  «        }t          t          |¦  «        }| j        j        \  }}}}}}||||||z  ||z  z   |z   ||z  ||z  z   |z   f| j        _        || j        _        d| j        _        dS )z"Move text position and set leadingrb   N)r   r%  r  rH   rR   rI   rÕ  s	            r=   Údo_TDzPDFPageInterpreter.do_TDY  s‡   € å•%˜‰_Œ_ˆÝ•%˜‰_Œ_ˆØ!œ^Ô2ÑˆˆAˆq�!�Q˜Ø!" A q¨!¨R°!©V°b¸1±f©_¸qÑ-@À"ÀqÁ&È2ÐPQÉ6Á/ÐTUÑBUÐ VˆŒÔØ!#ˆŒÔØ$*ˆŒÔ!Øˆr<   rÖ  rÜ   r×  rØ  c           	      óh   — t          t          ||||||f¦  «        | j        _        d| j        _        dS )z$Set text matrix and text line matrixrb   N)r   r/   r  rH   rI   ©rW   rÖ  r…  rÃ   rÜ   r×  rØ  s          r=   Údo_TmzPDFPageInterpreter.do_Tmc  s4   € õ !%¥V¨a°°A°q¸!¸QÐ-?Ñ @Ô @ˆŒÔØ$*ˆŒÔ!Øˆr<   c                 ó¨   — | j         j        \  }}}}}}||||| j         j        |z  |z   | j         j        |z  |z   f| j         _        d| j         _        dS )zMove to start of next text linerb   N)r  rH   rR   rI   rÝ  s          r=   Údo_T_azPDFPageInterpreter.do_T_aq  sf   € à!œ^Ô2ÑˆˆAˆq�!�Q˜àØØØØŒNÔ" QÑ&¨Ñ*ØŒNÔ" QÑ&¨Ñ*ð!
ˆŒÔð %+ˆŒÔ!Øˆr<   Úseqc                 ó  — | j         j        €t          j        rt	          d¦  «        ‚dS | j        €J ‚| j                             | j         t          t          |¦  «        | j        | j
                             ¦   «         ¦  «         dS )z0Show text, allowing individual glyph positioningNzNo font specified!)r  rM   r   r—   r@   r  râ   Úrender_stringr   r   r  r`   )rW   rá  s     r=   Údo_TJzPDFPageInterpreter.do_TJ  s�   € àŒ>ÔÐ&ÝŒð @Ý)Ð*>Ñ?Ô?Ð?ØˆFØŒxÐ#Ð#Ð#ØŒ×!Ò!ØŒN�D¥¨SÑ1Ô1°4´8¸TÔ=N×=SÒ=SÑ=UÔ=Uñ	
ô 	
ð 	
ð 	ˆr<   Úsc                 ó2   — |                       |g¦  «         dS )z	Show textN)rä  ©rW   rå  s     r=   Údo_TjzPDFPageInterpreter.do_Tj‹  s   € à�
Š
�A�3‰ŒˆØˆr<   c                 óZ   — |                       ¦   «          |                      |g¦  «         dS )zPMove to next line and show text

        The ' (single quote) operator.
        N)rà  rä  rç  s     r=   Údo__qzPDFPageInterpreter.do__q�  s'   € ð
 	�Š‰ŒˆØ�
Š
�A�3‰ŒˆØˆr<   ÚawÚacc                 ó†   — |                       |¦  «         |                      |¦  «         |                      |g¦  «         dS )zqSet word and character spacing, move to next line, and show text

        The " (double quote) operator.
        N)rÆ  rÃ  rä  )rW   rë  rì  rå  s       r=   Údo__wzPDFPageInterpreter.do__w™  s8   € ð
 	�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�
Š
�A�3‰ŒˆØˆr<   c                 ó   — dS )zBegin inline image objectNr;   rV   s    r=   Údo_BIzPDFPageInterpreter.do_BI£  ro  r<   c                 ó   — dS )zBegin inline image dataNr;   rV   s    r=   Údo_IDzPDFPageInterpreter.do_ID§  ro  r<   c                 ó$  — t          |t          ¦  «        rzd|v rvd|v rrt          t          |¦  «        ¦  «        }| j                             |dt          ¦  «         | j                             ||¦  «         | j                             |¦  «         dS )zEnd inline image objectÚWÚH©r   r   r   r   N)	rí   r   re   Úidrâ   Úbegin_figurer.   Úrender_imageÚ
end_figure)rW   r_   Úiobjids      r=   Údo_EIzPDFPageInterpreter.do_EI«  s‚   € å�c�9Ñ%Ô%ð 	+¨#°¨*¨*¸À¸¸Ý�˜C™œ‘\”\ˆFØŒK×$Ò$ V¨\½?ÑKÔKÐKØŒK×$Ò$ V¨SÑ1Ô1Ð1ØŒK×"Ò" 6Ñ*Ô*Ð*Øˆr<   Ú
xobjid_argc           	      ód  — t          t          t          |¦  «        ¦  «        }	 t          | j        |         ¦  «        }n/# t
          $ r" t          j        rt          d|z  ¦  «        ‚Y dS w xY wt           
                    d|¦  «         |                     d¦  «        }|t          u �rd|v �r|                      ¦   «         }t          t          t          |d         ¦  «        ¦  «        }t          t           t          |                     dt"          ¦  «        ¦  «        ¦  «        }|                     d¦  «        }|rt%          |¦  «        }	n| j                             ¦   «         }	| j                             |||¦  «         |                     |	|gt1          || j        ¦  «        ¬¦  «         | j                             |¦  «         ni|t6          u r_d	|v r[d
|v rW| j                             |dt"          ¦  «         | j                             ||¦  «         | j                             |¦  «         n	 dS )zInvoke named XObjectzUndefined xobject id: %rNzProcessing xobj: %rrŠ   ÚBBoxr/   Ú	Resources©rÿ   ÚWidthÚHeightrö  )r   re   r-   r"   rö   rt  r   r—   r@   r•   r–   rï   ÚLITERAL_FORMræ   r2   r    r/   r.   r   rç   r`   râ   rø  Úrender_contentsr4   rÿ   rú  ÚLITERAL_IMAGErù  )
rW   rý  rü   Úxobjrš   ÚinterpreterÚbboxrH   Úxobjresrç   s
             r=   Údo_DozPDFPageInterpreter.do_Do´  s  € å•c�<¨
Ñ3Ô3Ñ4Ô4ˆð	Ý ¤¨VÔ 4Ñ5Ô5ˆDˆDøÝð 	ð 	ð 	ÝŒð OÝ)Ð*DÀvÑ*MÑNÔNÐNØˆFˆFð	øøøõ 	�	Š	Ð'¨Ñ.Ô.Ð.Ø—(’(˜9Ñ%Ô%ˆØ•lÐ"Ñ" v° ~¡~ØŸ(š(™*œ*ˆKÝ��j¨¨f¬Ñ6Ô6Ñ7Ô7ˆDÝ�&¥*¨T¯XªX°hÅÑ-PÔ-PÑ"QÔ"QÑRÔRˆFð —h’h˜{Ñ+Ô+ˆGØð 2Ý& wÑ/Ô/�	�	à œN×/Ò/Ñ1Ô1�	ØŒK×$Ò$ V¨T°6Ñ:Ô:Ð:Ø×'Ò'Ø˜D˜6¥{°6¸4¼8Ñ'DÔ'Dð (ñ ô ð ð ŒK×"Ò" 6Ñ*Ô*Ð*Ð*Ø�Ð%Ð%¨'°T¨/¨/¸hÈ$Ð>NÐ>NØŒK×$Ò$ V¨\½?ÑKÔKÐKØŒK×$Ò$ V¨TÑ2Ô2Ð2ØŒK×"Ò" 6Ñ*Ô*Ð*Ð*ð Øˆs   ¤? ¿(A+Á*A+Úpagec                 ó’  — t                                d|¦  «         |j        \  }}}}|j        dk    r
dddd| |f}n3|j        dk    r	dddd||f}n|j        dk    r
dddd|| f}n
dddd| | f}| j                             ||¦  «         |                      |j        |j        |¬¦  «         | j         	                    |¦  «         d S )	NzProcessing page: %réZ   r   éÿÿÿÿr   é´   i  r  )
r•   r–   ÚmediaboxÚrotaterâ   Ú
begin_pager  rç   ÚcontentsÚend_page)rW   r  Úx0Úy0rB  rC  rÿ   s          r=   Úprocess_pagezPDFPageInterpreter.process_pageÙ  sö   € Ý�	Š	Ð'¨Ñ.Ô.Ð.Øœ=ÑˆˆR��RØŒ;˜"ÒÐØ�b˜!˜Q   RÐ(ˆCˆCØŒ[˜CÒÐØ�q˜!˜R  RÐ(ˆCˆCØŒ[˜CÒÐØ�a˜˜Q  R CÐ(ˆCˆCà�a˜˜A ˜s R CÐ(ˆCØŒ×Ò˜t SÑ)Ô)Ð)Ø×Ò˜Tœ^¨T¬]ÀÐÑDÔDÐDØŒ×Ò˜TÑ"Ô"Ð"Øˆr<   r£   c                 óØ   — t                                d|||¦  «         |                      |¦  «         |                      |¦  «         |                      t          |¦  «        ¦  «         dS )zTRender the content streams.

        This method may be called recursively.
        z1render_contents: resources=%r, streams=%r, ctm=%rN)r•   r–   rþ   r  Úexecuter    )rW   rç   r£   rÿ   s       r=   r  z"PDFPageInterpreter.render_contentsé  sk   € õ 	�	Š	Ø?ÀÈGÐUXñ	
ô 	
ð 	
ð 	×Ò˜IÑ&Ô&Ð&Ø�Š˜ÑÔÐØ�Š•Z Ñ(Ô(Ñ)Ô)Ð)Øˆr<   c                 ó  — 	 t          |¦  «        }n# t          $ r Y d S w xY w	 	 |                     ¦   «         \  }}n# t          $ r Y �nCw xY wt          |t          ¦  «        �rt          |¦  «        }d|                     dd¦  «                             dd¦  «                             dd¦  «        z  }t          | |¦  «        r‘t          | |¦  «        }|j	        j
        dz
  }|rJ|                      |¦  «        }	t                               d	||	¦  «         t          |	¦  «        |k    r ||	Ž  n\t                               d
|¦  «          |¦   «          n6t          j        rd|z  }
t#          |
¦  «        ‚n|                      |¦  «         �Œid S )Nr   zdo_%sÚ*Ú_aú"Ú_wú'Ú_qzexec: %s %rzexec: %szUnknown operator: %r)r¢   r%   Ú
nextobjectrí   r&   r+   ÚreplaceÚhasattrÚgetattrÚ__code__Úco_argcountr  r•   r–   r¨   r   r—   r@   r×   )rW   r£   ÚparserrÙ   r_   rð   ÚmethodÚfuncÚnargsÚargsrÛ   s              r=   r  zPDFPageInterpreter.executeû  s¸  € ð	Ý% gÑ.Ô.ˆFˆFøÝð 	ð 	ð 	àˆFˆFð	øøøð	ðØ!×,Ò,Ñ.Ô.‘��C�CøÝð ð ð Ø‘ðøøøå˜#�yÑ)Ô)ñ Ý# CÑ(Ô(�Ø  4§<¢<°°TÑ#:Ô#:×#BÒ#BÀ3ÈÑ#MÔ#M×#UÒ#UØ˜ñ$ô $ñ �õ ˜4 Ñ(Ô(ð =Ý" 4¨Ñ0Ô0�DØ œMÔ5¸Ñ9�EØð Ø#Ÿxšx¨™œ˜ÝŸ	š	 -°°tÑ<Ô<Ð<Ý˜t™9œ9¨Ò-Ð-Ø ˜D $˜K˜KøåŸ	š	 *¨dÑ3Ô3Ð3Ø˜™œ˜˜å”ð =Ø$:¸TÑ$A˜	Ý1°)Ñ<Ô<Ð<ð=ð —	’	˜#‘”�ñ5	ð6 	ˆs   ‚ ’
 Ÿ ¥= ½
AÁ
A)rJ   rà   rc   )dr8   r9   r:   rž   rw   r   rX   ræ   r   r    rþ   r/   r  Ú	PDFStackTr×   rÞ   r   r  r	   rG   rg   r  r  r  r  r#  r&  r(  r*  r-  r0  r2  r4  r7  r=  rA  rI  rK  rN  rR  rU  rY  r[  r^  r`  rb  rd  rf  rh  rj  rl  rn  rq  ru  rx  r~  r‚  r‰  rŒ  r�  r“  r™  r�  rŸ  r¢  r¤  r¦  r¨  rª  r¬  r²  r¶  rº  r¼  r¿  rÃ  rÆ  rÉ  rË  rÍ  rÏ  rÑ  rÙ  rÛ  rÞ  rà  rä  rè  rê  rî  rð  rò  rü  r  r   r  r.   r   r  r  r;   r<   r=   rà   rà   U  sM  € € € € € ðð ð
Ð 2ð ¸Ið È$ð ð ð ð ð
9ð 9ð 9ð 9ð(¨¨V°V¨^Ô(<ð (Àð (ð (ð (ð (ðT˜fð ¨ð ð ð ð ð$˜	ð  dð ð ð ð ð�Sð ˜T )œ_ð ð ð ð ðK 5¨°¸Ð)NÔ#Oð Kð Kð Kð KðØ˜6 <°Ð@ÔAðà	ðð ð ð ðð ð ð ð
ð ð ð ðàðð ðð ð	ð
 ðð ðð ðð 
ðð ð ð ð˜ið ¨Dð ð ð ð ð
˜Ið ¨$ð ð ð ð ð
˜Yð ¨4ð ð ð ð ð
˜yð ¨Tð ð ð ð ð
˜ð ¨9ð ¸ð ð ð ð ð
˜Ið ¨$ð ð ð ð ð
˜Yð ¨4ð ð ð ð ð
˜)ð ¨ð ð ð ð ð
�ið  Ið °$ð ð ð ð ð
�ið  Ið °$ð ð ð ð ð
àðð ðð ð	ð
 ðð ðð ðð 
ðð ð ð ð.�yð  ið °Yð ÀIð ÐRVð ð ð ð ð�yð  ið °Yð ÀIð ÐRVð ð ð ð ðð ð ð ð
�yð  Yð °9ð Àð Ètð ð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð
ð ð ð ðð ð ð ð
˜)ð 
¨ð 
ð 
ð 
ð 
ð˜)ð ¨ð ð ð ð ð˜ð  tð ð ð ð ð˜ð  tð ð ð ð ð�yð  Yð °9ð Àð ð ð ð ð�yð  Yð °9ð Àð ð ð ð ð	�ið 	 Ið 	°)ð 	À	ð 	Èdð 	ð 	ð 	ð 	ð	�ið 	 Ið 	°)ð 	À	ð 	Èdð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ðð ð ð ð
ð ð ð ð
˜&ð  Tð ð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð˜ð  tð ð ð ð ð
˜ð ¨9ð ¸ð ð ð ð ð
˜)ð ¨ð ð ð ð ð
˜)ð ¨Ið ¸$ð ð ð ð ð
ð ð ð ð
˜9ð ¨ð ð ð ð ð˜9ð ¨ð ð ð ð ð˜9ð ¨ð ð ð ð ð˜Yð ¨4ð ð ð ð ð˜Ið °ð ¸tð ð ð ð ð ˜Ið ¨$ð ð ð ð ð
˜)ð ¨ð ð ð ð ð˜	ð  yð °Tð ð ð ð ð˜	ð  yð °Tð ð ð ð ðàðð ðð ð	ð
 ðð ðð ðð 
ðð ð ð ðð ð ð ð
˜ð 
 tð 
ð 
ð 
ð 
ð�yð  Tð ð ð ð ð
�yð  Tð ð ð ð ð˜	ð  yð °Yð À4ð ð ð ð ðð ð ð ðð ð ð ð˜ð  tð ð ð ð ð# 	ð #¨dð #ð #ð #ð #ðJ ð ¨Tð ð ð ð ð( &ð	ð à˜ ˜Ô'ðð ˜&Ô!ðð ð	ð
 
ðð ð ð ð$!˜x¨Ô/ð !°Dð !ð !ð !ð !ð !ð !r<   rà   )OÚloggingr¾   Úior   Útypingr   r   r   r   r   r	   r
   r   Ú r   Úcmapdbr   r   r   Úpdfcolorr   r   Ú	pdfdevicer   r   Úpdffontr   r   r   r   r   r   Úpdfpager   Úpdftypesr   r   r   r   r    r!   r"   Úpsparserr#   r$   r%   r&   r'   r(   r)   r*   r+   r-   Úutilsr.   r/   r0   r1   r2   r3   r4   Ú	getLoggerr8   r•   r6   r@   r}   r~   r˜   r  r  rG   r%  r—  rg   rw   r¢   r-  rà   r;   r<   r=   ú<module>r;     sà  ðØ €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nà Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø #Ð #Ð #Ð #Ð #Ð #Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�|ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜,ñ 	ô 	ð 	ð ˆc�%‰jŒj€Øˆs�6‰{Œ{€Øˆs�6‰{Œ{€Øˆs�6‰{Œ{€Ø��G‘”€ð4!ð 4!ð 4!ð 4!ð 4!ñ 4!ô 4!ð 4!ðn 	Ø	Ø	ˆ%�˜Ð
ÔØ	ˆ%�˜˜uÐ
$Ô%ð'ô	€ð-
ð -
ð -
ð -
ð -
ñ -
ô -
ð -
ð`Gð Gð Gð Gð Gñ Gô Gð GðTZ$ð Z$ð Z$ð Z$ð Z$�} U¨9°iÐ+?Ô%@ÔAñ Z$ô Z$ð Z$ðz ˜	Ô"€	Ø 6ðGð Gð Gð Gð Gñ Gô Gð Gð Gð Gr<   