§
    Æ‡tjåÃ  ã                   ó2  — d dl Z d dlZd dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d d	lmZmZ d d
lmZmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC  e jD        eE¦  «        ZF G d„ de¦  «        ZG G d„ de¦  «        ZH e5d¦  «        ZI e5d¦  «        ZJ e5d¦  «        ZK e5d¦  «        ZL e5d¦  «        ZM G d„ d¦  «        ZNeeOePeOeOeOf         ePeOeOeOeOf         f         ZQeeQeRePeQeRf         f         ZS G d„ d¦  «        ZT G d„ d¦  «        ZU G d „ d!e8ee6e+f                  ¦  «        ZVe9e+         ZW G d"„ d#¦  «        ZXdS )$é    N)ÚMappingÚSequence)ÚBytesIO)ÚUnionÚcast)Úsettings)Ú	safe_cmykÚ
safe_floatÚsafe_intÚsafe_matrixÚsafe_rgb)ÚCMapÚCMapBaseÚCMapDB)ÚPREDEFINED_COLORSPACEÚPDFColorSpace)Ú	PDFDeviceÚ
PDFTextSeq)ÚPDFExceptionÚPDFValueError)Ú
PDFCIDFontÚPDFFontÚPDFFontErrorÚPDFTrueTypeFontÚPDFType1FontÚPDFType3Font)ÚPDFPage)ÚLITERALS_ASCII85_DECODEÚ	PDFObjRefÚ	PDFStreamÚ
dict_valueÚ
list_valueÚresolve1Ústream_value)ÚPSEOFÚPSTypeError)ÚKWDÚLITÚ	PSKeywordÚ	PSLiteralÚPSStackParserÚPSStackTypeÚkeyword_nameÚliteral_name)ÚMATRIX_IDENTITYÚMatrixÚPathSegmentÚPointÚRectÚchoplistÚmult_matrixc                   ó   — e Zd ZdS )ÚPDFResourceErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/pdfinterp.pyr7   r7   7   ó   € € € € € Ø€Dr=   r7   c                   ó   — e Zd ZdS )ÚPDFInterpreterErrorNr8   r<   r=   r>   rA   rA   ;   r?   r=   rA   Ú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__J   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=ú>)
rN   rO   rP   rQ   rR   rS   rT   rU   rI   rJ   rW   s    r>   Ú__repr__zPDFTextState.__repr__W   s´   € ð	/ 4¤9ð 	/ð 	/Øœð	/ð 	/àœð	/ð 	/ð œð	/ð 	/ð ”|ð		/ð 	/ð
 ”|ð	/ð 	/ð ”kð	/ð 	/ð ”Ið	/ð 	/ð ”kð	/ð 	/ð œ/ð	/ð 	/ð 	/ð	
r=   c                 ó  — t          ¦   «         }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        |S ©N)rH   rN   rO   rP   rQ   rR   rS   rT   rU   rI   rJ   ©rX   Úobjs     r>   ÚcopyzPDFTextState.copye   sj   € Ý‰nŒnˆØ”9ˆŒØ”}ˆŒØœˆŒØœˆŒØ”lˆŒØ”lˆŒØ”[ˆŒ
Ø”9ˆŒØ”[ˆŒ
ØœˆŒØˆ
r=   c                 ó,   — t           | _        d| _        d S )N©r   r   )r/   rI   rJ   rW   s    r>   rV   zPDFTextState.resets   s   € Ý%ˆŒØ ˆŒˆˆr=   ©rK   N)rK   rH   )r9   r:   r;   r0   Ú__annotations__r2   rY   Ústrr\   ra   rV   r<   r=   r>   rH   rH   F   s‚   € € € € € € Ø€N€N�NØÐÐÑð	ð 	ð 	ð 	ð
˜#ð 
ð 
ð 
ð 
ðð ð ð ð!ð !ð !ð !ð !ð !r=   rH   c                   ó*   — e Zd Zdd„Zdd„Zdefd„ZdS )ÚPDFGraphicStaterK   Nc                 óÌ   — d| _         d | _        d | _        d | _        d | _        d | _        d | _        d| _        t          d         | _	        d| _
        t          d         | _        d S )Nr   Ú
DeviceGray)Ú	linewidthÚlinecapÚlinejoinÚ
miterlimitÚdashÚintentÚflatnessÚscolorr   ÚscsÚncolorÚncsrW   s    r>   rY   zPDFGraphicState.__init__Š   sa   € Ø !ˆŒØ&*ˆŒØ'+ˆŒØ)-ˆŒØ26ˆŒ	Ø%)ˆŒØ'+ˆŒð ˆŒÝ"7¸Ô"EˆŒð ˆŒÝ"7¸Ô"EˆŒˆˆr=   c                 ó*  — t          ¦   «         }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        |S r^   )rh   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   r_   s     r>   ra   zPDFGraphicState.copy›   su   € ÝÑÔˆØœˆŒØ”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=r[   )	rk   rl   rm   rn   ro   rp   rq   rr   rt   rW   s    r>   r\   zPDFGraphicState.__repr__ª   s¦   € ð	3Øœð	3ð 	3à”|ð	3ð 	3ð œð	3ð 	3ð œ/ð		3ð 	3ð
 ”Ið	3ð 	3ð ”kð	3ð 	3ð œð	3ð 	3ð #œkð	3ð 	3ð #'¤+ð	3ð 	3ð 	3ð	
r=   rd   )rK   rh   )r9   r:   r;   rY   ra   rf   r\   r<   r=   r>   rh   rh   ‰   s[   € € € € € ðFð Fð Fð Fð"ð ð ð ð
˜#ð 
ð 
ð 
ð 
ð 
ð 
r=   rh   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ÚcachingrK   Nc                 ó"   — || _         i | _        d S r^   )rz   Ú_cached_fonts)rX   rz   s     r>   rY   zPDFResourceManager.__init__Á   s   € ØˆŒØ46ˆÔÐÐr=   Úprocsc                 ó6   — |D ]}|t           u s	|t          u rŒŒd S r^   )ÚLITERAL_PDFÚLITERAL_TEXT)rX   r}   Úprocs      r>   Úget_procsetzPDFResourceManager.get_procsetÅ   s6   € Øð 	ð 	ˆDØ•{Ð"Ð" d­lÐ&:Ð&:Øàð		ð 	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   )rX   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|›�¦  «        ‚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|   ÚlogÚdebugr   ÚSTRICTÚLITERAL_FONTr   r.   r   r   r   r   r"   r!   ra   r#   Úget_fontrz   )rX   rˆ   r‰   rN   Ú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ÝŒð 8 4¨¤<µ|Ð#CÐ#CÝ"Ð#6Ñ7Ô7Ð7à˜DÐ Ð Ý& t¨I¤Ñ7Ô7��å”?ð IÝ&Ð'GÑHÔHÐHØ!�ØÐ.Ð.Ð.å# D¨$Ñ/Ô/��Ø˜JÒ&Ð&å& t¨TÑ2Ô2��Ø˜GÒ#Ð#å# D¨$Ñ/Ô/��ØÐ<Ð<Ð<å! $¨Ñ-Ô-��Ø˜GÒ#Ð#å# DÐ):Ô$;Ñ<Ô<�Ø���vÝ$ 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¸TÐ'EÐ'EÑFÔFÐFÝ# D¨$Ñ/Ô/�Øð 1˜œð 1Ø,0�Ô" 5Ñ)Øˆr=   )T)F)r9   r:   r;   Ú__doc__ÚboolrY   r   Úobjectr‚   rf   r   r†   r   r   r›   r<   r=   r>   ry   ry   ¹   sÌ   € € € € € ðð ð7ð 7 ð 7°ð 7ð 7ð 7ð 7ð ¨&Ô!1ð °dð ð ð ð ðð  ð ¨dð ¸xð ð ð ð ð)˜fð )¨G°C¸°KÔ,@ð )ÀWð )ð )ð )ð )ð )ð )r=   ry   c            	       óÖ   — e Zd Zdee         ddfd„Zdefd„Zdeddfd„Z	def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ÚstreamsrK   Nc                 óL   — || _         d| _        t          j        | d ¦  «         d S ©Nr   )r¥   Úistreamr+   rY   )rX   r¥   s     r>   rY   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 )Né   zUnexpected EOF, file truncated?TF)Úfpr¨   Úlenr¥   r$   r%   r   Úget_data)rX   Ústrms     r>   ÚfillfpzPDFContentParser.fillfp	  s{   € ØŒwð 	ØŒ|�c $¤,Ñ/Ô/Ò/Ð/Ý# D¤L°´Ô$>Ñ?Ô?�Ø�” Ñ!�”�åÐ=Ñ>Ô>Ð>Ý˜dŸmšm™oœoÑ.Ô.ˆDŒGØ�4Øˆur=   Úposc                 óX   — |                       ¦   «          t          j        | |¦  «         d S r^   )r¯   r+   Úseek)rX   r°   s     r>   r²   zPDFContentParser.seek  s(   € Ø�Š‰ŒˆÝÔ˜4 Ñ%Ô%Ð%Ð%Ð%r=   c                 ó$  — | j         t          | j        ¦  «        k     rdS d}	 |                      ¦   «         }| j                             ¦   «         | _        | j                             | j        ¦  «        | _        | j        rnd | _        Œfd| _         |S )NFrª   r   )	Úcharposr¬   Úbufr¯   r«   ÚtellÚbufposÚreadÚBUFSIZ)rX   Ú
new_streams     r>   ÚfillbufzPDFContentParser.fillbuf  sƒ   € ØŒ<�#˜dœh™-œ-Ò'Ð'Ø�5Øˆ
ð	ØŸš™œˆJØœ'Ÿ,š,™.œ.ˆDŒKØ”w—|’| D¤KÑ0Ô0ˆDŒHØŒxð ØØˆDŒGð	ð ˆŒØÐr=   ó   EIÚtargetc                 ó^  — |                       |¦  «         d}d}|t          |¦  «        k    �rL|                      ¦   «          |r”| j        | j                 }t          |f¦  «        }||z  }| xj        dz  c_        t          |¦  «        |k    r|                     ¦   «         s-|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    �°L|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)rX   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�Ø˜‘	�Ø�” Ñ!�”Ý˜‘K”K 1Ò$Ð$¨¯ª©¬Ð$Ø�˜F™œ’O�O¨­e°V¸A´Y°LÑ.AÔ.AÒ(BÐ(Bà˜‘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ÚpopallrW   s    r>   ÚflushzPDFContentParser.flushD  s    € ØˆÔ˜$Ÿ+š+™-œ-Ð(Ð(Ð(Ð(r=   s   BIs   IDÚtokenc                 ó  — || j         u r|                      |d¦  «         d S || j        u �r?	 |                      d¦  «        \  }}t	          |¦  «        dz  dk    rd|›�}t          |¦  «        ‚d„ t          d|¦  «        D ¦   «         }d}|                     d¦  «        }|�)t          |t          ¦  «        r|g}|d         t          v rd}|                      |t	          d	¦  «        z   |¬
¦  «        \  }}	|dk    r|	|z  }	t          ||	¦  «        }
|                      ||
f¦  «         |dk    r|                      || j        f¦  «         d S d S # t
          $ r t          j        r‚ Y d S w xY w|                      ||f¦  «         d S )NÚinlineé   r   zInvalid dictionary construct: c                 óN   — i | ]"\  }}t          |¦  «        t          |¦  «        “Œ#S r<   )r.   r#   )Ú.0rŸ   Úvs      r>   ú
<dictcomp>z/PDFContentParser.do_keyword.<locals>.<dictcomp>U  s*   € ÐRÐRÐR±f°q¸!•\ !‘_”_¥h¨q¡k¤kÐRÐRÐRr=   r¼   ÚFs   ~>s   ID )r½   )Ú
KEYWORD_BIÚ
start_typeÚ
KEYWORD_IDÚend_typer¬   r&   r4   ÚgetÚ
isinstancer*   r   rÊ   r    ÚpushÚ
KEYWORD_EIr   r™   )rX   r°   rÏ   Ú_ÚobjsÚ	error_msgÚdÚeosÚfilterrÆ   r`   s              r>   Ú
do_keywordzPDFContentParser.do_keywordK  sÇ  € Ø�D”OÐ#Ð#à�OŠO˜C Ñ*Ô*Ð*Ð*Ð*Ø�d”oÐ%Ñ%ðØ ŸMšM¨(Ñ3Ô3‘	��DÝ�t‘9”9˜q‘= AÒ%Ð%Ø IÀÐ IÐ I�IÝ% iÑ0Ô0Ð0ØRÐRÅÈÈDÑ@QÔ@QÐRÑRÔR�Ø�ØŸš˜s™œ�ØÐ%Ý! &­)Ñ4Ô4ð *Ø"( ˜Ø˜a”yÕ$;Ð;Ð;Ø#˜Ø"×2Ò2°3½¸V¹¼Ñ3DÈSÐ2ÑQÔQ‘��dØ˜%’<�<Ø˜C‘K�DÝ  4Ñ(Ô(�Ø—	’	˜3 ˜*Ñ%Ô%Ð%Ø˜%’<�<Ø—I’I˜s D¤OÐ4Ñ5Ô5Ð5Ð5Ð5ð  �<øåð ð ð Ý”?ð Øðð ð ðøøøð �IŠI�s˜E�lÑ#Ô#Ð#Ð#Ð#s   ­DE ÅE(Å'E()r¼   rd   )r9   r:   r;   r   r¢   rY   r¡   r¯   Úintr²   r»   r¿   ÚtuplerÊ   rÎ   r'   rØ   rÚ   rß   r)   ræ   r<   r=   r>   r¤   r¤      s0  € € € € € ð+ ¨Ô 0ð +°Tð +ð +ð +ð +ð	˜ð 	ð 	ð 	ð 	ð&˜ð & ð &ð &ð &ð &ð˜ð ð ð ð ðð  3ð °ð À%ÈÈUÈ
ÔBSð ð ð ð ð<)ð )ð )ð )ð ��U‘”€JØ��U‘”€JØ��U‘”€Jð$˜cð $¨)ð $¸ð $ð $ð $ð $ð $ð $r=   r¤   c                   ó¤  — e Zd ZdZdededdfd„Zd—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d0„Z#d.ed/eddfd1„Z$d2ed3ed4ed5ed6ed7eddfd8„Z%d4ed5ed6ed7eddf
d9„Z&d2ed3ed6ed7eddf
d:„Z'd˜d;„Z(d.ed/ed<ed=eddf
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˜dJ„Z5d,eddfdK„Z6d,eddfdL„Z7dMeddfdN„Z8dMeddfdO„Z9dPedQedReddfdS„Z:dPedQedReddfdT„Z;dUedVed/edWeddf
dX„Z<dUedVed/edWeddf
dY„Z=dZee         d[e>de?dz  fd\„Z@d˜d]„ZAd˜d^„ZBd˜d_„ZCd˜d`„ZDd,e
ddfda„ZEd˜db„ZFd˜dc„ZGd˜dd„ZHd˜de„ZIdfeddfdg„ZJdfedheddfdi„ZKdfeddfdj„ZLdfedheddfdk„ZMd˜dl„ZNdmeddfdn„ZOdmeddfdo„ZPdpeddfdq„ZQdreddfds„ZRdtedueddfdv„ZSdweddfdx„ZTdyeddfdz„ZUd{ed|eddfd}„ZVd{ed|eddfd~„ZWdedRedUed€ed�ed‚eddfdƒ„ZXd˜d„„ZYd…eddfd†„ZZd‡eddfdˆ„Z[d‡eddfd‰„Z\dŠed‹ed‡eddfdŒ„Z]d˜d�„Z^d˜dŽ„Z_deddfd�„Z`d�eddfd‘„Zad’ebddfd“„Zcedfd	e	e
e
f         d”eee
         deddfd•„Zfd”eee
         ddfd–„ZgdS )™ÚPDFPageInterpreterzhProcessor for the content of a PDF page

    Reference: PDF Reference, Appendix A, Operator Summary
    ÚrsrcmgrÚdevicerK   Nc                 ón   — || _         || _        t          ¦   «         | _        t          ¦   «         | _        d S r^   )rë   rì   ÚsetÚ
stream_idsÚparent_stream_ids)rX   rë   rì   s      r>   rY   zPDFPageInterpreter.__init__u  s-   € ØˆŒØˆŒå$'¡E¤EˆŒå+.©5¬5ˆÔÐÐr=   c                 óB   — |                       | j        | j        ¦  «        S r^   )Ú	__class__rë   rì   rW   s    r>   ÚdupzPDFPageInterpreter.dup}  s   € Ø�~Š~˜dœl¨D¬KÑ8Ô8Ð8r=   c                 óª   — |                       ¦   «         }|j                             | j        ¦  «         |j                             | j        ¦  «         |S )aX  Create a sub-interpreter for processing nested content streams.

        This is used when invoking Form XObjects to prevent circular references.
        Unlike dup(), this method propagates the stream ID tracking from the
        parent interpreter, allowing detection of circular references across
        nested XObject invocations.
        )ró   rð   Úupdaterï   )rX   Úinterps     r>   Ú	subinterpzPDFPageInterpreter.subinterp€  sI   € ð —’‘”ˆØÔ ×'Ò'¨Ô(>Ñ?Ô?Ð?ØÔ ×'Ò'¨¬Ñ8Ô8Ð8Øˆr=   Ú	resourcesc                 óˆ  — || _         i | _        i | _        t          j        ¦   «         | _        |sdS dt          dt          dz  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‰   rK   c           	      ó  — t          | t          ¦  «        rt          | d         ¦  «        }nt          | ¦  «        }|dk    rQt          | t          ¦  «        r<t          | ¦  «        dk    r)t	          |t          | d         ¦  «        d         ¦  «        S |dk    rXt          | t          ¦  «        rCt          | ¦  «        dk    r0t	          |t          t          | d         ¦  «        ¦  «        ¦  «        S t          j        |¦  «        S )Nr   ÚICCBasedrÒ   rª   ÚNÚDeviceN)	rÝ   Úlistr.   r¬   r   r$   r"   r   rÜ   )r‰   Únames     r>   Úget_colorspacez9PDFPageInterpreter.init_resources.<locals>.get_colorspace–  sÚ   € Ý˜$¥Ñ%Ô%ð *Ý# D¨¤GÑ,Ô,��å# DÑ)Ô)�Ø�zÒ!Ð!¥j°µtÑ&<Ô&<Ð!ÅÀTÁÄÈaÂÀÝ$ T­<¸¸Q¼Ñ+@Ô+@ÀÔ+EÑFÔFÐFØ˜Ò"Ð"¥z°$½Ñ'=Ô'=Ð"Å#ÀdÁ)Ä)ÈqÂ.À.Ý$ T­3­z¸$¸q¼'Ñ/BÔ/BÑ+CÔ+CÑDÔDÐDå,Ô0°Ñ6Ô6Ð6r=   zResource: %r: %rrD   Ú
ColorSpaceÚProcSetÚXObject)rø   ÚfontmapÚxobjmapr   ra   Úcsmapr¢   r   r!   Úitemsr—   r˜   rÝ   r   rˆ   rë   r›   r#   r‚   r"   )rX   rø   r   rŸ   rÕ   Úfontidr‰   rˆ   ÚcsidÚ
colorspaceÚxobjidÚxobjstrms               r>   Úinit_resourcesz!PDFPageInterpreter.init_resources�  sï  € à"ˆŒØ.0ˆŒØˆŒÝ/DÔ/IÑ/KÔ/KˆŒ
Øð 	ØˆFð
	7¥ð 
	7­M¸DÑ,@ð 
	7ð 
	7ð 
	7ð 
	7õ ˜yÑ)Ô)×/Ò/Ñ1Ô1ð 	4ñ 	4‰DˆAˆqÝ�IŠIÐ(¨!¨QÑ/Ô/Ð/Ø�FŠ{ˆ{Ý$.¨q¡M¤M×$7Ò$7Ñ$9Ô$9ð Nð N‘L�F˜DØ �EÝ! $­	Ñ2Ô2ð +Ø $¤
˜Ý% dÑ+Ô+�DØ+/¬<×+@Ò+@ÀÈÑ+MÔ+M�D”L Ñ(Ð(ðNð �lÒ"Ð"Ý",¨Q¡-¤-×"5Ò"5Ñ"7Ô"7ð 6ð 6‘J�D˜$Ø!/ µ¸±´Ñ!?Ô!?�JØ!Ð-Ø+5˜œ
 4Ñ(øð6ð �i’�Ø”×(Ò(­°A©¬Ñ7Ô7Ð7Ñ7Ø�i’�Ý(2°1©¬×(;Ò(;Ñ(=Ô(=ð 4ð 4Ñ$�F˜HØ+3�D”L Ñ(Ð(ùð%	4ð 	4r=   Úctmc                 óÈ   — g | _         || _        | j                             | j        ¦  «         t	          ¦   «         | _        t          ¦   «         | _        g | _        g | _	        dS )z<Initialize the text and graphic states for rendering a page.N)
Úgstackr  rì   Úset_ctmrH   Ú	textstaterh   ÚgraphicstateÚcurpathÚargstack)rX   r  s     r>   Ú
init_statezPDFPageInterpreter.init_state¶  sW   € ð KMˆŒØˆŒØŒ×Ò˜DœHÑ%Ô%Ð%Ý%™œˆŒÝ+Ñ-Ô-ˆÔØ*,ˆŒà)+ˆŒˆˆ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 r§   )r  )rX   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  ra   r  rW   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  )rX   r  s     r>   Úset_current_statez$PDFPageInterpreter.set_current_stateÏ  s5   € ð 9>Ñ5ˆŒ�4”> 4Ô#4ØŒ×Ò˜DœHÑ%Ô%Ð%Ð%Ð%r=   c                 ó^   — | j                              |                      ¦   «         ¦  «         dS )zSave graphics stateN)r  r  r  rW   s    r>   Údo_qzPDFPageInterpreter.do_qÖ  s*   € àŒ×Ò˜4×1Ò1Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r=   c                 óp   — | j         r.|                      | j                              ¦   «         ¦  «         dS dS )zRestore graphics stateN)r  r!  r  rW   s    r>   Údo_QzPDFPageInterpreter.do_QÚ  s<   € àŒ;ð 	6Ø×"Ò" 4¤;§?¢?Ñ#4Ô#4Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6r=   Úa1Úb1Úc1Úd1Úe1Úf1c           	      óê   — t          ||||||¦  «        }|€#t                               d||||||f¦  «         dS t          || j        ¦  «        | _        | j                             | j        ¦  «         dS )z3Concatenate matrix to current transformation matrixNzoCannot concatenate matrix to current transformation matrix because not all values in %r can be parsed as floats)r   r—   Úwarningr5   r  rì   r  )rX   r&  r'  r(  r)  r*  r+  rI   s           r>   Údo_cmzPDFPageInterpreter.do_cmß  s‰   € õ ˜R  R¨¨R°Ñ4Ô4ˆàˆ>Ý�KŠKðGà�R˜˜R  RÐ(ñô ð ð ð õ # 6¨4¬8Ñ4Ô4ˆDŒHØŒK×Ò ¤Ñ)Ô)Ð)Ð)Ð)r=   rk   c                 óÈ   — t          |¦  «        }|€t                               d|¦  «         dS | j        d         dz  | j        d         dz  z   dz  }||z  | j        _        dS )zSet line widthNz:Cannot set line width because %r is an invalid float valuer   rÒ   rª   g      à?)r
   r—   r-  r  r  rk   )rX   rk   Úlinewidth_fÚscales       r>   Údo_wzPDFPageInterpreter.do_wõ  sx   € å  Ñ+Ô+ˆØÐÝ�KŠKØLØñô ð ð ð ð
 ”X˜a”[ AÑ%¨¬°¬°qÑ(8Ñ8¸SÑ@ˆEØ*5¸Ñ*=ˆDÔÔ'Ð'Ð'r=   rl   c                 ó   — || j         _        dS )zSet line cap styleN)r  rl   )rX   rl   s     r>   Údo_JzPDFPageInterpreter.do_J  s   € à$+ˆÔÔ!Ð!Ð!r=   rm   c                 ó   — || j         _        dS )zSet line join styleN)r  rm   )rX   rm   s     r>   Údo_jzPDFPageInterpreter.do_j  ó   € à%-ˆÔÔ"Ð"Ð"r=   rn   c                 ó   — || j         _        dS )zSet miter limitN)r  rn   )rX   rn   s     r>   Údo_MzPDFPageInterpreter.do_M	  s   € à'1ˆÔÔ$Ð$Ð$r=   ro   Úphasec                 ó"   — ||f| j         _        dS )zSet line dash patternN)r  ro   )rX   ro   r:  s      r>   Údo_dzPDFPageInterpreter.do_d  s   € à"&¨ ˆÔÔÐÐr=   rp   c                 ó   — || j         _        dS )zSet color rendering intentN)r  rp   )rX   rp   s     r>   Údo_rizPDFPageInterpreter.do_ri  s   € à#)ˆÔÔ Ð Ð r=   rq   c                 ó   — || j         _        dS )zSet flatness toleranceN)r  rq   )rX   rq   s     r>   Údo_izPDFPageInterpreter.do_i  r7  r=   rÿ   c                 ó   — dS )z7Set parameters from graphics state parameter dictionaryNr<   ©rX   rÿ   s     r>   Údo_gszPDFPageInterpreter.do_gs  ó   € € € r=   r  Úyc                 óÌ   — t          |¦  «        }t          |¦  «        }|�|€"d||f}t                               d|¦  «         dS d||f}| j                             |¦  «         dS )zBegin new subpathNÚmzMCannot start new subpath because not all values in %r can be parsed as floats©r
   r—   r-  r  r  ©rX   r  rE  Úx_fÚy_fÚpoints         r>   Údo_mzPDFPageInterpreter.do_m  s}   € å˜‰mŒmˆÝ˜‰mŒmˆàˆ;˜#˜+Ø˜!˜Q�KˆEÝ�KŠKð0àñô ð ð ð ð ˜#˜s�OˆEØŒL×Ò Ñ&Ô&Ð&Ð&Ð&r=   c                 óÌ   — t          |¦  «        }t          |¦  «        }|�|€"d||f}t                               d|¦  «         dS d||f}| j                             |¦  «         dS )z$Append straight line segment to pathNÚlz`Cannot append straight line segment to path because not all values in %r can be parsed as floatsrH  rI  s         r>   Údo_lzPDFPageInterpreter.do_l-  s~   € å˜‰mŒmˆÝ˜‰mŒmˆØˆ;˜#˜+Ø˜!˜Q�KˆEÝ�KŠKðGàñô ð ð ð ð ˜#˜s�OˆEØŒL×Ò Ñ&Ô&Ð&Ð&Ð&r=   Úx1Úy1Úx2Úy2Úx3Úy3c                 ód  — t          |¦  «        }t          |¦  «        }t          |¦  «        }	t          |¦  «        }
t          |¦  «        }t          |¦  «        }|�
|�|	�|
�|�|€&d||||||f}t                               d|¦  «         dS d|||	|
||f}| j                             |¦  «         dS )z4Append curved segment to path (three control points)NrÈ   úYCannot append curved segment to path because not all values in %r can be parsed as floatsrH  )rX   rQ  rR  rS  rT  rU  rV  Úx1_fÚy1_fÚx2_fÚy2_fÚx3_fÚy3_frL  s                 r>   Údo_czPDFPageInterpreter.do_c<  sÓ   € õ ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆàˆLØˆ|Øˆ|Øˆ|Øˆ|Øˆ|à˜"˜b " b¨"¨bÐ1ˆEÝ�KŠKðGàñô ð ð ð ð ˜$  d¨D°$¸Ð=ˆEØŒL×Ò Ñ&Ô&Ð&Ð&Ð&r=   c                 ó  — t          |¦  «        }t          |¦  «        }t          |¦  «        }t          |¦  «        }|�|�|�|€$d||||f}	t                               d|	¦  «         dS d||||f}	| j                             |	¦  «         dS )z8Append curved segment to path (initial point replicated)NrÕ   rX  rH  )
rX   rS  rT  rU  rV  r[  r\  r]  r^  rL  s
             r>   Údo_vzPDFPageInterpreter.do_v^  ó¦   € å˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆÝ˜"‰~Œ~ˆØˆ<˜4˜<¨4¨<¸4¸<Ø˜"˜b " bÐ)ˆEÝ�KŠKðGàñô ð ð ð ð ˜$  d¨DÐ1ˆEØŒL×Ò Ñ&Ô&Ð&Ð&Ð&r=   c                 ó  — t          |¦  «        }t          |¦  «        }t          |¦  «        }t          |¦  «        }|�|�|�|€$d||||f}	t                               d|	¦  «         dS d||||f}	| j                             |	¦  «         dS )z6Append curved segment to path (final point replicated)NrE  rX  rH  )
rX   rQ  rR  rU  rV  rY  rZ  r]  r^  rL  s
             r>   Údo_yzPDFPageInterpreter.do_yo  rb  r=   c                 ó:   — | j                              d¦  «         dS )zClose subpath©ÚhN)r  r  rW   s    r>   Údo_hzPDFPageInterpreter.do_h€  s   € àŒ×Ò˜FÑ#Ô#Ð#Ð#Ð#r=   Úwrg  c                 ó  — t          |¦  «        }t          |¦  «        }t          |¦  «        }t          |¦  «        }|�|�|�|€#||||f}	t                               d|	¦  «         dS | j                             d||f¦  «         | j                             d||z   |f¦  «         | j                             d||z   ||z   f¦  «         | j                             d|||z   f¦  «         | j                             d¦  «         dS )zAppend rectangle to pathNzTCannot append rectangle to path because not all values in %r can be parsed as floatsrG  rO  rf  rH  )
rX   r  rE  ri  rg  rJ  rK  Úw_fÚh_fÚvaluess
             r>   Údo_rezPDFPageInterpreter.do_re„  s  € å˜‰mŒmˆÝ˜‰mŒmˆÝ˜‰mŒmˆÝ˜‰mŒmˆàˆ;˜#˜+¨¨¸¸Ø˜˜A˜q�\ˆFÝ�KŠKðGàñô ð ð ð ð ŒL×Ò  c¨3 Ñ0Ô0Ð0ØŒL×Ò  c¨C¡i°Ð 5Ñ6Ô6Ð6ØŒL×Ò  c¨C¡i°°s±Ð ;Ñ<Ô<Ð<ØŒL×Ò  c¨3°©9Ð 5Ñ6Ô6Ð6ØŒL×Ò Ñ'Ô'Ð'Ð'Ð'r=   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )zStroke pathTFN©rì   Ú
paint_pathr  r  rW   s    r>   Údo_SzPDFPageInterpreter.do_S™  s0   € àŒ×Ò˜tÔ0°$¸¸uÀdÄlÑSÔSÐSØˆŒˆˆr=   c                 óV   — |                       ¦   «          |                      ¦   «          dS )zClose and stroke pathN)rh  rr  rW   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 ruleFTNrp  rW   s    r>   Údo_fzPDFPageInterpreter.do_f£  s0   € àŒ×Ò˜tÔ0°%¸¸uÀdÄlÑSÔSÐSØˆŒˆˆr=   c                 ó   — dS )z6Fill path using nonzero winding number rule (obsolete)Nr<   rW   s    r>   Údo_FzPDFPageInterpreter.do_F¨  rD  r=   c                 ód   — | j                              | j        ddd| j        ¦  «         g | _        dS )zFill path using even-odd ruleFTNrp  rW   s    r>   Údo_f_azPDFPageInterpreter.do_f_a«  s0   € àŒ×Ò˜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 ruleTFNrp  rW   s    r>   Údo_BzPDFPageInterpreter.do_B°  s0   € àŒ×Ò˜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 ruleTNrp  rW   s    r>   Údo_B_azPDFPageInterpreter.do_B_aµ  s0   € àŒ×Ò˜tÔ0°$¸¸dÀDÄLÑQÔQÐQØˆŒˆˆr=   c                 óV   — |                       ¦   «          |                      ¦   «          dS )z>Close, fill, and stroke path using nonzero winding number ruleN)rh  r}  rW   s    r>   Údo_bzPDFPageInterpreter.do_bº  ru  r=   c                 óV   — |                       ¦   «          |                      ¦   «          dS )z0Close, fill, and stroke path using even-odd ruleN)rh  r  rW   s    r>   Údo_b_azPDFPageInterpreter.do_b_a¿  s    € à�	Š	‰ŒˆØ�Š‰Œˆˆˆr=   c                 ó   — g | _         dS )z$End path without filling or strokingN)r  rW   s    r>   Údo_nzPDFPageInterpreter.do_nÄ  s   € àˆŒˆˆr=   c                 ó   — dS )z3Set clipping path using nonzero winding number ruleNr<   rW   s    r>   Údo_WzPDFPageInterpreter.do_WÈ  rD  r=   c                 ó   — dS )z%Set clipping path using even-odd ruleNr<   rW   s    r>   Údo_W_azPDFPageInterpreter.do_W_aË  rD  r=   c                 ó¾   — 	 | j         t          |¦  «                 | j        _        dS # t          $ r*}t
          j        rt          d|›�¦  «        |‚Y d}~dS d}~ww xY w)zOSet color space for stroking operations

        Introduced in PDF 1.1
        úUndefined ColorSpace: N)r  r.   r  rs   ÚKeyErrorr   r™   rA   ©rX   rÿ   Úerrs      r>   Údo_CSzPDFPageInterpreter.do_CSÎ  s”   € ð
	VØ$(¤J­|¸DÑ/AÔ/AÔ$BˆDÔÔ!Ð!Ð!øÝð 	Vð 	Vð 	VÝŒð VÝ)Ð*KÀ4Ð*KÐ*KÑLÔLÐRUÐUðVð Vð Vð Vð Vð Vøøøøð	Vøøøó   ‚$( ¨
A²AÁAc                 ó¾   — 	 | j         t          |¦  «                 | j        _        dS # t          $ r*}t
          j        rt          d|›�¦  «        |‚Y d}~dS d}~ww xY w)z*Set color space for nonstroking operationsr‹  N)r  r.   r  ru   rŒ  r   r™   rA   r�  s      r>   Údo_cszPDFPageInterpreter.do_csÙ  s”   € ð	VØ$(¤J­|¸DÑ/AÔ/AÔ$BˆDÔÔ!Ð!Ð!øÝð 	Vð 	Vð 	VÝŒð VÝ)Ð*KÀ4Ð*KÐ*KÑLÔLÐRUÐUðVð Vð Vð Vð Vð Vøøøøð	Vøøør�  Úgrayc                 ó¨   — t          |¦  «        }|€t                               d|¦  «         dS || j        _        | j        d         | j        _        dS )z&Set gray level for stroking operationsNú:Cannot set gray level because %r is an invalid float valuerj   )r
   r—   r-  r  rr   r  rs   ©rX   r“  Úgray_fs      r>   Údo_GzPDFPageInterpreter.do_Gá  ó_   € å˜DÑ!Ô!ˆàˆ>Ý�KŠKØLØñô ð ð ð ð
 (.ˆDÔÔ$Ø$(¤J¨|Ô$<ˆDÔÔ!Ð!Ð!r=   c                 ó¨   — t          |¦  «        }|€t                               d|¦  «         dS || j        _        | j        d         | j        _        dS )z)Set gray level for nonstroking operationsNr•  rj   )r
   r—   r-  r  rt   r  ru   r–  s      r>   Údo_gzPDFPageInterpreter.do_gî  r™  r=   ÚrÚgÚbc                 ó²   — t          |||¦  «        }|€ t                               d|||f¦  «         dS || j        _        | j        d         | j        _        dS )z%Set RGB color for stroking operationsNzPCannot set RGB stroke color because not all values in %r can be parsed as floatsÚ	DeviceRGB)r   r—   r-  r  rr   r  rs   ©rX   rœ  r�  rž  Úrgbs        r>   Údo_RGzPDFPageInterpreter.do_RGû  ól   € å�q˜!˜QÑÔˆàˆ;Ý�KŠKðGà�A�q�	ñô ð ð ð ð (+ˆDÔÔ$Ø$(¤J¨{Ô$;ˆDÔÔ!Ð!Ð!r=   c                 ó²   — t          |||¦  «        }|€ t                               d|||f¦  «         dS || j        _        | j        d         | j        _        dS )z(Set RGB color for nonstroking operationsNzTCannot set RGB non-stroke color because not all values in %r can be parsed as floatsr   )r   r—   r-  r  rt   r  ru   r¡  s        r>   Údo_rgzPDFPageInterpreter.do_rg	  r¤  r=   rÈ   rG  rŸ   c                 ó¶   — t          ||||¦  «        }|€!t                               d||||f¦  «         dS || j        _        | j        d         | j        _        dS )z&Set CMYK color for stroking operationsNzQCannot set CMYK stroke color because not all values in %r can be parsed as floatsÚ
DeviceCMYK)r	   r—   r-  r  rr   r  rs   ©rX   rÈ   rG  rE  rŸ   Úcmyks         r>   Údo_KzPDFPageInterpreter.do_K  óp   € å˜˜A˜q !Ñ$Ô$ˆàˆ<Ý�KŠKðGà�A�q˜!�ñô ð ð ð ð (,ˆDÔÔ$Ø$(¤J¨|Ô$<ˆDÔÔ!Ð!Ð!r=   c                 ó¶   — t          ||||¦  «        }|€!t                               d||||f¦  «         dS || j        _        | j        d         | j        _        dS )z)Set CMYK color for nonstroking operationsNzUCannot set CMYK non-stroke color because not all values in %r can be parsed as floatsr¨  )r	   r—   r-  r  rt   r  ru   r©  s         r>   Údo_kzPDFPageInterpreter.do_k%  r¬  r=   Ú
componentsÚcontextc                 óä  — t          |¦  «        dk    r;t          |d         ¦  «        }|€"t                               d||d         ¦  «         |S t          |¦  «        dk    r)t	          |Ž }|€t                               d||¦  «         |S t          |¦  «        dk    r)t          |Ž }|€t                               d||¦  «         |S t                               d	|t          |¦  «        ¦  «         dS )
aQ  Parse color components into StandardColor (gray, RGB, or CMYK).

        Args:
            components: List of 1, 3, or 4 numeric color components
            context: Description for error messages (e.g., "stroke", "non-stroke")

        Returns:
            Parsed color (float for gray, tuple for RGB/CMYK) or None if invalid
        rª   r   Nz1Cannot set %s color: %r is an invalid float valueé   z:Cannot set %s color: components %r cannot be parsed as RGBé   z;Cannot set %s color: components %r cannot be parsed as CMYKziCannot set %s color: %d components specified, but only 1 (grayscale), 3 (RGB), and 4 (CMYK) are supported)r¬   r
   r—   r-  r   r	   )rX   r¯  r°  r“  r¢  rª  s         r>   Ú_parse_color_componentsz*PDFPageInterpreter._parse_color_components3  s  € õ ˆz‰?Œ?˜aÒÐÝ˜j¨œmÑ,Ô,ˆDØˆ|Ý—’ØGØØ˜q”Mñô ð ð
 ˆKå�‰_Œ_ Ò!Ð!Ý˜JÐ'ˆCØˆ{Ý—’ØPØØñô ð ð
 ˆJå�‰_Œ_ Ò!Ð!Ý˜jÐ)ˆDØˆ|Ý—’ØQØØñô ð ð
 ˆKõ �KŠKðNàÝ�J‘”ñ	ô ð ð �4r=   c                 ó$  — | j         j        j        }|                      |¦  «        }t	          |¦  «        |k    rt
                               d||¦  «         dS | j         j        j        dk    r(|                      |d¦  «        }|�|| j         _	        dS dS t	          |¦  «        dk    rè|d         }t          |t          ¦  «        s0t
                               dt          |¦  «        j        |¦  «         dS t          |¦  «        }t	          |¦  «        dk    r)|| j         _	        t
                               d|¦  «         dS |dd…         }|                      |d	¦  «        }|€dS ||f| j         _	        t
                               d
||¦  «         dS dS )a=  Set color for stroking operations.

        Handles Pattern color spaces per ISO 32000-1:2008 4.5.5 (PDF 1.7)
        and ISO 32000-2:2020 8.7.3 (PDF 2.0):
        - Colored patterns (PaintType=1): single operand (pattern name)
        - Uncolored patterns (PaintType=2): n+1 operands (colors + pattern name)
        zACannot set stroke color because expected %d components but got %rÚPatternÚstrokeNrª   éÿÿÿÿzËPattern color space requires name object (PSLiteral), got %s: %r. Per ISO 32000 8.7.3.2, colored patterns use syntax '/name SCN'. Per ISO 32000 8.7.3.3, uncolored patterns use syntax 'c1...cn /name SCN'.z Set stroke pattern (colored): %szstroke (uncolored pattern)z'Set stroke pattern (uncolored): %s + %s)r  rs   Úncomponentsr  r¬   r—   r-  rÿ   r´  rr   rÝ   r*   Útyper9   r.   r˜   ©rX   r  r¯  ÚcolorÚpattern_componentÚpattern_nameÚbase_color_componentsÚ
base_colors           r>   Údo_SCNzPDFPageInterpreter.do_SCNf  sÐ  € ð ÔÔ!Ô-ˆà—X’X˜a‘[”[ˆ
Ýˆz‰?Œ?˜aÒÐÝ�KŠKØSØØñô ð ð ð ð ÔÔ"Ô'¨9Ò4Ð4à×0Ò0°¸XÑFÔFˆEØÐ Ø+0�Ô!Ô(Ð(Ð(ð !Ð õ �‰_Œ_ Ò!Ð!ð !+¨2¤Ðõ Ð/µÑ;Ô;ð 
Ý—’ð2õ
 Ð*Ñ+Ô+Ô4Ø%ñô ð ð �å'Ð(9Ñ:Ô:ˆLå�:‰Œ !Ò#Ð#à+7�Ô!Ô(Ý—	’	Ð<¸lÑKÔKÐKÐKÐKð )3°3°B°3¬Ð%ð "×9Ò9Ø)Ð+Gñô �
ð Ð%Ø�Fð -7¸Ð+E�Ô!Ô(Ý—	’	Ø=¸zÈ<ñô ð ð ð ðM "Ð!r=   c                 ó$  — | j         j        j        }|                      |¦  «        }t	          |¦  «        |k    rt
                               d||¦  «         dS | j         j        j        dk    r(|                      |d¦  «        }|�|| j         _	        dS dS t	          |¦  «        dk    rè|d         }t          |t          ¦  «        s0t
                               dt          |¦  «        j        |¦  «         dS t          |¦  «        }t	          |¦  «        dk    r)|| j         _	        t
                               d|¦  «         dS |dd…         }|                      |d	¦  «        }|€dS ||f| j         _	        t
                               d
||¦  «         dS dS )uB  Set color for nonstroking operations.

        Handles Pattern color spaces per ISO 32000-1:2008 4.5.5 (PDF 1.7)
        and ISO 32000-2:2020 Â§8.7.3 (PDF 2.0):
        - Colored patterns (PaintType=1): single operand (pattern name)
        - Uncolored patterns (PaintType=2): n+1 operands (colors + pattern name)
        zECannot set non-stroke color because expected %d components but got %rr¶  z
non-strokeNrª   r¸  zËPattern color space requires name object (PSLiteral), got %s: %r. Per ISO 32000 8.7.3.2, colored patterns use syntax '/name scn'. Per ISO 32000 8.7.3.3, uncolored patterns use syntax 'c1...cn /name scn'.z$Set non-stroke pattern (colored): %sznon-stroke (uncolored pattern)z+Set non-stroke pattern (uncolored): %s + %s)r  ru   r¹  r  r¬   r—   r-  rÿ   r´  rt   rÝ   r*   rº  r9   r.   r˜   r»  s           r>   Údo_scnzPDFPageInterpreter.do_scn¨  sÒ  € ð ÔÔ!Ô-ˆà—X’X˜a‘[”[ˆ
Ýˆz‰?Œ?˜aÒÐÝ�KŠKØWØØñô ð ð ð ð ÔÔ"Ô'¨9Ò4Ð4à×0Ò0°¸\ÑJÔJˆEØÐ Ø+0�Ô!Ô(Ð(Ð(ð !Ð õ �‰_Œ_ Ò!Ð!ð !+¨2¤Ðõ Ð/µÑ;Ô;ð 
Ý—’ð2õ
 Ð*Ñ+Ô+Ô4Ø%ñô ð ð �å'Ð(9Ñ:Ô:ˆLå�:‰Œ !Ò#Ð#à+7�Ô!Ô(Ý—	’	Ð@À,ÑOÔOÐOÐOÐOð )3°3°B°3¬Ð%ð "×9Ò9Ø)Ð+Kñô �
ð Ð%Ø�Fð -7¸Ð+E�Ô!Ô(Ý—	’	ØAØØ ñô ð ð ð ðM "Ð!r=   c                 ó.   — |                       ¦   «          dS )z!Set color for stroking operationsN)rÁ  rW   s    r>   Údo_SCzPDFPageInterpreter.do_SCì  ó   € à�Š‰Œˆˆˆr=   c                 ó.   — |                       ¦   «          dS )z$Set color for nonstroking operationsN)rÃ  rW   s    r>   Údo_sczPDFPageInterpreter.do_scð  rÆ  r=   c                 ó   — dS )z%Paint area defined by shading patternNr<   rB  s     r>   Údo_shzPDFPageInterpreter.do_shô  rD  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  rV   rW   s    r>   Údo_BTzPDFPageInterpreter.do_BT÷  s   € ð 	Œ×ÒÑÔÐÐÐr=   c                 ó   — dS )zEnd a text objectNr<   rW   s    r>   Údo_ETzPDFPageInterpreter.do_ET   rD  r=   c                 ó   — dS )zBegin compatibility sectionNr<   rW   s    r>   Údo_BXzPDFPageInterpreter.do_BX  rD  r=   c                 ó   — dS )zEnd compatibility sectionNr<   rW   s    r>   Údo_EXzPDFPageInterpreter.do_EX  rD  r=   Útagc                 óž   — t          |t          ¦  «        r| j                             |¦  «         dS t                               d|¦  «         dS )zDefine marked-content pointz@Cannot define marked-content point because %r is not a PSLiteralN©rÝ   r*   rì   Údo_tagr—   r-  ©rX   rÓ  s     r>   Údo_MPzPDFPageInterpreter.do_MP	  sV   € å�c�9Ñ%Ô%ð 	ØŒK×Ò˜sÑ#Ô#Ð#Ð#Ð#å�KŠKØRØñô ð ð ð r=   Úpropsc                 ó    — t          |t          ¦  «        r| j                             ||¦  «         dS t                               d|¦  «         dS )z.Define marked-content point with property listzSCannot define marked-content point with property list because %r is not a PSLiteralNrÕ  ©rX   rÓ  rÙ  s      r>   Údo_DPzPDFPageInterpreter.do_DP  sZ   € å�c�9Ñ%Ô%ð 	ØŒK×Ò˜s EÑ*Ô*Ð*Ð*Ð*å�KŠKð0àñô ð ð ð r=   c                 óž   — t          |t          ¦  «        r| j                             |¦  «         dS t                               d|¦  «         dS )zBegin marked-content sequencezBCannot begin marked-content sequence because %r is not a PSLiteralN©rÝ   r*   rì   Ú	begin_tagr—   r-  r×  s     r>   Údo_BMCzPDFPageInterpreter.do_BMC  sV   € å�c�9Ñ%Ô%ð 	ØŒK×!Ò! #Ñ&Ô&Ð&Ð&Ð&å�KŠKØTØñô ð ð ð r=   c                 ó    — t          |t          ¦  «        r| j                             ||¦  «         dS t                               d|¦  «         dS )z0Begin marked-content sequence with property listzUCannot begin marked-content sequence with property list because %r is not a PSLiteralNrÞ  rÛ  s      r>   Údo_BDCzPDFPageInterpreter.do_BDC(  sZ   € å�c�9Ñ%Ô%ð 	ØŒK×!Ò! # uÑ-Ô-Ð-Ð-Ð-å�KŠKð0àñô ð ð ð r=   c                 ó8   — | j                              ¦   «          dS )zEnd marked-content sequenceN)rì   Úend_tagrW   s    r>   Údo_EMCzPDFPageInterpreter.do_EMC3  s   € àŒ×ÒÑÔÐÐÐr=   Úspacec                 óz   — t          |¦  «        }|€t                               d|¦  «         dS || 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.
        NzDCould not set character spacing because %r is an invalid float value)r
   r—   r-  r  rP   )rX   ræ  rP   s      r>   Údo_TczPDFPageInterpreter.do_Tc7  sO   € õ ˜uÑ%Ô%ˆ	ØÐÝ�KŠKØVØñô ð ð ð ð
 (1ˆDŒNÔ$Ð$Ð$r=   c                 óz   — t          |¦  «        }|€t                               d|¦  «         dS || 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
        Nz?Could not set word spacing because %r is an invalid float value)r
   r—   r-  r  rQ   )rX   ræ  rQ   s      r>   Údo_TwzPDFPageInterpreter.do_TwG  sO   € õ ˜uÑ%Ô%ˆ	ØÐÝ�KŠKØQØñô ð ð ð ð
 (1ˆDŒNÔ$Ð$Ð$r=   r1  c                 óz   — t          |¦  «        }|€t                               d|¦  «         dS || j        _        dS )zuSet the horizontal scaling.

        :param scale: is a number specifying the percentage of the normal width
        NzECould not set horizontal scaling because %r is an invalid float value)r
   r—   r-  r  rR   )rX   r1  Úscale_fs      r>   Údo_TzzPDFPageInterpreter.do_TzW  sN   € õ
 ˜UÑ#Ô#ˆàˆ?Ý�KŠKØWØñô ð ð ð ð
 &-ˆDŒNÔ"Ð"Ð"r=   rS   c                 ó|   — t          |¦  «        }|€t                               d|¦  «         dS | | 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
        Nz?Could not set text leading because %r is an invalid float value)r
   r—   r-  r  rS   )rX   rS   Ú	leading_fs      r>   Údo_TLzPDFPageInterpreter.do_TLf  sQ   € õ ˜wÑ'Ô'ˆ	ØÐÝ�KŠKØQØñô ð ð ð ð
 '0 ZˆDŒNÔ"Ð"Ð"r=   r  rO   c                 ó|  — 	 | j         t          |¦  «                 | j        _        n[# t          $ rN}t
          j        rt          d|›�¦  «        |‚| j         	                    di ¦  «        | j        _        Y d}~nd}~ww xY wt          |¦  «        }|€t                               d|¦  «         dS || 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: Nz<Could not set text font because %r is an invalid float value)r  r.   r  rN   rŒ  r   r™   rA   rë   r›   r
   r—   r-  rO   )rX   r  rO   rŽ  Ú
fontsize_fs        r>   Údo_TfzPDFPageInterpreter.do_Tfv  sä   € ð	BØ"&¤,­|¸FÑ/CÔ/CÔ"DˆDŒNÔÐøÝð 	Bð 	Bð 	BÝŒð UÝ)Ð*JÀÐ*JÐ*JÑKÔKÐQTÐTØ"&¤,×"7Ò"7¸¸bÑ"AÔ"AˆDŒNÔÐÐÐÐÐøøøøð	Bøøøõ
   Ñ)Ô)ˆ
ØÐÝ�KŠKØNØñô ð ð ð ð
 '1ˆDŒNÔ#Ð#Ð#s   ‚$' §
A?±AA:Á:A?rT   c                 óz   — t          |¦  «        }|€t                               d|¦  «         dS || j        _        dS )zSet the text rendering modeNzDCould not set text rendering mode because %r is an invalid int value)r   r—   r-  r  rT   )rX   rT   Úrender_is      r>   Údo_TrzPDFPageInterpreter.do_Tr�  sM   € å˜FÑ#Ô#ˆàÐÝ�KŠKØVØñô ð ð ð ð
 %-ˆDŒNÔ!Ð!Ð!r=   rU   c                 óz   — t          |¦  «        }|€t                               d|¦  «         dS || j        _        dS )z`Set the text rise

        :param rise: a number expressed in unscaled text space units
        Nz<Could not set text rise because %r is an invalid float value)r
   r—   r-  r  rU   )rX   rU   Úrise_fs      r>   Údo_TszPDFPageInterpreter.do_Ts™  sN   € õ
 ˜DÑ!Ô!ˆàˆ>Ý�KŠKØNØñô ð ð ð ð
 #)ˆDŒNÔÐÐr=   ÚtxÚtyc                 ó*  — t          |¦  «        }t          |¦  «        }|�D|�B| j        j        \  }}}}}	}
||z  ||z  z   |	z   }||z  ||z  z   |
z   }||||||f| j        _        n"t          j        rt          d|›d|›d�¦  «        ‚d| j        _        dS )zlMove to the start of the next line

        Offset from the start of the current line by (tx , ty).
        NzInvalid offset (z, z) for Tdrc   )r
   r  rI   r   r™   r   rJ   ©rX   rú  rû  Útx_Úty_Úarž  rÈ   rã   ÚeÚfÚe_newÚf_news                r>   Údo_TdzPDFPageInterpreter.do_Td¨  s¿   € õ
 ˜‰nŒnˆÝ˜‰nŒnˆØˆ?˜s˜Ø!%¤Ô!6ÑˆQ��1�a˜˜AØ˜!‘G˜c A™gÑ%¨Ñ)ˆEØ˜!‘G˜c A™gÑ%¨Ñ)ˆEØ%&¨¨1¨a°¸Ð$>ˆDŒNÔ!Ð!åŒ_ð 	KÝÐ I°2Ð IÐ I¸2Ð IÐ IÐ IÑJÔJÐJà$*ˆŒÔ!Ð!Ð!r=   c                 ó8  — t          |¦  «        }t          |¦  «        }|�D|�B| j        j        \  }}}}}	}
||z  ||z  z   |	z   }||z  ||z  z   |
z   }||||||f| j        _        nt          j        rt          d¦  «        ‚|�|| j        _        d| j        _        dS )zÃMove to the start of the next line.

        offset from the start of the current line by (tx , ty). As a side effect, this
        operator sets the leading parameter in the text state.
        Nz"Invalid offset ({tx}, {ty}) for TDrc   )r
   r  rI   r   r™   r   rS   rJ   rý  s                r>   Údo_TDzPDFPageInterpreter.do_TDº  s»   € õ ˜‰nŒnˆÝ˜‰nŒnˆàˆ?˜s˜Ø!%¤Ô!6ÑˆQ��1�a˜˜AØ˜!‘G˜c A™gÑ%¨Ñ)ˆEØ˜!‘G˜c A™gÑ%¨Ñ)ˆEØ%&¨¨1¨a°¸Ð$>ˆDŒNÔ!Ð!åŒ_ð 	FÝÐ DÑEÔEÐEàˆ?Ø%(ˆDŒNÔ"à$*ˆŒÔ!Ð!Ð!r=   r   rã   r  r  c                 ó–   — ||||||f}t          |Ž }|€t                               d|¦  «         dS || j        _        d| j        _        dS )z$Set text matrix and text line matrixNzNCould not set text matrix because not all values in %r can be parsed as floatsrc   )r   r—   r-  r  rI   rJ   )	rX   r   rž  rÈ   rã   r  r  rm  rI   s	            r>   Údo_TmzPDFPageInterpreter.do_TmÑ  si   € ð �Q˜˜1˜a Ð#ˆÝ˜fÐ%ˆàˆ>Ý�KŠKð?àñô ð ð ð ð %+ˆDŒNÔ!Ø(.ˆDŒNÔ%Ð%Ð%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 linerc   N)r  rI   rS   rJ   )rX   r   rž  rÈ   rã   r  r  s          r>   Údo_T_azPDFPageInterpreter.do_T_aè  sg   € à!œ^Ô2ÑˆˆAˆq�!�Q˜àØØØØŒNÔ" QÑ&¨Ñ*ØŒNÔ" QÑ&¨Ñ*ð!
ˆŒÔð %+ˆŒÔ!Ð!Ð!r=   Úseqc                 ó  — | j         j        €t          j        rt	          d¦  «        ‚dS | j                             | j         t          t          |¦  «        | j	        j
        | j	                             ¦   «         ¦  «         dS )z0Show text, allowing individual glyph positioningNzNo font specified!)r  rN   r   r™   rA   rì   Úrender_stringr   r   r  ru   ra   )rX   r  s     r>   Údo_TJzPDFPageInterpreter.do_TJõ  s}   € àŒ>ÔÐ&ÝŒð @Ý)Ð*>Ñ?Ô?Ð?ØˆFØŒ×!Ò!ØŒNÝ•˜SÑ!Ô!ØÔÔ!ØÔ×"Ò"Ñ$Ô$ñ		
ô 	
ð 	
ð 	
ð 	
r=   Úsc                 ó2   — |                       |g¦  «         dS )z	Show textN)r  ©rX   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  )rX   r  r  r  s       r>   Údo__wzPDFPageInterpreter.do__w  s7   € ð
 	�
Š
�2‰ŒˆØ�
Š
�2‰ŒˆØ�
Š
�A�3‰Œˆˆˆr=   c                 ó   — dS )zBegin inline image objectNr<   rW   s    r>   Údo_BIzPDFPageInterpreter.do_BI  rD  r=   c                 ó   — dS )zBegin inline image dataNr<   rW   s    r>   Údo_IDzPDFPageInterpreter.do_ID  rD  r=   c                 ó0  — t          |t          ¦  «        r|d|v rzd|v rxt          t          |¦  «        ¦  «        }| j                             |dt          ¦  «         | j                             ||¦  «         | j                             |¦  «         dS dS dS dS )zEnd inline image objectÚWÚH©r   r   rª   rª   N)	rÝ   r    rf   Úidrì   Úbegin_figurer/   Úrender_imageÚ
end_figure)rX   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           	      óN  — t          |¦  «        }	 t          | j        |         ¦  «        }n7# t          $ r*}t          j        rt          d|›�¦  «        |‚Y d}~dS d}~w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t/          || j        ¦  «        ¬¦  «         | j                             |¦  «         dS |t4          u r`d	|v r\d
|v rX| j                             |dt           ¦  «         | j                             ||¦  «         | j                             |¦  «         dS dS )zInvoke named XObjectzUndefined xobject id: NzProcessing xobj: %rrŒ   ÚBBoxr0   Ú	Resources©r  ÚWidthÚHeightr!  )r.   r$   r  rŒ  r   r™   rA   r—   r˜   rÜ   ÚLITERAL_FORMr÷   r   r3   r"   r0   r/   r!   rø   ra   rì   r#  Úrender_contentsr5   r  r%  ÚLITERAL_IMAGEr$  )rX   r(  r  ÚxobjrŽ  rœ   ÚinterpreterÚbboxrI   Úxobjresrø   s              r>   Údo_DozPDFPageInterpreter.do_Do%  s  € å˜jÑ)Ô)ˆð	Ý ¤¨VÔ 4Ñ5Ô5ˆDˆDøÝð 	ð 	ð 	ÝŒð XÝ)Ð*MÀ6Ð*MÐ*MÑNÔNÐTWÐWØˆFˆFˆFˆ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Ø/6ÐQ�
 7Ñ+Ô+Ð+¸D¼N×<OÒ<OÑ<QÔ<QˆIØŒK×$Ò$ V¨T°6Ñ:Ô:Ð:Ø×'Ò'ØØ�Ý ¨¬Ñ1Ô1ð (ñ ô ð ð
 ŒK×"Ò" 6Ñ*Ô*Ð*Ð*Ð*Ø�Ð%Ð%¨'°T¨/¨/¸hÈ$Ð>NÐ>NØŒK×$Ò$ V¨\½?ÑKÔKÐKØŒK×$Ò$ V¨TÑ2Ô2Ð2ØŒK×"Ò" 6Ñ*Ô*Ð*Ð*Ð*ð ˆDs   ‘, ¬
A ¶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¸  rª   é´   i  r,  )
r—   r˜   ÚmediaboxÚrotaterì   Ú
begin_pager0  rø   ÚcontentsÚend_page)rX   r7  Úx0Úy0rQ  rR  r  s          r>   Úprocess_pagezPDFPageInterpreter.process_pageH  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"   )rX   rø   r¥   r  s       r>   r0  z"PDFPageInterpreter.render_contentsW  sn   € õ 	�	Š	Ø?ØØØñ		
ô 	
ð 	
ð 	×Ò˜IÑ&Ô&Ð&Ø�Š˜ÑÔÐØ�Š•Z Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r=   c                 ó¤  — g }| j                              ¦   «          |D ]—}t          |¦  «        }|j        €t                               d|¦  «         Œ4|j        | j        v r!t                               d|j        ¦  «         Œc|                     |¦  «         | j                              |j        ¦  «         Œ˜	 t          |¦  «        }n# t          $ r Y d S w xY w	 	 |                     ¦   «         \  }}n# t          $ r Y d S w xY wt          |t          ¦  «        �r"t          |¦  «        }d                     |                     dd¦  «                             dd¦  «                             d	d
¦  «        ¦  «        }t#          | |¦  «        r‘t%          | |¦  «        }	|	j        j        dz
  }
|
rJ|                      |
¦  «        }t                               d||¦  «         t/          |¦  «        |
k    r |	|Ž  n\t                               d|¦  «          |	¦   «          n6t0          j        rd|›�}t5          |¦  «        ‚n|                      |¦  «         �Œy)Nz8Execute called on non-indirect object (inline image?) %rz;Refusing to execute circular reference to content stream %dTzdo_{}Ú*Ú_aú"Ú_wú'Ú_qrª   zexec: %s %rzexec: %szUnknown operator: )rï   Úclearr$   rˆ   r—   r-  rð   r  Úaddr¤   r%   Ú
nextobjectrÝ   r)   r-   ÚformatÚreplaceÚhasattrÚgetattrÚ__code__Úco_argcountr  r˜   r¬   r   r™   rA   rÞ   )rX   r¥   Úvalid_streamsr`   ÚstreamÚparserrà   rÿ   ÚmethodÚfuncÚnargsÚargsrâ   s                r>   rD  zPDFPageInterpreter.executek  sƒ  € ð *,ˆØŒ×ÒÑÔÐØð 	2ð 	2ˆCÝ! #Ñ&Ô&ˆFØŒ|Ð#å—’ØNÐPVñô ð ð ØŒ|˜tÔ5Ð5Ð5Ý—’ØQØ”Lñô ð ð ð
 ×$Ò$ VÑ,Ô,Ð,Ø”×#Ò# F¤LÑ1Ô1Ð1Ð1ð	Ý% mÑ4Ô4ˆFˆFøÝð 	ð 	ð 	àˆFˆFð	øøøð	ðØ!×,Ò,Ñ.Ô.‘��C�CøÝð ð ð Ø��ðøøøå˜#�yÑ)Ô)ñ Ý# CÑ(Ô(�Ø ŸšØ—L’L  dÑ+Ô+ß’W˜S $Ñ'Ô'ß’WØØñô ñô �õ ˜4 Ñ(Ô(ð 9Ý" 4¨Ñ0Ô0�DØ œMÔ5¸Ñ9�EØð Ø#Ÿxšx¨™œ˜ÝŸ	š	 -°°tÑ<Ô<Ð<Ý˜t™9œ9¨Ò-Ð-Ø ˜D $˜K˜KøåŸ	š	 *¨dÑ3Ô3Ð3Ø˜™œ˜˜Ý”_ð 9Ø =°TÐ =Ð =�IÝ-¨iÑ8Ô8Ð8ð9ð —	’	˜#‘”�ñ=	s$   Â7C Ã
CÃCÃC2 Ã2
D Ã?D )rK   rê   rd   )hr9   r:   r;   r    ry   r   rY   ró   r÷   Údictr¢   r  r0   r  Ú	PDFStackTrÞ   rç   rþ   r  rè   rH   rh   r  r!  r#  r%  r.  r2  r4  r6  r9  r<  r>  r@  rC  rM  rP  r_  ra  rd  rh  rn  rr  rt  rw  ry  r{  r}  r  r�  rƒ  r…  r‡  r‰  r�  r’  r˜  r›  r£  r¦  r«  r®  rf   ÚStandardColorr´  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'  r6  r   rB  r/   r   r0  rD  r<   r=   r>   rê   rê   o  s¾  € € € € € ðð ð
1Ð 2ð 1¸Ið 1È$ð 1ð 1ð 1ð 1ð9ð 9ð 9ð 9ðð ð ð ð'4¨¨V°V¨^Ô(<ð '4Àð '4ð '4ð '4ð '4ðR
,˜fð 
,¨ð 
,ð 
,ð 
,ð 
,ð"˜	ð " dð "ð "ð "ð "ð�Sð ˜T )œ_ð ð ð ð ðK 5¨°¸Ð)NÔ#Oð Kð Kð Kð Kð&à�V˜\¨?Ð:Ô;ð&ð 
ð&ð &ð &ð &ð5ð 5ð 5ð 5ð6ð 6ð 6ð 6ð
*àð*ð ð*ð ð	*ð
 ð*ð ð*ð ð*ð 
ð*ð *ð *ð *ð,
>˜ið 
>¨Dð 
>ð 
>ð 
>ð 
>ð,˜Ið ,¨$ð ,ð ,ð ,ð ,ð.˜Yð .¨4ð .ð .ð .ð .ð2˜yð 2¨Tð 2ð 2ð 2ð 2ð/˜ð /¨9ð /¸ð /ð /ð /ð /ð*˜Ið *¨$ð *ð *ð *ð *ð.˜Yð .¨4ð .ð .ð .ð .ðF˜)ð F¨ð Fð Fð Fð Fð'�ið ' Ið '°$ð 'ð 'ð 'ð 'ð '�ið ' Ið '°$ð 'ð 'ð 'ð 'ð 'àð 'ð ð 'ð ð	 'ð
 ð 'ð ð 'ð ð 'ð 
ð 'ð  'ð  'ð  'ðD'�yð ' ið '°Yð 'ÀIð 'ÐRVð 'ð 'ð 'ð 'ð"'�yð ' ið '°Yð 'ÀIð 'ÐRVð 'ð 'ð 'ð 'ð"$ð $ð $ð $ð(�yð ( Yð (°9ð (Àð (Ètð (ð (ð (ð (ð*ð ð ð ð
ð ð ð ð
ð ð ð ð
Eð Eð Eð Eðð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ð
ð ð ð ðBð Bð Bð Bð4ð 4ð 4ð 4ð	V˜)ð 	V¨ð 	Vð 	Vð 	Vð 	VðV˜)ð V¨ð Vð Vð Vð Vð=˜ð = tð =ð =ð =ð =ð=˜ð = tð =ð =ð =ð =ð<�yð < Yð <°9ð <Àð <ð <ð <ð <ð<�yð < Yð <°9ð <Àð <ð <ð <ð <ð=�ið = Ið =°)ð =À	ð =Èdð =ð =ð =ð =ð=�ið = Ið =°)ð =À	ð =Èdð =ð =ð =ð =ð1Ø˜yœ/ð1Ø47ð1à	˜Ñ	ð1ð 1ð 1ð 1ðf@ð @ð @ð @ðDBð Bð Bð BðHð ð ð ðð ð ð ð4˜&ð 4 Tð 4ð 4ð 4ð 4ðð ð ð ð ð  ð  ð  ð*ð *ð *ð *ð(ð (ð (ð (ð˜ð  tð ð ð ð ð	˜ð 	¨9ð 	¸ð 	ð 	ð 	ð 	ð˜)ð ¨ð ð ð ð ð	˜)ð 	¨Ið 	¸$ð 	ð 	ð 	ð 	ðð ð ð ð1˜9ð 1¨ð 1ð 1ð 1ð 1ð 1˜9ð 1¨ð 1ð 1ð 1ð 1ð -˜9ð -¨ð -ð -ð -ð -ð0˜Yð 0¨4ð 0ð 0ð 0ð 0ð 1˜Ið 1°ð 1¸tð 1ð 1ð 1ð 1ð.
-˜Ið 
-¨$ð 
-ð 
-ð 
-ð 
-ð)˜)ð )¨ð )ð )ð )ð )ð+˜	ð + yð +°Tð +ð +ð +ð +ð$+˜	ð + yð +°Tð +ð +ð +ð +ð./àð/ð ð/ð ð	/ð
 ð/ð ð/ð ð/ð 
ð/ð /ð /ð /ð.+ð +ð +ð +ð
˜ð 
 tð 
ð 
ð 
ð 
ð�yð  Tð ð ð ð ð�yð  Tð ð ð ð ð˜	ð  yð °Yð À4ð ð ð ð ð(ð (ð (ð (ð&ð &ð &ð &ð+˜ð + tð +ð +ð +ð +ð! 	ð !¨dð !ð !ð !ð !ðF# ð #¨Tð #ð #ð #ð #ð& &ð	*ð *à˜ ˜Ô'ð*ð ˜&Ô!ð*ð ð	*ð
 
ð*ð *ð *ð *ð(<˜x¨Ô/ð <°Dð <ð <ð <ð <ð <ð <r=   rê   )YÚloggingrÃ   Úcollections.abcr   r   Úior   Útypingr   r   Úpdfminerr   Úpdfminer.castingr	   r
   r   r   r   Úpdfminer.cmapdbr   r   r   Úpdfminer.pdfcolorr   r   Úpdfminer.pdfdevicer   r   Úpdfminer.pdfexceptionsr   r   Úpdfminer.pdffontr   r   r   r   r   r   Úpdfminer.pdfpager   Úpdfminer.pdftypesr   r   r    r!   r"   r#   r$   Úpdfminer.psexceptionsr%   r&   Úpdfminer.psparserr'   r(   r)   r*   r+   r,   r-   r.   Úpdfminer.utilsr/   r0   r1   r2   r3   r4   r5   Ú	getLoggerr9   r—   r7   rA   r   r€   rš   r/  r1  rH   Úfloatrè   r^  rf   ÚColorrh   ry   r¤   r]  rê   r<   r=   r>   ú<module>rr     s¤  ðØ €€€Ø 	€	€	€	Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð %Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ð	ð 	ð 	ð 	ð 	�|ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	˜,ñ 	ô 	ð 	ð ˆc�%‰jŒj€Øˆs�6‰{Œ{€Øˆs�6‰{Œ{€Øˆs�6‰{Œ{€Ø��G‘”€ð/!ð /!ð /!ð /!ð /!ñ /!ô /!ð /!ðf Ø	Ø	ˆ%�˜Ð
ÔØ	ˆ%�˜˜uÐ
$Ô%ð'ô€ð 	ØØØ	Ø�sÐôðô	€ð-
ð -
ð -
ð -
ð -
ñ -
ô -
ð -
ð`Dð Dð Dð Dð Dñ Dô Dð DðNh$ð h$ð h$ð h$ð h$�} U¨9°iÐ+?Ô%@ÔAñ h$ô h$ð h$ðX ˜	Ô"€	ðxð xð xð xð xñ xô xð xð xð xr=   