§
    ‚Øj�‘ ã                   ó|  — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlZdd	l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& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z/ ddl0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z= ddlm>Z> ddl?m@Z@  ejA        eB¦  «        ZCd<d„ZDd„ ZEd„ ZFd=d„ZGd=d„ZHd=d„ZIeJ K                    ddd d!d"d#œ¦  «        ZLd$„ ZM G d%„ d&¦  «        ZNe G d'„ d(¦  «        ¦   «         ZO G d)„ d*¦  «        ZP G d+„ d,e¦  «        ZQ G d-„ d.¦  «        ZRd/„ ZS G d0„ d1¦  «        ZT G d2„ d3e@jU        ¦  «        ZV G d4„ d5e%¦  «        ZW G d6„ d7¦  «        ZX G d8„ d9e#¦  «        ZYe$ZZe"j[         G d:„ d;e"¦  «        ¦   «         Z\dS )>uO   
A PDF Matplotlib backend.

Author: Jouni K SeppÃ¤nen <jks@iki.fi> and others.
é    N)Útimezone)Údatetime)ÚEnum)Útotal_ordering)ÚBytesIO)ÚImage)Ú_apiÚ_text_helpersÚ
_type1fontÚcbookÚdviread)ÚGcf)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚMixedModeRenderer)ÚFigure)ÚFontPathÚget_fontÚfontManager)ÚAFM)ÚFT2FontÚ	FaceFlagsÚ	LoadFlagsÚ
StyleFlags)ÚAffine2DÚBboxBase)ÚPath)ÚUTC)Ú_pathé   )Ú_backend_pdf_pséK   c                 ól  — d}d}g }t          | ¦  «        D ]Z\  }}t          |¦  «        }||z   |k     r	||dz   z  }Œ&|                     d                     | ||…         ¦  «        ¦  «         |}|}Œ[|                     d                     | |d…         ¦  «        ¦  «         d                     |¦  «        S )z­
    Make one string from sequence of strings, with whitespace in between.

    The whitespace is chosen to form lines of at most *linelen* characters,
    if possible.
    r   r#   ó    Nó   
)Ú	enumerateÚlenÚappendÚjoin)ÚstringsÚlinelenÚcurrposÚlastiÚresultÚiÚsÚlengths           ú”/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/backends/backend_pdf.pyÚ_fillr6   ^   sÄ   € ð €GØ€EØ€FÝ˜'Ñ"Ô"ð ð ‰ˆˆ1Ý�Q‘”ˆØ�VÑ˜gÒ%Ð%Ø�v ‘zÑ!ˆGˆGà�MŠM˜$Ÿ)š) G¨E°!¨GÔ$4Ñ5Ô5Ñ6Ô6Ð6ØˆEØˆGˆGØ
‡M‚M�$—)’)˜G E F FœOÑ,Ô,Ñ-Ô-Ð-Ø�:Š:�fÑÔÐó    c           
      óì  — t          j        d¦  «        }|rHt          j        t	          |¦  «        t
          j        ¦  «        }|                     t          ¬¦  «        }nt          j	        ¦   «         }dt          j        › d�d| › dt          j        › �|dœ|¥}d„ |                     ¦   «         D ¦   «         }d	„ }d
|_        d„ }d|_        d„ }d|_        |||||||||dœ	}|D ]u}	|	|vr)t          j        d|	›dt!          |¦  «        ›d�¦  «         Œ/ ||	         ||	         ¦  «        s/t          j        d|	› d||	         ›d||	         j        › d�¦  «         Œvd|v rt#          |d         ¦  «        |d<   |S )aÓ  
    Create a PDF infoDict based on user-supplied metadata.

    A default ``Creator``, ``Producer``, and ``CreationDate`` are added, though
    the user metadata may override it. The date may be the current time, or a
    time set by the ``SOURCE_DATE_EPOCH`` environment variable.

    Metadata is verified to have the correct keys and their expected types. Any
    unknown keys/types will raise a warning.

    Parameters
    ----------
    backend : str
        The name of the backend to use in the Producer value.

    metadata : dict[str, Union[str, datetime, Name]]
        A dictionary of metadata supplied by the user with information
        following the PDF specification, also defined in
        `~.backend_pdf.PdfPages` below.

        If any value is *None*, then the key will be removed. This can be used
        to remove any pre-defined values.

    Returns
    -------
    dict[str, Union[str, datetime, Name]]
        A validated dictionary of metadata.
    ÚSOURCE_DATE_EPOCH)ÚtzinfozMatplotlib vz, https://matplotlib.orgzMatplotlib z
 backend v)ÚCreatorÚProducerÚCreationDatec                 ó   — i | ]
\  }}|®||“ŒS ©N© ©Ú.0ÚkÚvs      r5   ú
<dictcomp>z)_create_pdf_info_dict.<locals>.<dictcomp>¡   s   € Ð=Ð=Ð=‘V�a˜¨q¨}ˆAˆq¨}¨}¨}r7   c                 ó,   — t          | t          ¦  «        S r?   )Ú
isinstanceÚstr©Úxs    r5   Úis_string_likez-_create_pdf_info_dict.<locals>.is_string_like£   s   € Ý˜!�SÑ!Ô!Ð!r7   zan instance of strc                 ó,   — t          | t          ¦  «        S r?   )rG   r   rI   s    r5   Úis_datez&_create_pdf_info_dict.<locals>.is_date§   s   € Ý˜!�XÑ&Ô&Ð&r7   z an instance of datetime.datetimec                 óF   — t          | t          ¦  «        r	| j        dv S | dv S )N)s   Trues   Falses   Unknown)ÚTrueÚFalseÚUnknown©rG   ÚNameÚnamerI   s    r5   Úcheck_trappedz,_create_pdf_info_dict.<locals>.check_trapped«   s.   € Ý�a�ÑÔð 	5Ø”6Ð<Ð<Ð<àÐ4Ð4Ð4r7   z#one of {"True", "False", "Unknown"})	ÚTitleÚAuthorÚSubjectÚKeywordsr;   r<   r=   ÚModDateÚTrappedzUnknown infodict keyword: z. Must be one of ú.zBad value for infodict keyword z. Got z which is not r[   )ÚosÚgetenvr   ÚfromtimestampÚintr   ÚutcÚreplacer!   ÚtodayÚmplÚ__version__ÚitemsÚtext_for_warningr	   Úwarn_externalÚsetrS   )
ÚbackendÚmetadataÚsource_date_epochÚsource_dateÚinforK   rM   rU   ÚkeywordsrC   s
             r5   Ú_create_pdf_info_dictrp   t   s8  € õ@ œ	Ð"5Ñ6Ô6ÐØð 'ÝÔ,­SÐ1BÑ-CÔ-CÅXÄ\ÑRÔRˆØ!×)Ò)µÐ)Ñ5Ô5ˆˆå”nÑ&Ô&ˆð L¥#¤/ÐKÐKÐKØF 'ÐFÐFµS´_ÐFÐFØ#ðð ð ð	€Dð >Ð=˜tŸzšz™|œ|Ð=Ñ=Ô=€Dð"ð "ð "à&:€NÔ#ð'ð 'ð 'àA€GÔð5ð 5ð 5ð
 &K€MÔ"ð  Ø Ø!Ø"Ø!Ø"ØØØ ð
ð 
€Hð ð Cð CˆØ�HÐÐÝÔð  D¸Að  Dð  DÝ14°X±´ð Dð  Dð  Dñ Eô Eð Eð Eà�˜!”˜T !œWÑ%Ô%ð 	CÝÔð  BÀð  Bð  BØ&*¨1¤gð Bð  Bà"*¨1¤+Ô">ð Bð  Bð  Bñ Cô Cð Cøð �DÐÐÝ˜t IœÑ/Ô/ˆˆY‰à€Kr7   c                 ó   — |                       d¦  «        }|                      ¦   «         }|�|j        }n%t          j        rt          j        }nt          j        }|dk    r|dz  }n)|dk     r|d| dz  | dz  fz  z  }n|d|dz  |dz  fz  z  }|S )zX
    Convert a datetime to a PDF string representing it.

    Used for PDF and PGF.
    zD:%Y%m%d%H%M%SNr   ÚZz+%02d'%02d'i  z-%02d'%02d')ÚstrftimeÚ	utcoffsetÚsecondsÚtimeÚdaylightÚaltzoner   )ÚdÚrÚzs      r5   Ú_datetime_to_pdfr|   Ë   s«   € ð 	
�
Š
Ð#Ñ$Ô$€AØ	�Š‰Œ€AØ€}ØŒIˆˆåŒ=ð 	Ý”ˆAˆAå”ˆAØˆA‚v€vØ	ˆS‰ˆˆØ	
ˆQŠˆØ	ˆ] ˜r d™l¨a¨R°4©KÐ8Ñ8Ñ8ˆˆà	ˆ]˜a 4™i¨¨T©Ð2Ñ2Ñ2ˆØ€Hr7   c                 ó  — t          j        | ¦  «        }t          j        |¦  «        }t          j        |¦  «        }| ||z  z   }|||z  z   }| ||z  z   ||z  z   }	|||z  z
  ||z  z   }
| ||z  z   }|||z  z
  }| |f||f|	|
f||ffS )zR
    Calculate the coordinates of rectangle when rotated by angle around x, y
    )ÚmathÚradiansÚsinÚcos)rJ   ÚyÚwidthÚheightÚangleÚ	sin_angleÚ	cos_angleÚaÚbÚcry   ÚeÚfs                r5   Ú!_calculate_quad_point_coordinatesr�   ã   s¼   € õ
 ŒL˜%˜Ñ Ô €EÝ”˜‘”€IÝ”˜‘”€IØ	ˆF�YÑÑ€AØ	ˆF�YÑÑ€AØ	ˆE�IÑÑ ¨Ñ 2Ñ2€AØ	ˆE�IÑÑ ¨Ñ 2Ñ2€AØ	ˆE�IÑÑ€AØ	ˆE�IÑÑ€AØ�ˆF�Q˜�F˜Q ˜F Q¨ FÐ+Ð+r7   c                 ó~  — t          | ||||¦  «        }|dz  rdnd}t          d„ |D ¦   «         ¦  «        |z
  }t          d„ |D ¦   «         ¦  «        |z
  }t          d„ |D ¦   «         ¦  «        |z   }	t          d„ |D ¦   «         ¦  «        |z   }
t          t          j                             |¦  «        ¦  «        |||	|
ffS )zg
    Get the coordinates of rotated rectangle and rectangle that covers the
    rotated rectangle.
    éZ   gñhãˆµøä>r   c              3   ó&   K  — | ]}|d          V — ŒdS ©r   Nr@   ©rB   rD   s     r5   ú	<genexpr>z,_get_coordinates_of_block.<locals>.<genexpr>  ó&   è è € Ð'Ð'˜��!”Ð'Ð'Ð'Ð'Ð'Ð'r7   c              3   ó&   K  — | ]}|d          V — ŒdS ©r#   Nr@   r’   s     r5   r“   z,_get_coordinates_of_block.<locals>.<genexpr>  r”   r7   c              3   ó&   K  — | ]}|d          V — ŒdS r‘   r@   r’   s     r5   r“   z,_get_coordinates_of_block.<locals>.<genexpr>  r”   r7   c              3   ó&   K  — | ]}|d          V — ŒdS r–   r@   r’   s     r5   r“   z,_get_coordinates_of_block.<locals>.<genexpr>  r”   r7   )r�   ÚminÚmaxÚtupleÚ	itertoolsÚchainÚfrom_iterable)rJ   r‚   rƒ   r„   r…   ÚverticesÚpadÚmin_xÚmin_yÚmax_xÚmax_ys              r5   Ú_get_coordinates_of_blockr¥   ô   sé   € õ 1°°A°uØ17¸ñ@ô @€Hð ˜R‘ZÐ
&ˆ'ˆ' Q€CÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝÐ'Ð'˜hÐ'Ñ'Ô'Ñ'Ô'¨#Ñ-€EÝ•)”/×/Ò/°Ñ9Ô9Ñ:Ô:Ø�E˜5 %Ð(ð*ð *r7   c                 óÒ   — t          |||||¦  «        \  }}t          d¦  «        t          d¦  «        |g d¢t          d¦  «        |                      ¦   «         dœdœ}|dz  r||d<   |S )	z=
    Create a link annotation object for embedding URLs.
    ÚAnnotÚLink©r   r   r   ÚURI)ÚSrª   )ÚTypeÚSubtypeÚRectÚBorderÚAr�   Ú
QuadPoints)r¥   rS   Úget_url)	ÚgcrJ   r‚   rƒ   r„   r…   Ú
quadpointsÚrectÚlink_annotations	            r5   Ú_get_link_annotationr·     s‚   € õ 1°°A°u¸fÀeÑLÔLÑ€J�å�W‘”Ý˜‘<”<ØØ�)�)å�e‘”Ø—:’:‘<”<ð
ð 
ð	ð 	€Oð ˆr�zð 3à(2ˆ˜Ñ%ØÐr7   z\\z\(z\)z\nz\r)ú\ú(ú)ú
úc                 óT  — t          | d¦  «        r|                      ¦   «         S t          | t          t          j        f¦  «        rPt	          j        | ¦  «        st          d¦  «        ‚d| z  }|                     d¦  «                             d¦  «        S t          | t          ¦  «        r
ddg|          S t          | t          t          j        f¦  «        rd| z  S t          | t          ¦  «        rXt          |                      ¦   «         r|                      d	¦  «        n!t          j        |                      d
¦  «        z   ¦  «        S t          | t"          ¦  «        rFd|                      d¦  «                             t(          ¦  «                             d¦  «        z   dz   S t          | t*          ¦  «        r0t-          dgd„ |                      ¦   «         D ¦   «         ¢d‘¦  «        S t          | t0          t2          f¦  «        rt-          dgd„ | D ¦   «         ¢d‘¦  «        S | €dS t          | t4          ¦  «        rt          t7          | ¦  «        ¦  «        S t          | t8          ¦  «        rt-          d„ | j        D ¦   «         ¦  «        S t=          dt?          | ¦  «        › d�¦  «        ‚)z!Map Python objects to PDF syntax.ÚpdfReprz%Can only output finite numbers in PDFs   %.10fó   0ó   .s   falses   trues   %dÚasciizUTF-16BEó   (úlatin-1ó   )s   <<c                 ó|   — g | ]9\  }}t          |¦  «                             ¦   «         d z   t          |¦  «        z   ‘Œ:S )r'   )rS   r¾   rA   s      r5   ú
<listcomp>zpdfRepr.<locals>.<listcomp>Z  s<   € ÐLÐLÐL¹¸¸1�d�1‰gŒg�oŠoÑÔ $Ñ&­°©¬Ñ3ÐLÐLÐLr7   s   >>ó   [c                 ó,   — g | ]}t          |¦  «        ‘ŒS r@   ©r¾   ©rB   Úvals     r5   rÆ   zpdfRepr.<locals>.<listcomp>`  s   € Ð:Ð:Ð:¨s�g c™lœlÐ:Ð:Ð:r7   ó   ]Ns   nullc                 ó,   — g | ]}t          |¦  «        ‘ŒS r@   rÉ   rÊ   s     r5   rÆ   zpdfRepr.<locals>.<listcomp>l  s   € Ð9Ð9Ð9 s•g˜c‘l”lÐ9Ð9Ð9r7   z$Don't know a PDF representation for z objects) Úhasattrr¾   rG   ÚfloatÚnpÚfloatingÚisfiniteÚ
ValueErrorÚrstripÚboolr`   ÚintegerrH   ÚisasciiÚencodeÚcodecsÚBOM_UTF16_BEÚbytesÚdecodeÚ	translateÚ_str_escapesÚdictr6   rf   Úlistr›   r   r|   r   ÚboundsÚ	TypeErrorÚtype)Úobjrz   s     r5   r¾   r¾   *  sº  € õ ˆs�IÑÔð B#Ø�{Š{‰}Œ}Ðõ
 
�C�%¥¤Ð-Ñ	.Ô	.ð <#ÝŒ{˜3ÑÔð 	FÝÐDÑEÔEÐEØ�s‰NˆØ�xŠx˜‰~Œ~×$Ò$ TÑ*Ô*Ð*õ 
�C�Ñ	Ô	ð 4#Ø˜'Ð" 3Ô'Ð'õ 
�C�#�rœzÐ*Ñ	+Ô	+ð 0#Ø�s‰{Ðõ 
�C�Ñ	Ô	ð ,#Ý¨c¯kªk©m¬mð I�s—z’z 'Ñ*Ô*Ð*Ý"Ô/°#·*²*¸ZÑ2HÔ2HÑHñJô Jð 	Jõ 
�C�Ñ	Ô	ð ##àØ�JŠJ�yÑ!Ô!×+Ò+­LÑ9Ô9×@Ò@ÀÑKÔKñLàñð	õ 
�C�Ñ	Ô	ð #ÝØð
àLÐLÀÇ	Â	ÁÄÐLÑLÔLð
ð ð
ñ ô ð 	õ 
�C�$¥˜Ñ	'Ô	'ð #Ý�dÐAÐ:Ð:°cÐ:Ñ:Ô:ÐA¸DÐAÑBÔBÐBð 
ˆØˆwõ 
�C�Ñ	"Ô	"ð 	#ÝÕ'¨Ñ,Ô,Ñ-Ô-Ð-õ 
�C�Ñ	"Ô	"ð #ÝÐ9Ð9¨c¬jÐ9Ñ9Ô9Ñ:Ô:Ð:õ ð "½tÀC¹y¼yð "ð "ð "ñ #ô #ð 	#r7   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú	ReferencezV
    PDF reference object.

    Use PdfFile.reserveObject() to create References.
    c                 ó   — || _         d S r?   ©Úid©Úselfré   s     r5   Ú__init__zReference.__init__z  s   € ØˆŒˆˆr7   c                 ó   — d| j         z  S )Nz<Reference %d>rè   ©rë   s    r5   Ú__repr__zReference.__repr__}  s   € Ø $¤'Ñ)Ð)r7   c                 ó   — d| j         z  S )Ns   %d 0 Rrè   rî   s    r5   r¾   zReference.pdfRepr€  s   € Ø˜4œ7Ñ"Ð"r7   c                 ó€   — |j         } |d| j        z  ¦  «          |t          |¦  «        ¦  «          |d¦  «         d S )Nó	   %d 0 obj
s   
endobj
)Úwriteré   r¾   )rë   ÚcontentsÚfileró   s       r5   ró   zReference.writeƒ  sN   € Ø”
ˆØˆˆm˜dœgÑ%Ñ&Ô&Ð&Øˆ�g�hÑÔÑ Ô Ð ØˆˆmÑÔÐÐÐr7   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rì   rï   r¾   ró   r@   r7   r5   ræ   ræ   s  sZ   € € € € € ðð ðð ð ð*ð *ð *ð#ð #ð #ðð ð ð ð r7   ræ   c            	       ó¶   — e Zd ZdZdZd„ h  ed¦  «        £h  e ed¦  «         ed¦  «        dz   ¦  «        £z
  D ¦   «         Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ ZdS )rS   zPDF name object.©rT   c                 ó   — i | ]}|d |z  “Œ	S )z#%02xr@   ©rB   rŠ   s     r5   rE   zName.<dictcomp>Ž  s4   € ð Jð Jð JØð �'˜A‘+ð Jð Jð Jr7   é   ú!ú~r#   c                 ó  — t          |t          ¦  «        r|j        | _        d S t          |t          ¦  «        r|                     d¦  «        }|                     | j        ¦  «                             d¦  «        | _        d S )NrÁ   )rG   rS   rT   rÛ   rÜ   rÝ   Ú_hexifyrØ   )rë   rT   s     r5   rì   zName.__init__‘  sl   € Ý�d�DÑ!Ô!ð 	EØœ	ˆDŒIˆIˆIå˜$¥Ñ&Ô&ð ,Ø—{’{ 7Ñ+Ô+�ØŸš t¤|Ñ4Ô4×;Ò;¸GÑDÔDˆDŒIˆIˆIr7   c                 ó   — d| j         z  S )Nz	<Name %s>rû   rî   s    r5   rï   zName.__repr__™  s   € Ø˜TœYÑ&Ð&r7   c                 ó<   — d| j                              d¦  «        z   S )Nú/rÁ   )rT   rÜ   rî   s    r5   Ú__str__zName.__str__œ  s   € Ø�T”Y×%Ò% gÑ.Ô.Ñ.Ð.r7   c                 óL   — t          |t          ¦  «        o| j        |j        k    S r?   rR   ©rë   Úothers     r5   Ú__eq__zName.__eq__Ÿ  s    € Ý˜%¥Ñ&Ô&ÐB¨4¬9¸¼
Ò+BÐBr7   c                 óL   — t          |t          ¦  «        o| j        |j        k     S r?   rR   r  s     r5   Ú__lt__zName.__lt__¢  s    € Ý˜%¥Ñ&Ô&ÐA¨4¬9°u´zÒ+AÐAr7   c                 ó*   — t          | j        ¦  «        S r?   )ÚhashrT   rî   s    r5   Ú__hash__zName.__hash__¥  s   € Ý�D”I‰ŒÐr7   c                 ó   — d| j         z   S )Nó   /rû   rî   s    r5   r¾   zName.pdfRepr¨  s   € Ø�d”iÑÐr7   N)rö   r÷   rø   rù   Ú	__slots__ÚrangeÚordr  rì   rï   r  r
  r  r  r¾   r@   r7   r5   rS   rS   Š  së   € € € € € àÐØ€IðJð JØ%˜%˜% ™*œ*˜Ð(H¨%¨%°°°C±´¸#¸#¸c¹(¼(ÀQ¹,Ñ*GÔ*GÐ(HÑHðJñ Jô J€GðEð Eð Eð'ð 'ð 'ð/ð /ð /ðCð Cð CðBð Bð Bðð ð ð ð  ð  ð  ð  r7   rS   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚVerbatimzEStore verbatim PDF command content for later inclusion in the stream.c                 ó   — || _         d S r?   ©Ú_x)rë   rJ   s     r5   rì   zVerbatim.__init__®  s   € ØˆŒˆˆr7   c                 ó   — | j         S r?   r  rî   s    r5   r¾   zVerbatim.pdfRepr±  s	   € ØŒwˆr7   N)rö   r÷   rø   rù   rì   r¾   r@   r7   r5   r  r  ¬  s8   € € € € € ØOÐOðð ð ðð ð ð ð r7   r  c                   óÆ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(„ Z*e+d)„ ¦   «         Z,d*S )+ÚOpz'PDF operators (not an exhaustive list).ó   bó   Bó   fó   hó   só   Só   ns   BTs   ETó   cs   reó   ló   ms   cms   Doó   Gó   gs   RGs   rgs   CSs   css   SCNs   scnó   dó   jó   Js   gsó   qó   Qs   Tds   Tfs   Tms   Tss   Tjs   TJó   wó   Ws   shc                 ó   — | j         S r?   )Úvaluerî   s    r5   r¾   z
Op.pdfReprß  s
   € ØŒzÐr7   c                 óF   — |r|r| j         S | j        S |r| j        S | j        S )zú
        Return the PDF operator to paint a path.

        Parameters
        ----------
        fill : bool
            Fill the path with the fill color.
        stroke : bool
            Stroke the outline of the path with the line color.
        )Úfill_strokeÚstrokeÚfillÚendpath)Úclsr5  r4  s      r5   Ú
paint_pathzOp.paint_pathâ  s;   € ð ð 		#Øð "Ø”Ð&à”zÐ!àð #Ø”x�à”{Ð"r7   N)-rö   r÷   rø   rù   Úclose_fill_stroker3  r5  Ú	closepathÚclose_stroker4  r6  Ú
begin_textÚend_textÚcurvetoÚ	rectangleÚlinetoÚmovetoÚconcat_matrixÚuse_xobjectÚsetgray_strokeÚsetgray_nonstrokeÚsetrgb_strokeÚsetrgb_nonstrokeÚsetcolorspace_strokeÚsetcolorspace_nonstrokeÚsetcolor_strokeÚsetcolor_nonstrokeÚsetdashÚsetlinejoinÚ
setlinecapÚ	setgstateÚgsaveÚgrestoreÚtextposÚ
selectfontÚ
textmatrixÚtextriseÚshowÚshowkernÚsetlinewidthÚclipÚshadingr¾   Úclassmethodr8  r@   r7   r5   r  r  µ  s  € € € € € Ø1Ð1àÐØ€KØ€DØ€IØ€LØ€FØ€GØ€JØ€HØ€GØ€IØ€FØ€FØ€MØ€KØ€NØÐØ€MØÐØ ÐØ#ÐØ€OØÐØ€GØ€KØ€JØ€IØ€EØ€HØ€GØ€JØ€JØ€HØ€DØ€HØ€LØ€DØ€Gðð ð ð ð#ð #ñ „[ð#ð #ð #r7   r  c                   ó6   — e Zd ZdZdZd	d„Zd„ Zd„ Zd„ Zd„ Z	dS )
ÚStreamz«
    PDF stream object.

    This has no pdfRepr method. Instead, call begin(), then output the
    contents of the stream by calling write(), and finally call end().
    )ré   r*   ÚpdfFilerõ   ÚcompressobjÚextraÚposNc                 ó`  — || _         || _        || _        |j        | _        d| _        |€t          ¦   «         | _        n|                     ¦   «         | _        |�*| j         	                    t          d¦  «        |dœ¦  «         | j                             | j         ¦  «         t          j        d         r+|s)t          j        t          j        d         ¦  «        | _        | j        €t          ¦   «         | _        dS |                      ¦   «          | j                             ¦   «         | _        dS )a@  
        Parameters
        ----------
        id : int
            Object id of the stream.
        len : Reference or None
            An unused Reference object for the length of the stream;
            None means to use a memory buffer so the length can be inlined.
        file : PdfFile
            The underlying object to write the stream to.
        extra : dict from Name to anything, or None
            Extra key-value pairs to include in the stream header.
        png : dict or None
            If the data is already png encoded, the decode parameters.
        NÚFlateDecode)ÚFilterÚDecodeParmsúpdf.compression)ré   r*   r^  Úfhrõ   r_  rß   r`  ÚcopyÚupdaterS   Ú
recordXrefrd   ÚrcParamsÚzlibr   Ú_writeHeaderÚtellra  )rë   ré   r*   rõ   r`  Úpngs         r5   rì   zStream.__init__  s  € ð  ˆŒØˆŒØˆŒØ”GˆŒ	ØˆÔØˆ=Ý™œˆDŒJˆJàŸš™œˆDŒJØˆ?ØŒJ×Ò­d°=Ñ.AÔ.AØ.1ð3ð 3ñ 4ô 4ð 4ð 	Œ×Ò ¤Ñ(Ô(Ð(ÝŒ<Ð)Ô*ð 	1°3ð 	1Ý#Ô/Ý”Ð.Ô/ñ 1ô  1ˆDÔàŒ8ÐÝ™	œ	ˆDŒIˆIˆIà×ÒÑÔÐØ”y—~’~Ñ'Ô'ˆDŒHˆHˆHr7   c                 óô   — | j         j        } |d| j        z  ¦  «         | j        }| j        |d<   t
          j        d         rt          d¦  «        |d<    |t          |¦  «        ¦  «          |d¦  «         d S )Nrò   ÚLengthrf  rc  rd  s   
stream
)	rõ   ró   ré   r`  r*   rd   rk  rS   r¾   )rë   ró   rß   s      r5   rm  zStream._writeHeader*  s�   € Ø”	”ˆØˆˆm˜dœgÑ%Ñ&Ô&Ð&ØŒzˆØœˆˆX‰ÝŒ<Ð)Ô*ð 	1Ý! -Ñ0Ô0ˆD�‰Nàˆ�g�d‰mŒmÑÔÐØˆˆmÑÔÐÐÐr7   c                 ó  — |                       ¦   «          | j        €ˆ| j                             ¦   «         }t          |¦  «        | _        | j        j        | _        |                      ¦   «          | j                             |¦  «         | j                             d¦  «         dS | j                             ¦   «         | j	        z
  }| j                             d¦  «         | j         
                    | j        |¦  «         dS )zFinalize stream.Ns   
endstream
endobj
)Ú_flushr*   rõ   Úgetvaluer^  rg  rm  ró   rn  ra  ÚwriteObject)rë   rô   r4   s      r5   Úendz
Stream.end5  sÒ   € ð 	�Š‰ŒˆØŒ8ÐØ”y×)Ò)Ñ+Ô+ˆHÝ˜8‘}”}ˆDŒHØœœˆDŒIØ×ÒÑÔÐØŒI�OŠO˜HÑ%Ô%Ð%ØŒI�OŠOÐ4Ñ5Ô5Ð5Ð5Ð5à”Y—^’^Ñ%Ô%¨¬Ñ0ˆFØŒI�OŠOÐ4Ñ5Ô5Ð5ØŒL×$Ò$ T¤X¨vÑ6Ô6Ð6Ð6Ð6r7   c                 ó´   — | j         €| j                             |¦  «         dS | j                              |¦  «        }| j                             |¦  «         dS )zWrite some data on the stream.N)r_  rõ   ró   Úcompress)rë   ÚdataÚ
compresseds      r5   ró   zStream.writeE  sW   € ð ÔÐ#ØŒI�OŠO˜DÑ!Ô!Ð!Ð!Ð!àÔ)×2Ò2°4Ñ8Ô8ˆJØŒI�OŠO˜JÑ'Ô'Ð'Ð'Ð'r7   c                 óŒ   — | j         �<| j                              ¦   «         }| j                             |¦  «         d| _         dS dS )zFlush the compression object.N)r_  Úflushrõ   ró   )rë   rz  s     r5   rs  zStream._flushN  sK   € ð ÔÐ'ØÔ)×/Ò/Ñ1Ô1ˆJØŒI�OŠO˜JÑ'Ô'Ð'Ø#ˆDÔÐÐð (Ð'r7   ©NN)
rö   r÷   rø   rù   r  rì   rm  rv  ró   rs  r@   r7   r5   r]  r]  ú  sw   € € € € € ðð ð P€Ið%(ð %(ð %(ð %(ðN	ð 	ð 	ð7ð 7ð 7ð (ð (ð (ð$ð $ð $ð $ð $r7   r]  c                 ó,  — t          | ¦  «        }d|j        z  }i }|D �]t}|                     |t          j        ¦  «        }t          |j        |z  ¦  «        dt          j        |j	        d         |z  ¦  «        t          j        |j	        d         |z  ¦  «        t          j
        |j	        d         |z  ¦  «        t          j
        |j	        d         |z  ¦  «        g}|                     ¦   «         \  }}	|dz  |z                       ¦   «         }d                     t          t          |¦  «        ¦  «                             d¦  «        d	z   t!          j        t%          ||	¦  «        d d d
d dg d¢d¦  «        z   dz   ||                     |¦  «        <   �Œv|S )Néè  r   r#   é   é   é@   ú rÁ   s    d1
F)r&  r%  r7   r$  r   Tr  )r   Úunits_per_EMÚ
load_glyphr   ÚNO_SCALEÚroundÚhoriAdvancer~   ÚfloorÚbboxÚceilÚget_pathr,   ÚmaprH   rØ   r"   Úconvert_to_stringr    Úget_glyph_name)
Ú	font_pathÚglyph_indicesÚfontÚconvÚprocsÚglyph_indexÚgÚd1rD   rŠ   s
             r5   Ú_get_pdf_charprocsr˜  W  sv  € Ý�IÑÔ€DØ�$Ô#Ñ#€DØ€EØ$ð ñ ˆØ�OŠO˜K­Ô);Ñ<Ô<ˆå�!”- $Ñ&Ñ'Ô'¨åŒJ�q”v˜a”y 4Ñ'Ñ(Ô(­$¬*°Q´V¸A´YÀÑ5EÑ*FÔ*FÝŒI�a”f˜Q”i $Ñ&Ñ'Ô'­¬°1´6¸!´9¸tÑ3CÑ)DÔ)Dð	
ˆð �}Š}‰Œ‰ˆˆ1Ø�‰V�d‰]×!Ò!Ñ#Ô#ˆà�HŠH•S�˜b‘\”\Ñ"Ô"×)Ò)¨'Ñ2Ô2°XÑ=ÝÔ%Ý�Q˜‘
”
˜D $¨¨t°Qà-Ð-Ð-¨tñ5ô 5ñ5ð
 ñð 	ˆd×!Ò! +Ñ.Ô.Ñ/Ñ/ð €Lr7   c                   ó
  ‡ — e Zd ZdZd?ˆ fd„	Z  ej        d¦  «         ed„ ¦  «        ¦  «        Z  ej        d¦  «         ed„ ¦  «        ¦  «        Z	  ej        d¦  «         ed„ ¦  «        ¦  «        Z
 ej        d¦  «        ed„ ¦   «         ¦   «         Zd	„ Zg d
¢fd„Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd@d„Zd„ Zddœd„Zd„ ZdAd„Zd„ Zd„ Zd„ Zd„ Zd„ Z ej        dd¦  «        d?d„¦   «         Z d Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%d%„ Z&d&„ Z'  ej        d'¦  «         ed(„ ¦  «        ¦  «        Z(d)„ Z)d*„ Z*d+„ Z+d,„ Z,d-„ Z-d.„ Z.d?d/„Z/d0„ Z0d1„ Z1d2„ Z2d3„ Z3d4„ Z4edBd5„¦   «         Z5dCd7„Z6dDd9„Z7d:„ Z8d;„ Z9d<„ Z:d=„ Z;d>„ Z<ˆ xZ=S )EÚPdfFilezPDF file object.Nc                 ó|  •— t          ¦   «                              ¦   «          t          j        d¦  «        | _        g d¢g| _        d| _        d| _        d| _        t          j
        |dd¬¦  «        \  }}|sI	 |                     ¦   «         | _        |}d| _        n%# t          $ r t          ¦   «         }|| _        Y nw xY w|| _        d| _        |                     d	¦  «         |                     d
¦  «         |                      d¦  «        | _        |                      d¦  «        | _        g | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        |                      d¦  «        | _        t7          d¦  «        | j        dœ}|                      | j        |¦  «         t;          d|pi ¦  «        | _        d„ t          j        d¦  «        D ¦   «         | _        i | _         i | _!        tE          j#        tD          j$         %                    tL          j'        d         d¦  «        ¦  «        | _(        i | _)        d„ t          j        d¦  «        D ¦   «         | _*        i | _+        d„ t          j        d¦  «        D ¦   «         | _,        g | _-        i | _.        d„ t          j        d¦  «        D ¦   «         | _/        g | _0        i | _1        d„ t          j        d¦  «        D ¦   «         | _2        i | _3        g | _4        g | _5        g | _6        d„ d 7                    ¦   «         D ¦   «         }| j        | j        | j        | j        | j        |dœ}|                      | j        |¦  «         dS )aã  
        Parameters
        ----------
        filename : str or path-like or file-like
            Output target; if a string, a file will be opened for writing.

        metadata : dict from strings to strings and dates
            Information dictionary object (see PDF reference section 10.2.1
            'Document Information Dictionary'), e.g.:
            ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

            The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
            'Creator', 'Producer', 'CreationDate', 'ModDate', and
            'Trapped'. Values have been predefined for 'Creator', 'Producer'
            and 'CreationDate'. They can be removed by setting them to `None`.
        r#   )r   iÿÿ  úthe zero objectFNr   ÚwbT)Úreturn_openeds	   %PDF-1.4
s   %¬Ü «º
ÚrootÚpagesÚfontszextended graphics statesztiling patternszGouraud triangleszexternal objectsÚ	resourcesÚCatalog)r¬   ÚPagesÚpdfc              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚFN©rS   ©rB   r2   s     r5   r“   z#PdfFile.__init__.<locals>.<genexpr>­  ó.   è è € Ð"MÐ"M°Q¥4¨¨A¨¨¡=¤=Ð"MÐ"MÐ"MÐ"MÐ"MÐ"Mr7   zps.fonttypec              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )r°   Nr¨  r©  s     r5   r“   z#PdfFile.__init__.<locals>.<genexpr>´  s.   è è € Ð KÐ K°1¥ g¨! g g¡¤Ð KÐ KÐ KÐ KÐ KÐ Kr7   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚSMNr¨  r©  s     r5   r“   z#PdfFile.__init__.<locals>.<genexpr>¶  s.   è è € ÐJÐJ°!�t H¨ H H™~œ~ÐJÐJÐJÐJÐJÐJr7   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚHNr¨  r©  s     r5   r“   z#PdfFile.__init__.<locals>.<genexpr>¹  rª  r7   c              3   ó:   K  — | ]}t          d |› �¦  «        V — ŒdS )ÚINr¨  r©  s     r5   r“   z#PdfFile.__init__.<locals>.<genexpr>½  s.   è è € ÐEÐE¨Q�4  A  ™=œ=ÐEÐEÐEÐEÐEÐEr7   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r@   r¨  ©rB   rJ   s     r5   rÆ   z$PdfFile.__init__.<locals>.<listcomp>Ì  ó   € ÐMÐMÐM •D˜‘G”GÐMÐMÐMr7   úPDF Text ImageB ImageC ImageI)ÚFontÚXObjectÚ	ExtGStateÚPatternÚShadingÚProcSet)8Úsuperrì   rœ   ÚcountÚ_object_seqÚ	xrefTableÚpassed_in_file_objectÚoriginal_file_likeÚ	tell_baser   Úto_filehandlern  ÚOSErrorr   rg  Úcurrentstreamró   ÚreserveObjectÚ
rootObjectÚpagesObjectÚpageListÚ
fontObjectÚ_extGStateObjectÚhatchObjectÚgouraudObjectÚXObjectObjectÚresourceObjectrS   ru  rp   ÚinfoDictÚ_internal_font_seqÚ
_fontNamesÚ_dviFontInfor$   ÚCharacterTrackerÚ_FONT_MAX_GLYPHÚgetrd   rk  Ú_character_trackerÚalphaStatesÚ_alpha_state_seqÚ_soft_mask_statesÚ_soft_mask_seqÚ_soft_mask_groupsÚ_hatch_patternsÚ_hatch_pattern_seqÚgouraudTrianglesÚ_imagesÚ
_image_seqÚmarkersÚpathsÚ_annotationsÚpageAnnotationsÚsplit)	rë   Úfilenamerk   rg  ÚopenedrŸ  Úprocsetsr¢  Ú	__class__s	           €r5   rì   zPdfFile.__init__r  s±  ø€ õ" 	‰Œ×ÒÑÔÐå$œ?¨1Ñ-Ô-ˆÔØ7Ð7Ð7Ð8ˆŒØ%*ˆÔ"Ø"&ˆÔØˆŒÝÔ(¨°4ÀtÐLÑLÔL‰
ˆˆFØð 	2ð2Ø!)§¢¡¤�”ð
 �Ø-1�Ô*Ð*øõ ð 3ð 3ð 3Ý‘Y”Y�Ø*2�Ô'Ð'Ð'ð3øøøð ˆŒØ!ˆÔØ
�Š�ÑÔÐð 	�ŠÐ(Ñ)Ô)Ð)à×,Ò,¨VÑ4Ô4ˆŒØ×-Ò-¨gÑ6Ô6ˆÔØˆŒØ×,Ò,¨WÑ5Ô5ˆŒØ $× 2Ò 2Ð3MÑ NÔ NˆÔØ×-Ò-Ð.?Ñ@Ô@ˆÔØ!×/Ò/Ð0CÑDÔDˆÔØ!×/Ò/Ð0BÑCÔCˆÔØ"×0Ò0°Ñ=Ô=ˆÔå˜Y™œØÔ)ð+ð +ˆà×Ò˜œ¨$Ñ/Ô/Ð/å-¨e°X°^ÀÑDÔDˆŒà"MÐ"M½)¼/È!Ñ:LÔ:LÐ"MÑ"MÔ"MˆÔØˆŒØˆÔÝ"1Ô"BÝÔ+×/Ò/µ´¸]Ô0KÈQÑOÔOñ#Qô #QˆÔð ˆÔØ KÐ K½	¼ÈÑ8JÔ8JÐ KÑ KÔ KˆÔØ!#ˆÔØJÐJµy´ÀqÑ7IÔ7IÐJÑJÔJˆÔØ!#ˆÔØ!ˆÔØ"MÐ"M½)¼/È!Ñ:LÔ:LÐ"MÑ"MÔ"MˆÔØ "ˆÔàˆŒØEÐEµ)´/À!Ñ2DÔ2DÐEÑEÔEˆŒàˆŒàˆŒ
ð
 ˆÔð  "ˆÔð NÐMÐ%D×%JÒ%JÑ%LÔ%LÐMÑMÔMˆð
 "œ_Ø $Ô 2Ø"&Ô"7Ø $Ô 0Ø $Ô 2Ø (ð*ð *ˆ	ð 	×Ò˜Ô,¨iÑ8Ô8Ð8Ð8Ð8s   Á7B ÂB<Â;B<z3.11c                 ó   — | j         S r?   )rÒ  rî   s    r5   ú<lambda>zPdfFile.<lambda>Ù  s   € ¸d¼o€ r7   c                 ó   — i S r?   r@   ©Ú_s    r5   rì  zPdfFile.<lambda>Ú  s   € Àb€ r7   c                 ó   — i S r?   r@   rî  s    r5   rì  zPdfFile.<lambda>Û  s   € À"€ r7   c           	      ó‚  — i }t          j        t          j        d¦  «        ¦  «        }| j                             ¦   «         D ]|\  }}||j                 }|j        €-t          d                     |j	        |j        ¦  «        ¦  «        ‚t          j        |||j        |j	        |j        |j        ¬¦  «        ||j        <   Œ}|S )Nú
pdftex.mapúNNo usable font file found for {} (TeX: {}); the font may lack a Type-1 version)ÚdvifontÚpdfnameÚfontfileÚbasefontÚencodingfileÚeffects)r   Ú
PsfontsMapÚfind_tex_filerÓ  rf   Útexnamerç  rÓ   ÚformatÚpsnameÚtypesÚSimpleNamespaceÚencodingrù  )rë   ry   Útex_font_maprõ  rô  Úpsfonts         r5   ÚdviFontInfozPdfFile.dviFontInfoÝ  sÉ   € ð ˆÝÔ)­'Ô*?ÀÑ*MÔ*MÑNÔNˆØ $Ô 1× 7Ò 7Ñ 9Ô 9ð 	ð 	ÑˆG�WØ! '¤/Ô2ˆFØŒÐ&Ý ð9ç’V˜FœM¨7¬?Ñ;Ô;ñ=ô =ð =õ "'Ô!6ØØØœØœØ#œ_Øœð"ñ "ô "ˆAˆgŒoÑÐð ˆr7   c                 ó>  — |                       ¦   «          ||c| _        | _        |                      d¦  «        }|                      d¦  «        }t	          d¦  «        | j        | j        ddd|z  d|z  g||dœ}|                      d¦  «        }|                      ||¦  «         | j         	                    |¦  «         | j
         	                    || j        f¦  «         |                      |j        |                      d¦  «        ¦  «         |                      t	          d	¦  «        t          j        ¦  «         |                      t	          d	¦  «        t          j        ¦  «         |                      t$          j        d
         t          j        ¦  «         g | _        d S )Nzpage contentsÚannotationsÚPager   éH   )r¬   ÚParentÚ	ResourcesÚMediaBoxÚContentsÚAnnotsÚpagezlength of content streamÚ	DeviceRGBr‡  )Ú	endStreamrƒ   r„   rÆ  rS   rÈ  rÏ  ru  rÉ  r+   rä  rå  ÚbeginStreamré   Úoutputr  rH  rI  ÚGraphicsContextPdfÚ
joinstylesrM  )rë   rƒ   r„   ÚcontentObjectÚannotsObjectÚthePageÚ
pageObjects          r5   ÚnewPagezPdfFile.newPageó  s„  € Ø�ŠÑÔÐà"'¨ÐˆŒ
�D”KØ×*Ò*¨?Ñ;Ô;ˆØ×)Ò)¨-Ñ8Ô8ˆÝ ™<œ<Ø!Ô-Ø $Ô 3Ø ! 1 b¨5¡j°"°v±+Ð>Ø,Ø)ðð ˆð ×'Ò'¨Ñ/Ô/ˆ
Ø×Ò˜ WÑ-Ô-Ð-ØŒ×Ò˜ZÑ(Ô(Ð(ØÔ× Ò  ,°Ô0DÐ!EÑFÔFÐFà×Ò˜Ô)Ø×+Ò+Ð,FÑGÔGñ	Iô 	Ið 	Ið 	�Š•D˜Ñ%Ô%¥rÔ'>Ñ?Ô?Ð?Ø�Š•D˜Ñ%Ô%¥rÔ'AÑBÔBÐBØ�ŠÕ&Ô1°'Ô:½B¼NÑKÔKÐKð  "ˆÔÐÐr7   ©éœÿÿÿr  r   r   c                 ó|   — t          d¦  «        t          d¦  «        ||dœ}| j                             |¦  «         d S )Nr§   ÚText)r¬   r­   r  r®   )rS   rå  r+   )rë   ÚtextÚpositionRectÚtheNotes       r5   ÚnewTextnotezPdfFile.newTextnote  sE   € å ™=œ=Ý" 6™lœlØ#Ø'ðð ˆð
 	Ô×#Ò# GÑ,Ô,Ð,Ð,Ð,r7   c                 ó„   ‡— ˆfd„Št          | ¦  «        t          j        dz   dz  z  } ‰|d¦  «        }|dd…         dz   S )zµ
        Get a prefix for a subsetted font name.

        The prefix is six uppercase letters followed by a plus sign;
        see PDF reference section 5.5.3 Font Subsets.
        c                 ó~   •— | |k     rt           j        |          S  ‰| |z  |¦  «        t           j        | |z           z   S r?   )ÚstringÚascii_uppercase)ÚnÚbaseÚtoStrs     €r5   r(  z)PdfFile._get_subset_prefix.<locals>.toStr!  sE   ø€ Ø�4ŠxˆxÝÔ-¨aÔ0Ð0ð �E˜!˜t™) TÑ*Ô*­VÔ-CÀAÈÁHÔ-MÑMðr7   r#   r€  é   Né   ú+)r  ÚsysÚmaxsize)ÚcharsetÚhashedÚprefixr(  s      @r5   Ú_get_subset_prefixzPdfFile._get_subset_prefix  s_   ø€ ð	ð 	ð 	ð 	ð 	õ �g‘”¥3¤;°¡?°aÑ"7Ñ8ˆØ��v˜rÑ"Ô"ˆð �b�q�bŒz˜CÑÐr7   c                 óz   — t                                t          |                     ¦   «         ¦  «        ¦  «        | z   S r?   )rš  r1  Ú	frozensetÚvalues)Úps_nameÚcharmaps     r5   Ú_get_subsetted_psnamezPdfFile._get_subsetted_psname0  s-   € å×)Ò)­)°G·N²NÑ4DÔ4DÑ*EÔ*EÑFÔFÈÑPÐPr7   c           
      óœ  — |                       ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d„ | j                             ¦   «         D ¦   «         }| j	                             ¦   «         D ]}|d         ||d         <   Œ| j
        D ]\	  }}}}}}}	}
}|||<   Œ|                      | j        |¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          |                      | j        t#          d¦  «        | j        t'          | j        ¦  «        dœ¦  «         |                      ¦   «          |                      ¦   «          |                      ¦   «          dS )z>Write out the various deferred objects and the pdf end matter.c                 ó   — i | ]	\  }}}||“Œ
S r@   r@   )rB   ÚimagerT   Úobs       r5   rE   z$PdfFile.finalize.<locals>.<dictcomp>>  s3   € ð Cð Cð CÙ(˜  bˆD�"ðCð Cð Cr7   r#   r   r¤  )r¬   ÚKidsÚCountN)r  Ú_write_annotationsÚ
writeFontsÚwriteExtGSTatesÚ_write_soft_mask_groupsÚwriteHatchesÚwriteGouraudTrianglesrà  r4  râ  rã  ru  rÎ  ÚwriteImagesÚwriteMarkersÚwritePathCollectionTemplatesrÈ  rS   rÉ  r*   ÚwriteInfoDictÚ	writeXrefÚwriteTrailer)rë   ÚxobjectsÚtuprT   ÚpathÚtransr;  r,   ÚcapÚpaddingÚfilledÚstrokeds               r5   ÚfinalizezPdfFile.finalize4  sß  € ð 	�ŠÑÔÐØ×ÒÑ!Ô!Ð!Ø�ŠÑÔÐØ×ÒÑÔÐØ×$Ò$Ñ&Ô&Ð&Ø×ÒÑÔÐØ×"Ò"Ñ$Ô$Ð$ðCð CØ,0¬L×,?Ò,?Ñ,AÔ,AðCñ Cô Cˆà”<×&Ò&Ñ(Ô(ð 	&ð 	&ˆCØ" 1œvˆH�S˜”VÑÐà”:ð	 ð 	 ÑFˆD�$˜˜r 4¨¨g°v¸wàˆH�T‰NˆNØ×Ò˜Ô+¨XÑ6Ô6Ð6Ø×ÒÑÔÐØ×ÒÑÔÐØ×)Ò)Ñ+Ô+Ð+Ø×Ò˜Ô)Ý"& w¡-¤-Ø"&¤-Ý#& t¤}Ñ#5Ô#5ð7ð 7ñ	8ô 	8ð 	8ð 	×ÒÑÔÐð 	�ŠÑÔÐØ×ÒÑÔÐÐÐr7   c                 ó  — |                       ¦   «          | j        r| j                             ¦   «          dS | j        �1| j                             | j                             ¦   «         ¦  «         | j                             ¦   «          dS )z)Flush all buffers and free all resources.N)r  rÀ  rg  r|  rÁ  ró   rt  Úcloserî   s    r5   rT  zPdfFile.closeS  ss   € ð 	�ŠÑÔÐØÔ%ð 	ØŒG�MŠM‰OŒOˆOˆOˆOàÔ&Ð2ØÔ'×-Ò-¨d¬g×.>Ò.>Ñ.@Ô.@ÑAÔAÐAØŒG�MŠM‰OŒOˆOˆOˆOr7   c                 ó€   — | j         €| j                             |¦  «         d S | j                              |¦  «         d S r?   )rÅ  rg  ró   ©rë   ry  s     r5   ró   zPdfFile.write^  sB   € ØÔÐ%ØŒG�MŠM˜$ÑÔÐÐÐàÔ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r7   c                 óˆ   — |                       t          d„ |D ¦   «         ¦  «        ¦  «         |                       d¦  «         d S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS r@   rÉ   r³  s     r5   rÆ   z"PdfFile.output.<locals>.<listcomp>e  s   € Ð3Ð3Ð3¨�' !™*œ*Ð3Ð3Ð3r7   r(   )ró   r6   rV  s     r5   r  zPdfFile.outputd  sC   € Ø�
Š
•5Ð3Ð3¨dÐ3Ñ3Ô3Ñ4Ô4Ñ5Ô5Ð5Ø�
Š
�5ÑÔÐÐÐr7   c                 óH   — | j         �J ‚t          ||| ||¦  «        | _         d S r?   )rÅ  r]  )rë   ré   r*   r`  ro  s        r5   r  zPdfFile.beginStreamh  s/   € ØÔ!Ð)Ð)Ð)Ý# B¨¨T°5¸#Ñ>Ô>ˆÔÐÐr7   c                 óX   — | j         �"| j                              ¦   «          d | _         d S d S r?   )rÅ  rv  rî   s    r5   r  zPdfFile.endStreaml  s6   € ØÔÐ)ØÔ×"Ò"Ñ$Ô$Ð$Ø!%ˆDÔÐÐð *Ð)r7   ©r`  c                óš   — |                       |j        d |¦  «         | j                             |¦  «         |                      ¦   «          d S r?   )r  ré   rÅ  ró   r  )rë   Úrefry  r`  s       r5   ÚoutputStreamzPdfFile.outputStreamq  sI   € Ø×Ò˜œ  uÑ-Ô-Ð-ØÔ× Ò  Ñ&Ô&Ð&Ø�ŠÑÔÐÐÐr7   c                 óL   — | j         D ]\  }}|                      ||¦  «         Œd S r?   )rä  ru  )rë   r  r  s      r5   r>  zPdfFile._write_annotationsv  s<   € Ø)-Ô):ð 	8ð 	8Ñ%ˆL˜+Ø×Ò˜\¨;Ñ7Ô7Ð7Ð7ð	8ð 	8r7   r   c                 óê  — t          |t          ¦  «        r|g}not          |t          ¦  «        rt          |d¦  «        g}nHt          j        d         r"t          j        |dt          j        ¬¦  «        }nt          j        |¦  «        }d}|D ]e}| j	         
                    ||f¦  «        }|s|}|€At          | j        ¦  «        }|| j	        ||f<   t                               d|||¦  «         |s|}Œf|S )zÀ
        Select a font based on fontprop and return a name suitable for
        ``Op.selectfont``. If fontprop is a string, it will be interpreted
        as the filename of the font.
        r   úpdf.use14corefontsÚafm)ÚfontextÚ	directoryNz"Assigning font %s (subset %d) = %r)rG   r   rH   rd   rk  Ú_fontManagerÚ_find_fonts_by_propsÚRendererPdfÚ_afm_font_dirrÒ  rÖ  ÚnextrÑ  Ú_logÚdebug)rë   ÚfontpropÚsubsetÚ	filenamesÚfirst_FxÚfnameÚFxs          r5   ÚfontNamezPdfFile.fontNamez  s  € õ �h¥Ñ)Ô)ð 		DØ!˜
ˆIˆIÝ˜¥#Ñ&Ô&ð 	DÝ! (¨AÑ.Ô.Ð/ˆIˆIÝŒ\Ð.Ô/ð 	DÝ$Ô9Ø %µ;Ô3Lðñ ô ˆIˆIõ %Ô9¸(ÑCÔCˆIØˆØð 		"ð 		"ˆEØ”×$Ò$ e¨V _Ñ5Ô5ˆBØð Ø�ØˆzÝ˜$Ô1Ñ2Ô2�Ø35�” ¨ Ñ0Ý—
’
Ð?ÀÀVÈUÑSÔSÐSØð "Ø!�Høð ˆr7   c                 óÊ   — t          d|j                             d¦  «        › �¦  «        }t                               d||j        ¦  «         || j        |<   t          |¦  «        S )z§
        Given a dvi font object, return a name suitable for Op.selectfont.

        Register the font internally (in ``_dviFontInfo``) if not yet registered.
        zF-rÁ   zAssigning font %s = %s (dvi))rS   rü  rÜ   rj  rk  rÓ  )rë   rô  rõ  s      r5   ÚdviFontNamezPdfFile.dviFontName›  s\   € õ Ð=˜GœO×2Ò2°7Ñ;Ô;Ð=Ð=Ñ>Ô>ˆÝ�
Š
Ð1°7¸G¼OÑLÔLÐLØ%,ˆÔ˜'Ñ"Ý�G‰}Œ}Ðr7   c                 óÆ  — i }t          | j                             ¦   «         ¦  «        D ]=\  }}t                               d|j        ¦  «         |                      |¦  «        ||<   Œ>t          | j                             ¦   «         ¦  «        D ]¸\  \  }}}t                               d||¦  «         |                     d¦  «        r3t                               d¦  «         |  	                    |¦  «        ||<   Œlt                               d¦  «         | j
        j        |         |         }|                      |||¦  «        ||<   Œ¹|                      | j        |¦  «         d S )Nz"Embedding Type-1 font %s from dvi.zEmbedding font %r:%d.z.afmzWriting AFM font.zWriting TrueType font.)ÚsortedrÓ  rf   rj  rk  rü  Ú_embedTeXFontrÒ  ÚendswithÚ_write_afm_fontr×  ÚusedÚembedTTFru  rÊ  )rë   r¡  rõ  rô  rç  rm  rq  r6  s           r5   r?  zPdfFile.writeFonts¦  sP  € ØˆÝ & tÔ'8×'>Ò'>Ñ'@Ô'@Ñ AÔ Að 	9ð 	9ÑˆG�WÝ�JŠJÐ;¸W¼_ÑMÔMÐMØ!×/Ò/°Ñ8Ô8ˆE�'‰NˆNÝ&,¨T¬_×-BÒ-BÑ-DÔ-DÑ&EÔ&Eð 
	Eð 
	EÑ"ÑˆX�v Ý�JŠJÐ.°¸&ÑAÔAÐAØ× Ò  Ñ(Ô(ð Eå—
’
Ð.Ñ/Ô/Ð/Ø ×0Ò0°Ñ:Ô:��b‘	�	õ —
’
Ð3Ñ4Ô4Ð4ØÔ1Ô6°xÔ@ÀÔH�Ø ŸMšM¨(°F¸GÑDÔD��b‘	�	Ø×Ò˜œ¨%Ñ0Ô0Ð0Ð0Ð0r7   c                 óh  — t          |d¦  «        5 }t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         }t          d¦  «        t          d¦  «        t          |¦  «        t          d¦  «        dœ}|                      d¦  «        }|                      ||¦  «         |S )NÚrbr¶  ÚType1ÚWinAnsiEncoding)r¬   r­   ÚBaseFontÚEncodingúfont dictionary)Úopenr   Úget_fontnamerS   rÆ  ru  )rë   rç  rg  r’  ÚfontnameÚfontdictÚfontdictObjects          r5   ry  zPdfFile._write_afm_font¸  så   € Ý�(˜DÑ!Ô!ð 	 RÝ�r‘7”7ˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×$Ò$Ñ&Ô&ˆÝ  ™LœLÝ# G™}œ}Ý $ X¡¤Ý $Ð%6Ñ 7Ô 7ð9ð 9ˆð ×+Ò+Ð,=Ñ>Ô>ˆØ×Ò˜¨Ñ2Ô2Ð2ØÐs   ‘-­1´1c                 ór  ‡ ‡‡‡— t          j        t          j        d¦  «        ¦  «        }||j                 }|j        €-t          d                     |j        |j        ¦  «        ¦  «        ‚‰                      d¦  «        }t          d¦  «        t          d¦  «        dœ}t          j        |j        ¦  «        }|j        �C|                     d„ t          t          j        |j        ¦  «        ¦  «        D ¦   «         ¦  «        }|j        r|                     |j        ¦  «        }t%          |j        |j        ¦  «        Š‰ j        j        ‰         d         }ˆˆ fd	„|D ¦   «         }|                     |‰                      |                     ¦   «         ¦  «        ¦  «        }t          |j        d
         ¦  «        |d<   ‰                      |¦  «        |d<   |j        d         }	‰                      |	¦  «        |d<   t;          |	                     ¦   «         d¬¦  «        x}
|d<   t?          |	                     ¦   «         d¬¦  «        x}|d<   |j         Šˆˆfd„tC          |
|dz   ¦  «        D ¦   «         }‰                      d¦  «        x|d<   }‰  "                    ||¦  «         ‰  "                    ||¦  «         |S )Nrò  ró  r‚  r¶  r~  )r¬   r­   c                 ó   — i | ]\  }}||“Œ	S r@   r@   )rB   r2   rŠ   s      r5   rE   z)PdfFile._embedTeXFont.<locals>.<dictcomp>Ø  s   € ÐQÐQÐQ™$˜!˜Q��AÐQÐQÐQr7   r   c           	      ób   •— h | ]+}t          ‰j                             ‰d |¦  «        ¦  «        ’Œ,S ©r   )r  r×  Úsubset_to_unicode)rB   Úccoder�  rë   s     €€r5   ú	<setcomp>z(PdfFile._embedTeXFont.<locals>.<setcomp>á  sH   ø€ ð 
ð 
ð 
ð õ �Ô'×9Ò9¸)ÀQÈÑNÔNÑOÔOð
ð 
ð 
r7   ÚFontNamer€  ÚFontDescriptorr�  )ÚdefaultÚ	FirstCharéÿ   ÚLastCharc                 ó\   •— g | ](}‰                      |¦  «        xŠrd ‰j        z  dz	  nd‘Œ)S )r  é   r   )Úget_metricsÚ	tex_width)rB   ÚcharÚfont_metricsÚglyph_metricss     €€r5   rÆ   z)PdfFile._embedTeXFont.<locals>.<listcomp>ð  sW   ø€ ð 1ð 1ð 1àð (4×'?Ò'?ÀÑ'EÔ'EÐE�mðN�4˜-Ô1Ñ1°bÑ8Ð8ØLMð1ð 1ð 1r7   r#   zglyph widthsÚWidths)#r   rú  rû  rü  rç  rÓ   rý  rþ  rÆ  rS   r   Ú	Type1Fontr  Úwith_encodingr)   Ú
_parse_encrù  Ú	transformr   rp  Ú
face_indexr×  rz  rm  r1  r4  ÚpropÚcreateType1DescriptorÚ_generate_encodingr™   Úkeysrš   Ú_metricsr  ru  )rë   rô  r  r  r‡  r†  Út1fontr6  Úcharsr  ÚfcÚlcÚwidthsÚwidthsObjectrš  r�  r›  s   `             @@@r5   rw  zPdfFile._embedTeXFontÄ  sÄ  øøøø€ ÝÔ)­'Ô*?ÀÑ*MÔ*MÑNÔNˆØ˜gœoÔ.ˆØŒ?Ð"Ýð5ç’˜œ w¤Ñ7Ô7ñ9ô 9ð 9ð ×+Ò+Ð,=Ñ>Ô>ˆå˜f™œÝ˜g™œð
ð 
ˆõ Ô% f¤oÑ6Ô6ˆØŒ?Ð&Ø×)Ò)ØQÐQ¥)­GÔ,>¸v¼Ñ,OÔ,OÑ"PÔ"PÐQÑQÔQñô ˆFð Œ>ð 	6Ø×%Ò% f¤nÑ5Ô5ˆFõ ˜Wœ]¨GÔ,>Ñ?Ô?ˆ	ØÔ)Ô.¨yÔ9¸!Ô<ˆð
ð 
ð 
ð 
ð 
ð !ð
ñ 
ô 
ˆð
 —’˜u d×&=Ò&=¸g¿nºnÑ>NÔ>NÑ&OÔ&OÑPÔPˆÝ# F¤K°
Ô$;Ñ<Ô<ˆ�Ñà%)×%?Ò%?ÀÑ%GÔ%GˆÐ!Ñ"Ø”;˜zÔ*ˆØ#×6Ò6°xÑ@Ô@ˆ�ÑÝ%(¨¯ª©¬À!Ð%DÑ%DÔ%DÐDˆˆX�kÑ"Ý$'¨¯ª©¬ÀÐ$EÑ$EÔ$EÐEˆˆX�jÑ!àÔ'ˆð1ð 1ð 1ð 1ð 1å# B¨¨Q©Ñ/Ô/ð1ñ 1ô 1ˆð -1×,>Ò,>¸~Ñ,NÔ,NÐNˆ�Ñ˜\Ø×Ò˜ vÑ.Ô.Ð.Ø×Ò˜¨Ñ2Ô2Ð2ØÐr7   c                 ó   — d}g }t          |                     ¦   «         ¦  «        D ]G\  }}||dz   k    r|                     |¦  «         |}|                     t          |¦  «        ¦  «         ŒHt          d¦  «        |dœS )Néþÿÿÿr#   r�  ©r¬   ÚDifferences)rv  rf   r+   rS   )rë   r  Úprevr1   ÚcoderT   s         r5   r¤  zPdfFile._generate_encodingø  s�   € ØˆØˆÝ  §¢Ñ!1Ô!1Ñ2Ô2ð 	&ð 	&‰JˆD�$Ø�t˜a‘xÒÐØ—’˜dÑ#Ô#Ð#ØˆDØ�MŠM�$˜t™*œ*Ñ%Ô%Ð%Ð%å˜Ñ$Ô$Ø!ð
ð 
ð 	
r7   rö  c                 ó6  — |                       d¦  «        }|                       d¦  «        }|j        d         }|j        d         }d}|r|dz  }	 	 |dz  }|r|d
z  }	 	 	 |j        d         }d                     t          d„ |                     ¦   «         D ¦   «         ¦  «        ¦  «        }	t          d¦  «        t          |j        d         ¦  «        ||j        d         ||j        d         d         |j        d         d         dd||j        d         d|	dœ}
|                      ||
¦  «         |                      |d                     |j        d d…         ¦  «        t          |j        d         ¦  «        t          |j        d         ¦  «        ddœ¬¦  «         |S )Núfont descriptorz	font fileÚItalicAngleÚisFixedPitchr   r#   r€  é   é    r‚  é   é   é   r�  Ú c              3   ó,   K  — | ]}|d k    ¯d|› �V — ŒdS )z.notdefr  Nr@   rý   s     r5   r“   z0PdfFile.createType1Descriptor.<locals>.<genexpr>+  s:   è è € ð ð ØØ˜	’>�>ð �A��Ø!�>�>�>ðð r7   r�  r�  ÚFontBBoxr�  r  iô  Ú
FamilyNameé2   )r¬   r�  ÚFlagsr¾  rµ  ÚAscentÚDescentÚ	CapHeightÚXHeightÚFontFileÚ
FontFamilyÚStemVÚCharSetr7   )ÚLength1ÚLength2ÚLength3r[  )
rÆ  r¢  r,   rv  r4  rS   ru  r^  Úpartsr*   )rë   r§  rö  ÚfontdescObjectÚfontfileObjectÚitalic_angleÚfixed_pitchÚflagsr  r.  Ú
descriptors              r5   r£  zPdfFile.createType1Descriptor  sÜ  € ð ×+Ò+Ð,=Ñ>Ô>ˆØ×+Ò+¨KÑ8Ô8ˆà”{ =Ô1ˆØ”k .Ô1ˆàˆàð 	Ø�V‰OˆEð	ð	Ø�V‰OˆEð
 ð 	Ø�V‰OˆEð	ð	ð	ð ”;˜zÔ*ˆØ—'’'Ýð ð Ø!)§¢Ñ!2Ô!2ðñ ô ñ ô ñ
ô 
ˆõ  Ð 0Ñ1Ô1Ý ¤¨JÔ 7Ñ8Ô8Ø Ø!œ; zÔ2Ø'Ø!œ; zÔ2°1Ô5Ø!œ; zÔ2°1Ô5ØØØ)Ø!œ; |Ô4ØØ"ð
ð 
ˆ
ð$ 	×Ò˜¨Ñ4Ô4Ð4à×Ò˜.¨#¯(ª(°6´<ÀÀÀÔ3CÑ*DÔ*DÝ,/°´¸Q´Ñ,@Ô,@Ý,/°´¸Q´Ñ,@Ô,@Ø,-ð!/ð !/ð 	ñ 	0ô 	0ð 	0ð
 Ðr7   sO  /CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
   /Ordering (UCS)
   /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <ffff>
endcodespacerange
%d beginbfrange
%s
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
endc                 óR  ‡ ‡‡‡‡‡— t          ‰¦  «        }t          j        d         Š|j        dfd„Šˆˆˆ fd„Šˆˆˆˆˆ fd„}ˆˆˆˆˆ fd„}‰                      |j        |¦  «        Š‰                     dd¦  «        Št          ‰¦  «        Š|                     d	¦  «        pd
d
dœ}|                     d¦  «        pddi}|j	        }	|j
        }
d
}d}t          j        |	v r|dz  }	 |r|dz  }n|dz  }t          j        |
v r|dz  }	 	 	 t          d¦  «        ‰|ˆfd„|j        D ¦   «          ‰|j        d¬¦  «         ‰|j        d¬¦  «         ‰|d         d¬¦  «         ‰|d         ¦  «        |d         d         d
dœ
}‰dk    r |||||¦  «        S ‰dk    r |||||¦  «        S d S )!z9Embed the TTF font from the named file into the document.úpdf.fonttypeTc                 ó�   — | |z  dz  }|rt          |¦  «        S |dk     rt          j        |¦  «        S t          j        |¦  «        S )z2Convert font coordinates to PDF glyph coordinates.r  r   )r‡  r~   r‰  r‹  )r4   ÚupeÚnearestr1  s       r5   ÚcvtzPdfFile.embedTTF.<locals>.cvtf  sM   € à˜S‘L 4Ñ'ˆEØð $Ý˜U‘|”|Ð#à�qŠyˆyÝ”z %Ñ(Ô(Ð(å”y Ñ'Ô'Ð'r7   c           
      ó"  •‡ ‡— d}g }t          |                     ¦   «         ¦  «        D ]0}||dz   k    r|                     ||g¦  «         n||d         d<   |}Œ1ˆˆˆ fd„Š‰dk    rdnd}g }|D ]`\  }}d                     ˆfd	„t	          ||dz   ¦  «        D ¦   «         ¦  «        }	|                     d
|d|› d�›d|d|› d�›d|	› d�¦  «         Œa‰j        t          |¦  «        d                     |¦  «                             d¦  «        fz  }
|
S )Nr®  r#   éÿÿÿÿc                 ó–   •— ‰j                              ‰‰| ¦  «        }|                     d¦  «                             ¦   «         }d|› d�S )Núutf-16beú<ú>)r×  rŒ  rØ   Úhex)r�  r¨  Úhexstrrç  rë   Úsubset_indexs      €€€r5   Ú_to_unicodezDPdfFile.embedTTF.<locals>.generate_unicode_cmap.<locals>._to_unicode|  sM   ø€ ØÔ/×AÒAØ˜l¨Eñ3ô 3�àŸš jÑ1Ô1×5Ò5Ñ7Ô7�Ø$˜6�}�}�}Ð$r7   r�  r€  r·  rƒ  c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r?   r@   )rB   rJ   rã  s     €r5   r“   zBPdfFile.embedTTF.<locals>.generate_unicode_cmap.<locals>.<genexpr>…  s+   øè è € Ð&SÐ&S¸! { {°1¡~¤~Ð&SÐ&SÐ&SÐ&SÐ&SÐ&Sr7   rÞ  Ú0rJ   z> <z> [ú]r»   rÁ   )rv  r¥  r+   r,   r  Ú_identityToUnicodeCMapr*   rØ   )râ  r6  Ú
last_ccodeÚunicode_groupsr�  rƒ   Úunicode_bfrangeÚstartrv  Úreal_valuesÚunicode_cmaprã  rç  Úfonttyperë   s   `          @€€€r5   Úgenerate_unicode_cmapz/PdfFile.embedTTF.<locals>.generate_unicode_cmapq  s’  øøø€ àˆJØˆNÝ §¢¡¤Ñ/Ô/ð #ð #�Ø˜J¨™NÒ*Ð*Ø"×)Ò)¨5°%¨.Ñ9Ô9Ð9Ð9à,1�N 2Ô& qÑ)Ø"�
�
ð%ð %ð %ð %ð %ð %ð %ð " Qš˜�A�A¨AˆEØ ˆOØ,ð Nð N‘
��sØ!ŸhšhÐ&SÐ&SÐ&SÐ&S½uÀUÈCÐPQÉEÑ?RÔ?RÐ&SÑ&SÔ&SÑSÔS�Ø×&Ò&ØL˜ÐL ÐLÐLÐLÐLÐL¨CÐL°%ÐLÐLÐLÐLÐL¸kÐLÐLÐLñNô Nð Nð Nà Ô7Ý  Ñ0Ô0Ø!ŸYšY Ñ7Ô7×>Ò>¸wÑGÔGðIñIˆLð  Ðr7   c                 óü  •‡ ‡‡— ‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }g }	t          ‰¦  «        t          ‰¦  «        }}
ˆfd„‰ j        D ¦   «         }t	          d¦  «        ‰|
||t	          d¦  «        |d	         |g d
¢|t	          d¦  «        |	dœ||dœ}ˆˆˆ fd„Šˆfd„t          |
|dz   ¦  «        D ¦   «         }t          |¦  «        |d<   t          ˆ fd„‰                     ¦   «         D ¦   «         ¦  «        }d}|D ]G\  }}||dz   k    r|	                     |¦  «         |	                     t	          |¦  «        ¦  «         |}ŒHt          ‰‰ 
                    ¦   «         ¦  «        }i }t          |¦  «        D ]:}||         }‰                      d¦  «        }‰                     ||¦  «         |||<   Œ; ‰|‰¦  «        }‰                     ||¦  «         ‰                     ||¦  «         ‰                     ||¦  «         ‰                     ||¦  «         ‰                     ||¦  «         |S )z5The Type 3-specific part of embedding a Truetype fontzfont widthsr´  r‚  zcharacter procsúToUnicode mapc                 ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS ©F©rØ  r@   ©rB   rJ   rÙ  s     €r5   rÆ   z;PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.<listcomp>—  s(   ø€ Ð=Ð=Ð=¨a�C�C˜ 5Ð)Ñ)Ô)Ð=Ð=Ð=r7   r¶  ÚType3r�  )çü©ñÒMbP?r   r   r÷  r   r   r�  r¯  )r¬   r€  r’  r”  r�  r­   rS   r¾  Ú
FontMatrixÚ	CharProcsr�  rœ  Ú	ToUnicodec                 ó¨   •— ‰                      ‰                     | d¦  «        t          j        t          j        z  ¬¦  «        j        } ‰|¦  «        S )Nr   ©rÒ  )r…  rÖ  r   r†  Ú
NO_HINTINGrˆ  )Úcharcoderƒ   r6  rÙ  r’  s     €€€r5   Úget_char_widthz?PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.get_char_width¬  sR   ø€ ØŸšØ—K’K ¨!Ñ,Ô,Ý#Ô,­yÔ/CÑCð (ñ Eô EäEPð ð �s˜5‘z”zÐ!r7   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r@   r@   )rB   rþ  rÿ  s     €r5   rÆ   z;PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.<listcomp>±  s9   ø€ ð Dð Dð DØ"ð %�n XÑ.Ô.ð Dð Dð Dr7   r#   ÚMaxWidthc                 óD   •— g | ]\  }}|‰                      |¦  «        f‘ŒS r@   )r�  )rB   r�  Úgindr’  s      €r5   rÆ   z;PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.<listcomp>·  s=   ø€ ð "ð "ð "Ù7B°u¸d�˜×+Ò+¨DÑ1Ô1Ð2ð"ð "ð "r7   r®  ÚcharProc)rÆ  r™   rš   rŠ  rS   r  rv  rf   r+   r˜  r4  r^  ru  )r’  râ  r6  rÓ  r¬  rÎ  r‡  ÚcharprocsObjectÚtoUnicodeMapObjectÚdifferencesArrayÚ	firstcharÚlastcharrŠ  r†  r«  ÚdifferencesÚlast_crŠ   rT   ÚrawcharprocsÚ	charprocsÚcharnameÚstreamÚcharprocObjectrí  rÿ  rÙ  rç  rï  r5  rë   s   ` `                      @€€€€€r5   ÚembedTTFType3z'PdfFile.embedTTF.<locals>.embedTTFType3Ž  s  øøøø€ à×-Ò-¨mÑ<Ô<ˆLØ!×/Ò/Ð0AÑBÔBˆNØ!×/Ò/Ð0AÑBÔBˆNØ"×0Ò0Ð1BÑCÔCˆOØ!%×!3Ò!3°OÑ!DÔ!DÐØ!ÐÝ"% g¡,¤,µ°G±´�xˆIØ=Ð=Ð=Ð=°4´9Ð=Ñ=Ô=ˆDõ ˜V™œØ#Ø&Ø$Ø"0Ý ™=œ=Ø" :Ô.Ø Ø6Ð6Ð6Ø,å  Ñ,Ô,Ø#3ð5ð 5ð 'Ø/ðð ˆHð&"ð "ð "ð "ð "ð "ð "ð
Dð Dð Dð DÝ&+¨I°xÀ±zÑ&BÔ&BðDñ Dô DˆFå%(¨¡[¤[ˆJ�zÑ"õ !ð "ð "ð "ð "ØFMÇmÂmÁoÄoð"ñ "ô "ñ ô ˆKð ˆFØ&ð ð ‘��4Ø˜ ™
’?�?Ø$×+Ò+¨AÑ.Ô.Ð.Ø ×'Ò'­¨T©
¬
Ñ3Ô3Ð3Ø��õ .¨h¸¿ºÑ8HÔ8HÑIÔIˆLØˆIÝ" <Ñ0Ô0ð 5ð 5�Ø% hÔ/�Ø!%×!3Ò!3°JÑ!?Ô!?�Ø×!Ò! .°&Ñ9Ô9Ð9Ø&4�	˜(Ñ#Ð#à0Ð0°¸wÑGÔGˆLð ×Ò˜^¨XÑ6Ô6Ð6Ø×Ò˜^¨ZÑ8Ô8Ð8Ø×Ò˜\¨6Ñ2Ô2Ð2Ø×Ò˜_¨iÑ8Ô8Ð8Ø×ÒÐ0°,Ñ?Ô?Ð?à!Ð!r7   c                 óø  •— ‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }‰                      d¦  «        }	‰                      d¦  «        }
t                               d‰||¦  «         t          j        ‰|                     ¦   «         ¦  «        5 }t          j        |j        ¦  «        }d	d	d	¦  «         n# 1 swxY w Y   t                               d
‰|t          j	        ‰¦  «        j
        |                     ¦   «         j        ¦  «         t          |¦  «        } t          d¦  «        t          d¦  «        ‰ddddœ||	|dœ}t          d¦  «        t          d¦  «        ‰t          d¦  «        |g|
dœ}||d<   ‰                     ||                     ¦   «         d|                     ¦   «         j        i¬¦  «         dgdz  }g }d}|                     ¦   «         D ]‡\  }}|j        |         }|                      |t(          j        t(          j        z  ¬¦  «        }|                     | ‰|j        ¦  «        f¦  «         t3          |¦  «        ||<   t5          ||¦  «        }Œˆ|                     ¦   «          |d	|dz   …         }d}g }d}|D ]g\  }}||dz   k    r,|                     |¦  «         |                     |g¦  «         n|d                              |¦  «         t5          ||¦  «        }|}Œhd                     |¦  «                             d¦  «        }‰                     ||¦  «          ‰||¦  «        }‰                     |
|¦  «         ||d <   ‰                     ||¦  «         ‰                     ||¦  «         ‰                     ||¦  «         ‰                     |	|¦  «         |S )!z6The Type 42-specific part of embedding a Truetype fontr´  zCID font dictionaryzType 0 font dictionaryzCIDToGIDMap streamzfont file streamzType 0 widthsrñ  zSUBSET %r:%d characters: %sNzSUBSET %r:%d %d -> %dr¶  ÚCIDFontType2ÚAdobeÚIdentityr   )ÚRegistryÚOrderingÚ
Supplement)r¬   r­   r€  ÚCIDSystemInfor�  ÚWÚCIDToGIDMapÚType0z
Identity-H)r¬   r­   r€  r�  ÚDescendantFontsrú  Ú	FontFile2rÊ  r[  ú r¹  rü  r#   r®  rÛ  r¼  rÝ  r  )rÆ  rj  rk  r$   Úget_glyphs_subsetr4  Úfont_as_filer’  r]   ÚstatÚst_sizeÚ	getbufferÚnbytesr   rS   r^  rt  rf   Úglyph_index_mapr…  r   r†  rý  r+   rˆ  Úchrrš   Úsortr,   rØ   ru  ) r’  râ  r6  rÓ  rÎ  ÚcidFontDictObjectÚtype0FontDictObjectÚcidToGidMapObjectrÏ  ÚwObjectr  rm  ÚfontdataÚcidFontDictÚtype0FontDictÚcid_to_gid_mapr«  Ú	max_ccoder�  Úorig_glyph_indexr  Úglyphrè  ÚwÚ	max_widthrƒ   rí  rÙ  rç  rï  r5  rë   s                               €€€€€r5   ÚembedTTFType42z(PdfFile.embedTTF.<locals>.embedTTFType42Õ  s‚  ø€ à!×/Ò/Ð0AÑBÔBˆNØ $× 2Ò 2Ð3HÑ IÔ IÐØ"&×"4Ò"4Ð5MÑ"NÔ"NÐØ $× 2Ò 2Ð3GÑ HÔ HÐØ!×/Ò/Ð0BÑCÔCˆNØ×(Ò(¨Ñ9Ô9ˆGØ!%×!3Ò!3°OÑ!DÔ!DÐå�JŠJÐ4°hÀÈgÑVÔVÐVÝ Ô2°8Ø3:·>²>Ñ3CÔ3CñEô Eð EØHNÝ*Ô7¸¼ÑDÔD�ðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ �JŠJØ'¨°<Ý”˜Ñ!Ô!Ô)¨8×+=Ò+=Ñ+?Ô+?Ô+Fñô ð õ ˜8Ñ$Ô$ˆDõ ˜V™œÝ Ñ/Ô/Ø#à 'Ø *Ø"#ð"%ð "%ð #1ØØ0ðð ˆKõ ˜V™œÝ ™=œ=Ø#Ý  Ñ.Ô.Ø$5Ð#6Ø/ðð ˆMð '5ˆJ�{Ñ#Ø×ÒØ × 1Ò 1Ñ 3Ô 3Ø  (×"4Ò"4Ñ"6Ô"6Ô"=Ð>ð ñ @ô @ð @ð
 #˜V e™^ˆNØˆFØˆIØ+2¯=ª=©?¬?ð 2ð 2Ñ'�Ð'ØÔ-Ð.>Ô?�ØŸš¨Ý.7Ô.@Å9ÔCWÑ.Wð (ñ Yô Y�à—’˜u c c¨%Ô*;Ñ&<Ô&<Ð=Ñ>Ô>Ð>Ý(+¨D©	¬	�˜uÑ%Ý  yÑ1Ô1�	�	Ø�KŠK‰MŒMˆMØ+¨N¨Y¸©]¨NÔ;ˆNàˆJØˆAØˆIØ &ð #ð #‘��uØ˜J¨™NÒ*Ð*Ø—H’H˜U‘O”O�OØ—H’H˜e˜WÑ%Ô%Ð%Ð%à�b”E—L’L Ñ'Ô'Ð'Ý 	¨5Ñ1Ô1�	Ø"�
�
ð  ŸWšW ^Ñ4Ô4×;Ò;¸JÑGÔGˆNØ×ÒÐ/°Ñ@Ô@Ð@ð 1Ð0°¸wÑGÔGˆLØ×ÒÐ0°,Ñ?Ô?Ð?à%.ˆJ�zÑ"ð ×ÒÐ.°Ñ<Ô<Ð<Ø×ÒÐ0°-Ñ@Ô@Ð@Ø×Ò˜^¨ZÑ8Ô8Ð8Ø×Ò˜W aÑ(Ô(Ð(à&Ð&s   ÃC?Ã?DÄDrÁ   rb   Úpcltr   )Ú	capHeightÚxHeightÚpostÚitalicAngle©r   r   Fr#   r€  r·  r¸  r‚  r¹  rº  r»  r�  c                 ó*   •— g | ]} ‰|d ¬¦  «        ‘ŒS ró  r@   rõ  s     €r5   rÆ   z$PdfFile.embedTTF.<locals>.<listcomp>V  s(   ø€ ÐBÐBÐB°1˜˜˜Q¨Ð.Ñ.Ô.ÐBÐBÐBr7   rô  r8  r9  )
r¬   r�  rÁ  r¾  rÂ  rÃ  rÄ  rÅ  rµ  rÈ  r�  é*   N)r   rd   rk  r„  r7  Úpostscript_namerØ   rS   Úget_sfnt_tableÚ
face_flagsÚstyle_flagsr   ÚFIXED_WIDTHr   ÚITALICrŠ  ÚascenderÚ	descender)rë   rç  râ  r6  r’  r  r6  r7  r:  ÚffÚsfrÒ  ÚsymbolicrÓ  rÙ  rî  rï  r5  s   ``            @@@@r5   r{  zPdfFile.embedTTFa  sš  øøøøøø€ å˜Ñ!Ô!ˆÝ”< Ô/ˆà Ô-°tð 		(ð 		(ð 		(ð 		(ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð:E	"ð E	"ð E	"ð E	"ð E	"ð E	"ð E	"ð E	"ð E	"ðN^	'ð ^	'ð ^	'ð ^	'ð ^	'ð ^	'ð ^	'ð ^	'ð ^	'ðD ×,Ò,¨TÔ-AÀ7ÑKÔKˆØ—.’. ¨)Ñ4Ô4ˆÝ�w‘-”-ˆØ×"Ò" 6Ñ*Ô*ÐL¸AÈ!Ð.LÐ.LˆØ×"Ò" 6Ñ*Ô*ÐE¨}¸fÐ.EˆØŒ_ˆØÔˆàˆØˆÝÔ  BÐ&Ð&Ø�V‰OˆEð	àð 	Ø�V‰OˆEˆEà�V‰OˆEÝÔ Ð"Ð"Ø�V‰OˆEð	ð	ð	õ Ð)Ñ*Ô*ØØØBÐBÐBÐB¸¼	ÐBÑBÔBØ�c˜$œ-°Ð7Ñ7Ô7Ø�s˜4œ>°5Ð9Ñ9Ô9Ø˜˜T +Ô.¸Ð>Ñ>Ô>Ø�s˜4 	œ?Ñ+Ô+Ø Ô.¨qÔ1Øðð ˆ
ð �qŠ=ˆ=Ø �=  |°W¸jÑIÔIÐIØ˜Š^ˆ^Ø!�> $¨°g¸zÑJÔJÐJð ˆ^r7   c                 óÊ   — | j                              |d¦  «        }|�|d         S t          | j        ¦  «        }|t	          d¦  «        |d         |d         dœf| j         |<   |S )z?Return name of an ExtGState that sets alpha to the given value.Nr   r¸  r#   )r¬   ÚCAÚca)rØ  rÖ  ri  rÙ  rS   )rë   ÚalphaÚstaterT   s       r5   Ú
alphaStatezPdfFile.alphaStated  sx   € ð Ô ×$Ò$ U¨DÑ1Ô1ˆØÐØ˜”8ˆOå�DÔ)Ñ*Ô*ˆà�D Ñ-Ô-Ø œ(¨%°¬(ð4ð 4ð 5ð 	Ô˜Ñð ˆr7   c                 ó  — | j                              |d¦  «        }|�|d         S t          | j        ¦  «        }|                      d¦  «        }|t          d¦  «        dt          d¦  «        t          d¦  «        dg|d	œd
œf| j         |<   | j                             |t          d¦  «        t          d¦  «        dt          d¦  «        t          d¦  «        dœg d¢dd|iig d¢dœt          d¦  «        t          j	        gf¦  «         |S )aA  
        Return an ExtGState that sets the soft mask to the given shading.

        Parameters
        ----------
        smask : Reference
            Reference to a shading in DeviceGray color space, whose luminosity
            is to be used as the alpha channel.

        Returns
        -------
        Name
        Nr   z transparency group for soft maskr¸  FÚMaskÚ
Luminosityr#   )r¬   r«   ÚBCÚG)r¬   ÚAISÚSMaskr·  ÚFormÚTransparencyÚ
DeviceGray)r«   ÚCS)r#   r   r   r#   r   r   rº  r«   )r   r   r#   r#   )r¬   r­   ÚFormTypeÚGroupÚMatrixr
  ÚBBox)
rÚ  rÖ  ri  rÛ  rÆ  rS   rÜ  r+   r  rZ  )rë   ÚsmaskrN  rT   ÚgroupObs        r5   Ú_soft_mask_statezPdfFile._soft_mask_stateq  s:  € ð Ô&×*Ò*¨5°$Ñ7Ô7ˆØÐØ˜”8ˆOå�DÔ'Ñ(Ô(ˆØ×$Ò$Ð%GÑHÔHˆàå˜[Ñ)Ô)Øå  ™LœLÝ˜lÑ+Ô+Ø˜#Ø ð	ð ð	ð 	ð)
ˆÔ˜uÑ%ð 	Ô×%Ò%Øå˜Y™œÝ ™<œ<Øå˜nÑ-Ô-Ý˜|Ñ,Ô,ðð ð -Ð,Ð,Ø'¨#¨u¨Ð6Ø$˜˜ðð õ �#‰YŒY�œ
Ð#ð'
ñ 	ô 	ð 	ð  ˆr7   c                 óº   — |                       | j        t          g | j                             ¦   «         ¢| j                             ¦   «         ¢¦  «        ¦  «         d S r?   )ru  rË  rß   rØ  r4  rÚ  rî   s    r5   r@  zPdfFile.writeExtGSTates¥  sj   € Ø×ÒØÔ!Ýð ØÔ!×(Ò(Ñ*Ô*ðàÔ'×.Ò.Ñ0Ô0ðñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r7   c                 ó–   — | j         D ]@\  }}}|                      |j        d |¦  «          | j        |Ž  |                      ¦   «          ŒAd S r?   )rÜ  r  ré   r  r  )rë   r;  Ú
attributesÚcontents       r5   rA  zPdfFile._write_soft_mask_groups®  sa   € Ø'+Ô'=ð 	ð 	Ñ#ˆB�
˜GØ×Ò˜RœU D¨*Ñ5Ô5Ð5ØˆDŒK˜Ð!Ð!Ø�NŠNÑÔÐÐð	ð 	r7   c                 óÞ   — |\  }}}}|�t          |¦  «        }|�t          |¦  «        }||||f}| j                             |d ¦  «        }|�|S t          | j        ¦  «        }|| j        |<   |S r?   )r›   rÝ  rÖ  ri  rÞ  )rë   Úhatch_styleÚedgeÚfaceÚhatchÚlwÚpatternrT   s           r5   ÚhatchPatternzPdfFile.hatchPattern´  s…   € à +Ñˆˆd�E˜2ØÐÝ˜‘;”;ˆDØÐÝ˜‘;”;ˆDØ˜T 5¨"Ð-ˆàÔ&×*Ò*¨;¸Ñ=Ô=ˆØÐØˆNå�DÔ+Ñ,Ô,ˆØ,0ˆÔ˜[Ñ)Øˆr7   ú3.10c                 óH   — d„ | j                              ¦   «         D ¦   «         S )Nc                 ó*   — i | ]\  }\  }}}}||||f“ŒS r@   r@   )rB   rC   r‹   rŒ   ÚhÚls         r5   rE   z$PdfFile.<lambda>.<locals>.<dictcomp>Å  s?   € ð Cð Cð CÙ(˜™L˜Q  1 aˆˆAˆq�!ˆ9ðCð Cð Cr7   )rÝ  rf   rî   s    r5   rì  zPdfFile.<lambda>Å  s4   € ð Cð CØ,0Ô,@×,FÒ,FÑ,HÔ,HðCñ Cô C€ r7   c                 ób  — t          ¦   «         }d}| j                             ¦   «         D �]è\  }}|                      d¦  «        }|||<   dd„ d                     ¦   «         D ¦   «         i}|                      |j        d t          d¦  «        ddddd||g|||ddddd| j        d	z  gd
œ	¦  «         |\  }}}	}
|  	                    |d         |d         |d         t          j        ¦  «         |�N|  	                    |d         |d         |d         t          j        dd||t          j        t          j        ¦
  «
         |  	                    |d         |d         |d         t          j        ¦  «         |  	                    |
t          j        ¦  «          | j	        |                      t#          j        |	¦  «        t'          ¦   «                              |¦  «        d¬¦  «        Ž  |  	                    t          j        ¦  «         |                      ¦   «          �Œê|                      | j        |¦  «         d S )Nç      R@zhatch patternÚProcsetsc                 ó,   — g | ]}t          |¦  «        ‘ŒS r@   r¨  r³  s     r5   rÆ   z(PdfFile.writeHatches.<locals>.<listcomp>Ð  r´  r7   rµ  r¹  r#   r   r  )	r¬   ÚPatternTypeÚ	PaintTypeÚ
TilingTyper^  ÚXStepÚYStepr
  r]  r€  F©Úsimplify)rß   rÝ  rf   rÆ  ræ  r  ré   rS   r„   r  r  rF  rG  r?  r5  rX  ÚpathOperationsr    rj  r   Úscaler3  r  ru  rÌ  )rë   Ú	hatchDictÚsidelenrg  rT   r;  ÚresÚ
stroke_rgbÚfill_rgbrj  rk  s              r5   rB  zPdfFile.writeHatchesÉ  s=  € Ý‘F”Fˆ	ØˆØ!%Ô!5×!;Ò!;Ñ!=Ô!=ð "	ñ "	ÑˆK˜Ø×#Ò# OÑ4Ô4ˆBØ ˆI�d‰OØØMÐMÐ%D×%JÒ%JÑ%LÔ%LÐMÑMÔMðOˆCà×ÒØ”�tÝ˜i™œØ !°ÀØ˜Q ¨Ð1Ø!¨GØ!à˜q ! Q¨¨4¬;¸Ñ+;Ð<ð>ð >ñ?ô ?ð ?ð /:Ñ+ˆJ˜ %¨Ø�KŠK˜
 1œ z°!¤}°jÀ´mÝÔ(ñ*ô *ð *àÐ#Ø—’˜H QœK¨°!¬°h¸q´kÝÔ/Ø˜q '¨7µB´LÝœGñ%ô %ð %ð �KŠK˜
 1œ z°!¤}°jÀ´mÝÔ+ñ-ô -ð -ð �KŠK˜�BœOÑ,Ô,Ð,àˆDŒK˜×,Ò,Ý”
˜5Ñ!Ô!Ý‘
”
× Ò  Ñ)Ô)Øð -ñ  ô  ð !ð !ð �KŠK�œÑ'Ô'Ð'à�NŠNÑÔÐÑØ×Ò˜Ô)¨9Ñ5Ô5Ð5Ð5Ð5r7   c                 ó¾   — t          dt          | j        ¦  «        z  ¦  «        }|                      d|› �¦  «        }| j                             ||||f¦  «         ||fS )aÕ  
        Add a Gouraud triangle shading.

        Parameters
        ----------
        points : np.ndarray
            Triangle vertices, shape (n, 3, 2)
            where n = number of triangles, 3 = vertices, 2 = x, y.
        colors : np.ndarray
            Vertex colors, shape (n, 3, 1) or (n, 3, 4)
            as with points, but last dimension is either (gray,)
            or (r, g, b, alpha).

        Returns
        -------
        Name, Reference
        zGT%dzGouraud triangle )rS   r*   rß  rÆ  r+   )rë   ÚpointsÚcolorsrT   r;  s        r5   ÚaddGouraudTriangleszPdfFile.addGouraudTrianglesñ  sf   € õ$ �F�S Ô!6Ñ7Ô7Ñ7Ñ8Ô8ˆØ×ÒÐ :°DÐ :Ð :Ñ;Ô;ˆØÔ×$Ò$ d¨B°¸Ð%?Ñ@Ô@Ð@Ø�Rˆxˆr7   c                 ó¦  — t          ¦   «         }| j        D �]ž\  }}}}|||<   |j        }|                     |d         |d         z  df¦  «        }|j        d         }|dv sJ ‚|                     |d         |d         z  |f¦  «        }	|dk    rd}t	          j        |d¬¦  «        dz
  }
t	          j        |d¬¦  «        dz   }d	||
z
  z  }|                      |j        d dd
ddt          |dk    rdnd¦  «        d|
d         |d         |
d         |d         gddg|z  z   dœ¦  «         t	          j
        |d         |d         z  fdddd|ffg¬¦  «        }d|d<   ||
z
  |z  |d<   |	d d …d |…f         dz  |d<   |                      |                     ¦   «         ¦  «         |                      ¦   «          �Œ |                      | j        |¦  «         d S )Nr   r#   r€  ©r#   r·  r·  r�  ©Úaxisrþ   l   ÿÿ r¸  é   r  rY  F)ÚShadingTypeÚBitsPerCoordinateÚBitsPerComponentÚBitsPerFlagÚ
ColorSpaceÚ	AntiAliasÚDecode)rÒ  Úu1)r†  z>u4)r€  r‡  r•  ©ÚdtyperÒ  r†  g     ào@)rß   rß  ÚshapeÚreshaperÐ   r™   rš   r  ré   rS   Úemptyró   Útobytesr  ru  rÍ  )rë   ÚgouraudDictrT   r;  r†  r‡  r˜  Úflat_pointsÚcolordimÚflat_colorsÚ
points_minÚ
points_maxÚfactorÚ	streamarrs                 r5   rC  zPdfFile.writeGouraudTriangles  s@  € Ý‘f”fˆØ(,Ô(=ð '	ñ '	Ñ$ˆD�"�f˜fØ "ˆK˜ÑØ”LˆEØ Ÿ.š.¨%°¬(°U¸1´XÑ*=¸qÐ)AÑBÔBˆKØ”| A”ˆHØ˜vÐ%Ð%Ð%Ð%Ø Ÿ.š.¨%°¬(°U¸1´XÑ*=¸xÐ)HÑIÔIˆKØ˜1Š}ˆ}à�Ýœ °!Ð4Ñ4Ô4¸Ñ?ˆJÝœ °!Ð4Ñ4Ô4¸Ñ?ˆJØ :°
Ñ#:Ñ;ˆFà×ÒØ”�tØ !Ø&(Ø%&Ø !Ý#Ø$,°¢M M�[�[°|ñ ô  ð $Ø'¨œ]¨J°q¬MØ'¨œ]¨J°q¬Mð;à  !˜f xÑ/ñ0ðð ñô ð õ œØ�q”˜E !œHÑ$Ð&Ø&Ø.Ø  $¨¨Ð4ð6ð7ñ 7ô 7ˆIð
 "#ˆI�gÑØ#.°Ñ#;¸vÑ"EˆI�hÑØ"-¨a¨a¨a°°(°¨lÔ";¸eÑ"CˆI�hÑà�JŠJ�y×(Ò(Ñ*Ô*Ñ+Ô+Ð+Ø�NŠNÑÔÐÑØ×Ò˜Ô+¨[Ñ9Ô9Ð9Ð9Ð9r7   c                 óö   — | j                              t          |¦  «        d¦  «        }|�|d         S t          | j        ¦  «        }|                      d|› �¦  «        }|||f| j         t          |¦  «        <   |S )z=Return name of an image XObject representing the given image.Nr#   zimage )rà  rÖ  ré   ri  rá  rÆ  )rë   r:  ÚentryrT   r;  s        r5   ÚimageObjectzPdfFile.imageObject4  sv   € ð ”× Ò ¥ E¡¤¨DÑ1Ô1ˆØÐØ˜”8ˆOå�D”OÑ$Ô$ˆØ×Ò ¨  Ñ0Ô0ˆØ#(¨$°Ð"3ˆŒ•R˜‘Y”YÑØˆr7   c                 ó@  — |ddd…         }|j         dk    r|dfS |dd…dd…dd…f         }t          j        |d¬¦  «        }|j        d         dk    rG|dd…dd…df         d         }t          j        |d	k    ¦  «        rd}nt          j        |d¬¦  «        }nd}||fS )
zç
        Unpack image array *im* into ``(data, alpha)``, which have shape
        ``(height, width, 3)`` (RGB) or ``(height, width, 1)`` (grayscale or
        alpha), except that alpha is None if the image is fully opaque.
        NrÛ  r€  r�  ÚC)Úorderr·  ).Nr“  )ÚndimrÐ   Úarrayr˜  Úall)rë   ÚimÚrgbrM  s       r5   Ú_unpackzPdfFile._unpack@  sÅ   € ð ���"�ŒXˆØŒ7�aŠ<ˆ<Ø�t�8ˆOà�Q�Q�Q˜˜˜˜2˜A˜2�X”,ˆCÝ”(˜3 cÐ*Ñ*Ô*ˆCàŒx˜Œ{˜aÒÐØ˜1˜1˜1˜a˜a˜a ˜7œ IÔ.�Ý”6˜% 3š,Ñ'Ô'ð 7Ø �E�EåœH U°#Ð6Ñ6Ô6�E�Eà�Ø˜�:Ðr7   c                 ó$  — t          ¦   «         }|                     |d¬¦  «         |                     d¦  «         d}dx}}	 t          j        d|                     d¦  «        ¦  «        \  }}|dv rh|                     |¦  «        }t          |¦  «        |k    rt          d	¦  «        ‚|d
k    rt          |d         ¦  «        }n2|dk    r|}n)|dk    r||z  }n|dk    rn-|                     |d¦  «         |                     dd¦  «         ŒË|||fS )zn
        Write the image *img* into the pdf file using png
        predictors with Flate compression.
        ro  )rý  r�  r7   NTs   !L4s)ó   IHDRó   PLTEó   IDATztruncated datar±  r²  r³  s   IENDr#   r·  )	r   ÚsaveÚseekÚstructÚunpackÚreadr*   ÚRuntimeErrorr`   )	rë   ÚimgÚbufferÚpng_dataÚ	bit_depthÚpaletter4   rã   ry  s	            r5   Ú	_writePngzPdfFile._writePngW  s(  € õ
 ‘”ˆØ�Š� ˆÑ&Ô&Ð&Ø�Š�A‰ŒˆØˆØ"Ð"ˆ	�Gð	Ý!œ=¨°&·+²+¸a±.´.ÑAÔA‰LˆF�DØÐ2Ð2Ð2Ø—{’{ 6Ñ*Ô*�Ý�t‘9”9 Ò&Ð&Ý&Ð'7Ñ8Ô8Ð8Ø˜7’?�?Ý # D¨¤G¡¤�I�IØ˜W’_�_Ø"�G�GØ˜W’_�_Ø Ñ$�HøØ˜’�Øà—’˜F AÑ&Ô&Ð&Ø�KŠK˜˜1ÑÔÐð!	ð" ˜ GÐ+Ð+r7   c           	      óÖ  — |j         \  }}}t          d¦  «        t          d¦  «        ||t          dddœ|         ¦  «        ddœ}|r||d<   t          j        d	         �r|j         d
         dk    r|                     d
¬¦  «        }d||dœ}t          j        |¦  «        }	|	                     d¬¦  «        }
|dk    �r|
��t          |
¦  «        }t          j
        d„ |
D ¦   «         t          j        ¬¦  «        }|ddd…                              t          j        ¦  «        dz  |ddd…                              t          j        ¦  «        dz  z  |ddd…         z  }|dd…dd…df                              t          j        ¦  «        dz  |dd…dd…df                              t          j        ¦  «        dz  z  |dd…dd…df         z  }t          j        |¦  «                             t          j        ¦  «        }|t          j        |||¬¦  «                 }t          j        |¦  «                             d¦  «        }	|	                     |¦  «         |                      |	¦  «        \  }}}|�|€t'          d¦  «        ‚|d|dz  …         }t          d¦  «        t          d¦  «        |dz
  |g|d<   ||d<   d|d<   ||d<   n|                      |	¦  «        \  }}}nd}|                      ||                      d¦  «        ||¬ ¦  «         |r| j                             |¦  «         n,| j                             |                     ¦   «         ¦  «         |                      ¦   «          dS )!a  
        Write the image *data*, of shape ``(height, width, 1)`` (grayscale) or
        ``(height, width, 3)`` (RGB), as pdf object *id* and with the soft mask
        (alpha channel) *smask*, which should be either None or a ``(height,
        width, 1)`` array.
        r·  r   rY  r  ©r#   r�  r�  )r¬   r­   ÚWidthÚHeightr’  r�  rV  rf  rÛ  r#   r‹  é
   )Ú	PredictorÚColorsÚColumnsrþ   )Ú	maxcolorsr�  Nc                 ó"   — g | ]\  }}|D ]}|‘ŒŒS r@   r@   )rB   rï  ÚcolorÚcomps       r5   rÆ   z%PdfFile._writeImg.<locals>.<listcomp>Ž  s*   € Ð#VÐ#VÐ#V©X¨Q°ÐPUÐ#VÐ#VÈ DÐ#VÐ#VÐ#VÐ#Vr7   r–  r   é   r€  )ÚsorterÚPzinvalid PNG headerÚIndexedr’  r�  rÆ  zlength of image stream)ro  )r˜  rS   rd   rk  Úsqueezer   Ú	fromarrayÚ	getcolorsr*   rÐ   r«  Úuint8ÚastypeÚuint32ÚargsortÚsearchsortedÚconvertÚ
putpaletter¿  r¹  r  rÆ  rÅ  ró   r›  r  )rë   ry  ré   r_  r„   rƒ   Úcolor_channelsrä   ro  rº  Ú
img_colorsÚ
num_colorsr¾  Ú	palette24Úrgb24ÚindicesÚrgb8r¼  r½  rï  s                       r5   Ú	_writeImgzPdfFile._writeImgt  s�  € ð )-¬
Ñ%ˆ��~Ý˜I‘”Ý˜w™-œ-ØØÝ! l°{Ð"CÐ"CÀNÔ"SÑTÔTØ#$ð&ð &ˆð ð 	!Ø ˆC�‰LÝŒ<Ð)Ô*ñ "	ØŒz˜"Œ~ Ò"Ð"Ø—|’|¨�|Ñ,Ô,�Ø "¨nÈÐOÐOˆCÝ”/ $Ñ'Ô'ˆCØŸš°˜Ñ5Ô5ˆJØ Ò"Ñ" zÑ'=õ ! ™_œ_�
Ýœ(Ð#VÐ#V¸Ð#VÑ#VÔ#VÝ)+¬ð3ñ 3ô 3�à% a d¨ dœm×2Ò2µ2´9Ñ=Ô=ÀÑCØ% a d¨ dœm×2Ò2µ2´9Ñ=Ô=ÀÑBñDà$ Q T¨ Tœ]ñ+�	ð ˜q˜q˜q ! ! ! Q˜wœ-×.Ò.­r¬yÑ9Ô9¸RÑ?Ø˜q˜q˜q ! ! ! Q˜wœ-×.Ò.­r¬yÑ9Ô9¸QÑ>ñ@à˜a˜a˜a    A˜gœñ'�õ œ* YÑ/Ô/×6Ò6µr´xÑ@Ô@�Ø�rœ¨y¸%ÈÐPÑPÔPÔQ�Ý”o dÑ+Ô+×3Ò3°CÑ8Ô8�Ø—’˜wÑ'Ô'Ð'Ø/3¯~ª~¸cÑ/BÔ/BÑ,�˜) WØÐ$¨¨Ý&Ð';Ñ<Ô<Ð<Ø! / :°¡> /Ô2�Ý%)¨)¡_¤_µd¸;Ñ6GÔ6GØ%/°!¡^°Wð%>��LÑ!à*3�Ð&Ñ'Ø !��H‘Ø*3�Ð&Ñ'Ð'à!%§¢°Ñ!4Ô!4‘�˜!˜Q˜QàˆCØ×ÒØØ×ÒÐ7Ñ8Ô8ØØð	 	ñ 	ô 	ð 	ð ð 	5ØÔ×$Ò$ XÑ.Ô.Ð.Ð.àÔ×$Ò$ T§\¢\¡^¤^Ñ4Ô4Ð4Ø�ŠÑÔÐÐÐr7   c                 ó  — | j                              ¦   «         D ]o\  }}}|                      |¦  «        \  }}|�1|                      d¦  «        }|                      ||j        ¦  «         nd }|                      ||j        |¦  «         Œpd S )Nr_  )rà  r4  r¯  rÆ  rá  ré   )rë   rº  rT   r;  ry  ÚadataÚsmaskObjects          r5   rD  zPdfFile.writeImages³  s–   € Ø!œ\×0Ò0Ñ2Ô2ð 	5ð 	5‰MˆC��rØŸ,š, sÑ+Ô+‰KˆD�%ØÐ Ø"×0Ò0°Ñ9Ô9�Ø—’˜u k¤nÑ5Ô5Ð5Ð5à"�Ø�NŠN˜4 ¤¨Ñ4Ô4Ð4Ð4ð	5ð 	5r7   c                 óà  — |                       ||d¬¦  «        }t          |¦  «        t          |¦  «        t          |¦  «        ||f}	| j                             |	¦  «        }
|
€rt          dt          | j        ¦  «        z  ¦  «        }|                      dt          | j        ¦  «        z  ¦  «        }|                     |¦  «        }||||g| j        |	<   n|
d         |k     r||
d<   |
d         }|S )z<Return name of a marker XObject representing the given path.Fr|  NzM%dz	marker %drÛ  r   )	r~  r›   rÕ   râ  rÖ  rS   r*   rÆ  Úget_extents)rë   rL  rM  r5  r4  rk  Ú	joinstyleÚcapstyleÚpathopsÚkeyr1   rT   r;  rŠ  s                 r5   ÚmarkerObjectzPdfFile.markerObject½  sç   € ð ×%Ò% d¨E¸EÐ%ÑBÔBˆÝ�W‰~Œ~�t D™zœz­4°©<¬<¸ÀHÐMˆØ”×!Ò! #Ñ&Ô&ˆØˆ>Ý˜¥ D¤LÑ 1Ô 1Ñ1Ñ2Ô2ˆDØ×#Ò# Kµ#°d´lÑ2CÔ2CÑ$CÑDÔDˆBØ×#Ò# EÑ*Ô*ˆDØ!% r¨4°Ð 4ˆDŒL˜ÑÐà�bŒz˜BŠˆØ��r‘
Ø˜!”9ˆDØˆr7   c           
      ó~  — | j                              ¦   «         D �]!\  \  }}}}}\  }}}}	|                     |	dz  ¦  «        }|                      |j        d t          d¦  «        t          d¦  «        t          |j        ¦  «        dœ¦  «         |                      t          j
        |         t          j        ¦  «         |                      t          j        |         t          j        ¦  «          | j        |Ž  |                      t                               ||¦  «        ¦  «         |                      ¦   «          �Œ#d S )Né   r·  rW  ©r¬   r­   r^  )râ  rf   Úpaddedr  ré   rS   rà   Úextentsr  r  r  r  rM  Ú	capstylesrN  r8  r  )
rë   ré  r5  r4  rç  rè  rT   r;  rŠ  rk  s
             r5   rE  zPdfFile.writeMarkersÚ  s+  € à&*¤l×&8Ò&8Ñ&:Ô&:ð	ñ 	ñ #Ñ9ˆg�t˜V Y°Ù!ˆd�B˜˜bð —;’;˜r A™vÑ&Ô&ˆDØ×ÒØ”�tÝ˜i™œµT¸&±\´\Ý˜dœlÑ+Ô+ð-ð -ñ.ô .ð .ð �KŠKÕ*Ô5°iÔ@Ýœñ(ô (ð (à�KŠKÕ*Ô4°XÔ>ÅÄÑNÔNÐNØˆDŒK˜Ð!Ð!Ø�KŠK�Ÿš d¨FÑ3Ô3Ñ4Ô4Ð4Ø�NŠNÑÔÐÑð'	ð 	r7   c                 ó0  — t          dt          | j        ¦  «        z  ¦  «        }|                      dt          | j        ¦  «        z  ¦  «        }| j                             |||||                     ¦   «         |                     ¦   «         |||f	¦  «         |S )NzP%dzpath %d)rS   r*   rã  rÆ  r+   Úget_joinstyleÚget_capstyle)	rë   r³   rL  rM  rO  rP  rQ  rT   r;  s	            r5   ÚpathCollectionObjectzPdfFile.pathCollectionObjectð  sŒ   € Ý�E�C ¤
™OœOÑ+Ñ,Ô,ˆØ×Ò 	­C°´
©O¬OÑ ;Ñ<Ô<ˆØŒ
×ÒØ�4˜  B×$4Ò$4Ñ$6Ô$6¸¿ºÑ8IÔ8IØ�f˜gð'ñ	(ô 	(ð 	(ð ˆr7   c           
      ó
  — | j         D �]y\	  }}}}}}}}}	|                      ||d¬¦  «        }
|                     |¦  «        }t          j        t          j        |j        ¦  «        ¦  «        sg d¢}n)|                     |¦  «        }t          |j        ¦  «        }|  	                    |j
        d t          d¦  «        t          d¦  «        |dœ¦  «         |                      t          j        |         t          j        ¦  «         |                      t          j        |         t          j        ¦  «          | j        |
Ž  |                      t                               ||	¦  «        ¦  «         |                      ¦   «          �Œ{d S )NFr|  ©r   r   r   r   r·  rW  rî  )rã  r~  ræ  rÐ   r¬  rÒ   rð  rï  rà   r  ré   rS   r  r  r  r  rM  rñ  rN  r8  r  )rë   rT   rL  rM  r;  rç  rè  rO  rP  rQ  ré  rŠ  rð  s                r5   rF  z$PdfFile.writePathCollectionTemplatesø  so  € àœð	ñ 	ñ ˆT�4˜  I¨x¸À&ØØ×)Ò)¨$°ÀÐ)ÑFÔFˆGØ×#Ò# EÑ*Ô*ˆDÝ”6�"œ+ d¤lÑ3Ô3Ñ4Ô4ð -Ø&˜,˜,��à—{’{ 7Ñ+Ô+�Ý˜tœ|Ñ,Ô,�Ø×ÒØ”�tÝ˜i™œµT¸&±\´\Ø ð"ð "ñ#ô #ð #ð �KŠKÕ*Ô5°iÔ@Ýœñ(ô (ð (à�KŠKÕ*Ô4°XÔ>ÅÄÑNÔNÐNØˆDŒK˜Ð!Ð!Ø�KŠK�Ÿš f¨gÑ6Ô6Ñ7Ô7Ð7Ø�NŠNÑÔÐÑð%	ð 	r7   c                 óÖ   — t          t          j        | ||||dt          j        j        t          j        j        dt          j        j        t          j        j        gd¦  «        ¦  «        gS )Nr*  r7   T)	r  r"   rŽ  r  rA  r1  r@  r>  r:  )rL  r   rY  r}  Úsketchs        r5   r~  zPdfFile.pathOperations  s\   € å�Ô0Ø�)˜T 8¨VØÝŒYŒ_�bœiœo¨sµB´JÔ4DÝŒ\Ôð!àñô ñ ô ð ð 	r7   Fc                 ó–   — |rdd| j         dz  | j        dz  f}|j        }nd }d}|                      |||||¬¦  «        } | j        |Ž  d S )Nç        r  F)r}  rù  )rƒ   r„   Úshould_simplifyr~  r  )rë   rL  r   rY  rù  r}  Úcmdss          r5   Ú	writePathzPdfFile.writePath  ss   € Øð 	Ø˜˜dœj¨2™o¨t¬{¸RÑ/?Ð@ˆDØÔ+ˆHˆHàˆDØˆHØ×"Ò" 4¨°DÀ8Ø*0ð #ñ 2ô 2ˆàˆŒ�TÐÐÐÐr7   r¼  c                 ó‚   — t          | j        ¦  «        }| j                             dd|g¦  «         t	          |¦  «        S )z£
        Reserve an ID for an indirect object.

        The name is used for debugging in case we forget to print out
        the object with writeObject.
        Nr   )ri  r¾  r¿  r+   ræ   )rë   rT   ré   s      r5   rÆ  zPdfFile.reserveObject!  s<   € õ �$Ô"Ñ#Ô#ˆØŒ×Ò˜t Q¨˜oÑ.Ô.Ð.Ý˜‰}Œ}Ðr7   c                 ód   — | j                              ¦   «         | j        z
  | j        |         d<   d S ©Nr   )rg  rn  rÂ  r¿  rê   s     r5   rj  zPdfFile.recordXref,  s*   € Ø $¤§¢¡¤°´Ñ ?ˆŒ�rÔ˜1ÑÐÐr7   c                 óf   — |                       |j        ¦  «         |                     || ¦  «         d S r?   )rj  ré   ró   )rë   Úobjectrô   s      r5   ru  zPdfFile.writeObject/  s0   € Ø�Š˜œ	Ñ"Ô"Ð"Ø�Š�X˜tÑ$Ô$Ð$Ð$Ð$r7   c                 ó\  — | j                              ¦   «         | j        z
  | _        |                      dt          | j        ¦  «        z  ¦  «         t          | j        ¦  «        D ]F\  }\  }}}|€t          d||fz  ¦  «        ‚|dk    rdnd}d|||fz  }|                      |¦  «         ŒGdS )zWrite out the xref table.s
   xref
0 %d
NzNo offset for object %d (%s)rœ  r  r#  s   %010d %05d %b 
)	rg  rn  rÂ  Ú	startxrefró   r*   r¿  r)   ÚAssertionError)rë   r2   ÚoffsetÚ
generationrT   rê  r  s          r5   rH  zPdfFile.writeXref3  sÌ   € àœŸš™œ¨$¬.Ñ8ˆŒØ�
Š
�?¥S¨¬Ñ%8Ô%8Ñ8Ñ9Ô9Ð9Ý-6°t´~Ñ-FÔ-Fð 	!ð 	!Ñ)ˆAÑ)�˜
 DØˆ~Ý$Ø2°a¸°YÑ>ñ@ô @ð @ð #Ð&7Ò7Ð7�d�d¸T�Ø*¨f°jÀ#Ð-FÑF�Ø—
’
˜4Ñ Ô Ð Ð ð	!ð 	!r7   c                 óz   — |                       d¦  «        | _        |                      | j        | j        ¦  «         dS )z8Write out the info dictionary, checking it for good formrn   N)rÆ  Ú
infoObjectru  rÐ  rî   s    r5   rG  zPdfFile.writeInfoDict@  s9   € ð ×,Ò,¨VÑ4Ô4ˆŒØ×Ò˜œ¨$¬-Ñ8Ô8Ð8Ð8Ð8r7   c                 óî   — |                       d¦  «         |                       t          t          | j        ¦  «        | j        | j        dœ¦  «        ¦  «         |                       d| j        z  ¦  «         dS )zWrite out the PDF trailer.s   trailer
)ÚSizeÚRootÚInfos   
startxref
%d
%%%%EOF
N)ró   r¾   r*   r¿  rÇ  r
  r  rî   s    r5   rI  zPdfFile.writeTrailerF  s{   € ð 	�
Š
�<Ñ Ô Ð Ø�
Š
•7Ý˜œÑ(Ô(Ø”_Ø”_ð&ð &ñ'ô 'ñ 	(ô 	(ð 	(ð
 	�
Š
Ð0°4´>ÑAÑBÔBÐBÐBÐBr7   r?   r}  r‹  )NNN©FN)r¼  )>rö   r÷   rø   rù   rì   r	   Ú
deprecatedÚpropertyÚ	fontNamesÚmulti_byte_charprocsÚtype1Descriptorsr  r  r!  Ústaticmethodr1  r7  rR  rT  ró   r  r  r  r^  r>  rr  rt  r?  ry  rw  r¤  Údelete_parameterr£  rç  r{  rO  ra  r@  rA  rm  ÚhatchPatternsrB  rˆ  rC  r¦  r¯  r¿  rá  rD  rë  rE  rõ  rF  r~  rþ  rÆ  rj  ru  rH  rG  rI  Ú__classcell__©rê  s   @r5   rš  rš  o  sy  ø€ € € € € ØÐðe9ð e9ð e9ð e9ð e9ð e9ðN (��” Ñ'Ô'¨¨Ð1MÐ1MÑ(NÔ(NÑOÔO€IØ2˜?˜4œ?¨6Ñ2Ô2°8°8¸L¸LÑ3IÔ3IÑJÔJÐØ.��t” vÑ.Ô.¨x¨x¸¸Ñ/EÔ/EÑFÔFÐà€T„_�VÑÔØðð ñ „Xñ Ôðð("ð "ð "ð: .@Ð-?Ð-?ð -ð -ð -ð -ð ð ð  ñ „\ð ð, ðQð Qñ „\ðQðð ð ð>	ð 	ð 	ð+ð +ð +ðð ð ð?ð ?ð ?ð ?ð&ð &ð &ð
 04ð ð ð ð ð ð
8ð 8ð 8ðð ð ð ðB	ð 	ð 	ð1ð 1ð 1ð$
ð 
ð 
ð2ð 2ð 2ðh
ð 
ð 
ð €TÔ˜6 :Ñ.Ô.ðDð Dð Dñ /Ô.ðDðLÐð*AKð AKð AKðFð ð ð2ð 2ð 2ðh
ð 
ð 
ðð ð ðð ð ð" ,�O�D”O FÑ+Ô+¨H¨Hð 6ð 6ñ -ô -ñ ô €Mð&6ð &6ð &6ðPð ð ð.*:ð *:ð *:ðX
ð 
ð 
ðð ð ð.,ð ,ð ,ð:=ð =ð =ð =ð~5ð 5ð 5ðð ð ð:ð ð ð,ð ð ðð ð ð* ðð ð ñ „\ðð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð@ð @ð @ð%ð %ð %ð!ð !ð !ð9ð 9ð 9ð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr7   rš  c                   ó¶   ‡ — e Zd Z ej        d¦  «        ZdZˆ fd„Zd„ Zdd„Z	d„ Z
dd„Zdd	„Zdd
œd„Z	 dd„Zd„ Zdd„Zd„ Zddœd„Zd„ Zd„ Zdd„Zd„ Zˆ xZS )rg  zfonts/pdfcorefontsra  c                 óš   •— t          ¦   «                              ||¦  «         || _        |                      ¦   «         | _        || _        d S r?   )r¼  rì   rõ   Únew_gcr³   Ú	image_dpi)rë   rõ   r  r„   rƒ   rê  s        €r5   rì   zRendererPdf.__init__W  s>   ø€ Ý‰Œ×Ò˜ Ñ'Ô'Ð'ØˆŒ	Ø—+’+‘-”-ˆŒØ"ˆŒˆˆr7   c                 óR   —  | j         j        | j                             ¦   «         Ž  d S r?   )rõ   r  r³   rR  rî   s    r5   rR  zRendererPdf.finalize]  s(   € ØˆŒ	Ô˜$œ'×*Ò*Ñ,Ô,Ð-Ð-Ð-Ð-r7   Nc                 óÞ  — t          |dd¦  «        }||_        t          |dd¦  «        }|                     ¦   «         €|                     dd¬¦  «         |j        r|j        |j        f|_        nD|�t          |¦  «        dk     r|j        d	         d
f|_        n|j        d	         |d	         f|_        | j	         
                    |¦  «        }|r | j        j        |Ž  ||_        ||_        d S )NÚ
_fillcolor©rû  rû  rû  Ú_effective_alphas©ç      ð?r$  r÷  T)ÚisRGBAr·  r�  r$  )Úgetattrr   Úget_rgbÚset_foregroundÚ_forced_alphaÚ_alphar"  r*   Ú_rgbr³   Údeltarõ   r  )rë   r³   Ú	fillcolorÚ	orig_fillÚorig_alphasr,  s         r5   Úcheck_gczRendererPdf.check_gc`  sû   € Ý˜B ¨lÑ;Ô;ˆ	Ø!ˆŒå˜bÐ"5°zÑBÔBˆà�:Š:‰<Œ<Ðð ×Ò˜l°4ÐÑ8Ô8Ð8àÔð 	>Ø$&¤I¨r¬yÐ#9ˆBÔ Ð ØÐ¥# i¡.¤.°1Ò"4Ð"4Ø$&¤G¨A¤J°Ð#4ˆBÔ Ð à$&¤G¨A¤J°	¸!´Ð#=ˆBÔ à”—’˜bÑ!Ô!ˆØð 	%ØˆDŒIÔ˜eÐ$Ð$ð "ˆŒØ*ˆÔÐÐr7   c                 ó   — | j         dz  S )Nrt  )r  rî   s    r5   Úget_image_magnificationz#RendererPdf.get_image_magnification{  s   € ØŒ~˜dÑ"Ð"r7   c                 óº  — |j         d d…         \  }}|dk    s|dk    rd S |€|                     d¦  «         |                      |¦  «         d|z  | j        z  }d|z  | j        z  }| j                             |¦  «        }|€N| j                             t          j        |dd|||t          j	        |t          j
        t          j        ¦  «         d S |                     ¦   «                              ¦   «         \  }	}
}}}}| j                             t          j        dddd||t          j	        |	|
||||t          j	        |t          j
        t          j        ¦  «         d S )Nr€  r   r$  rt  r#   )r˜  Ú	set_alphar0  r  rõ   r¦  r  r  rP  rB  rC  rQ  ÚfrozenÚ	to_values)rë   r³   rJ   r‚   r­  r   rq  r4  ÚimobÚtr1Útr2Útr3Útr4Útr5Útr6s                  r5   Ú
draw_imagezRendererPdf.draw_image~  sd  € ð Œx˜˜˜Œ|‰ˆˆ1Ø�Š6ˆ6�Q˜!’V�VØˆFàÐà�LŠL˜ÑÔÐà�Š�bÑÔÐà�1‰H�t”~Ñ%ˆØ�1‰H�t”~Ñ%ˆàŒy×$Ò$ RÑ(Ô(ˆàÐØŒI×Ò�RœXØ  1 a¨¨A­rÔ/?Ø!¥2¤>µ2´;ñ@ô @ð @ð @ð @ð ,5×+;Ò+;Ñ+=Ô+=×+GÒ+GÑ+IÔ+IÑ(ˆC��c˜3  SàŒI×Ò�RœXØ  1 a¨¨A­rÔ/?Ø  # s¨C°°c½2Ô;KØ!¥2¤>µ2´;ñ@ô @ð @ð @ð @r7   c                 ó"  — |                       ||¦  «         | j                             |||d u o|                     ¦   «         d u |                     ¦   «         ¦  «         | j                             | j                             ¦   «         ¦  «         d S r?   )r0  rõ   rþ  Úget_hatch_pathÚget_sketch_paramsr  r³   Úpaint)rë   r³   rL  r   ÚrgbFaces        r5   Ú	draw_pathzRendererPdf.draw_pathœ  s‰   € à�Š�b˜'Ñ"Ô"Ð"ØŒ	×ÒØ�)Ø�tˆOÐ; × 1Ò 1Ñ 3Ô 3°tÐ ;Ø× Ò Ñ"Ô"ñ	$ô 	$ð 	$ð 	Œ	×Ò˜œŸš™œÑ)Ô)Ð)Ð)Ð)r7   ©Úhatchcolorsc                óà  — d}t          j        |¦  «        }t          j        |¦  «        }|€g }t          |¦  «        sd}|                     ¦   «          }n7t          j        |d d …df         |d         k    ¦  «        r|d         dk    }nd}t          |¦  «        sd}ndt          j        t          j        |	¦  «        dk    ¦  «        rd}n7t          j        |d d …df         |d         k    ¦  «        r|d         dk    }nd}t          |¦  «        dk    rt          |d         j        ¦  «        nd}|                      |||||¦  «        }||z   dz   ||z  k     }|r|s#t          j        | |||||||||	|
||||¬¦  «        S t          j	        |	¦  «        }g }g }t          |                      |||¦  «        ¦  «        D ]v\  }\  }}| j                             ||||||¦  «        }|                     |¦  «         |                     |                     |¦  «                             ¦   «         ¦  «         Œwt#          t%          ||¦  «        ¦  «        }| j        j        d	z  }| j        j        d	z  }| j        j        } || j                             ¦   «         Ž  d
\  } }!|                      |||||||	|
||||¬¦  «        D ]”\  }"}#}$}%}&||$         }'|'j        |"z   dk     s*|'j        |"z   |k    s|'j        |#z   dk     s|'j        |#z   |k    rŒI|                      |%|&¦  «         |"| z
  |#|!z
  })}( |dddd|(|)t<          j        |$t<          j         ¦	  «	         |"|#}!} Œ• || j         !                    ¦   «         Ž  d S )NTFr�  )r   r�  rû  r   rí  rE  r  r<  r#   )"rÐ   Úasarrayr*   Ú	get_hatchr¬  rŸ   Ú_iter_collection_uses_per_pathr   Údraw_path_collectionrš   r)   Ú_iter_collection_raw_pathsrõ   rõ  r+   ræ  r5  rß   Úziprƒ   r„   r  r³   ÚpushÚ_iter_collectionÚx1Úx0Úy1Úy0r0  r  rB  rC  Úpop)*rë   r³   Úmaster_transformrã  Úall_transformsÚoffsetsÚoffset_transÚ
facecolorsÚ
edgecolorsÚ
linewidthsÚ
linestylesÚantialiasedsÚurlsÚoffset_positionrF  Úcan_do_optimizationrP  rQ  Úlen_pathÚuses_per_pathÚshould_do_optimizationrO  Ú
path_codesÚpath_extentsr2   rL  r   rT   Úpath_extent_mapÚcanvas_widthÚcanvas_heightr  ÚlastxÚlastyÚxoÚyoÚpath_idÚgc0rC  rŠ  ÚdxÚdys*                                             r5   rK  z RendererPdf.draw_path_collection¥  s
  € ð #ÐÝ”Z 
Ñ+Ô+ˆ
Ý”Z 
Ñ+Ô+ˆ
àÐØˆKå�:‰Œð 	,ØˆFØ&(§l¢l¡n¤nÐ"4ÐÐåŒv�j    A Ô&¨*°TÔ*:Ò:Ñ;Ô;ð ,Ø# DÔ)¨SÒ0��à&+Ð#å�:‰Œð 	,ØˆGˆGåŒv•b”j Ñ,Ô,°Ò3Ñ4Ô4ð ,Ø��Ý”˜
 1 1 1 a 4Ô(¨J°tÔ,<Ò<Ñ=Ô=ð ,Ø$ TÔ*¨cÒ1��à&+Ð#õ .1°©Z¬Z¸!ª^¨^•3�u˜Q”xÔ(Ñ)Ô)Ð)ÀˆØ×;Ò;Ø�> 7¨J¸
ñDô Dˆð �}Ñ$ qÑ(¨8°mÑ+CÒCð 	ð $ð 	:Ð-Cð 	:ÝÔ4Ø�bÐ*¨E°>Ø˜ z°:Ø˜J¨°dØ¨[ð	:ñ :ô :ð :õ ”&˜Ñ$Ô$ˆØˆ
ØˆÝ$-¨d×.MÒ.MØ  %¨ñ/9ô /9ñ %:ô %:ð 		Fð 		FÑ ˆAÑ ��ià”9×1Ò1Ø�D˜) W¨f°gñ?ô ?ˆDà×Ò˜dÑ#Ô#Ð#ð
 ×Ò × 0Ò 0°Ñ ;Ô ;× BÒ BÑ DÔ DÑEÔEÐEÐEõ �s :¨|Ñ<Ô<Ñ=Ô=ˆà”y”¨Ñ+ˆØœ	Ô(¨2Ñ-ˆà”Ô!ˆØˆ�”—’‘”ÐÐØ‰ˆˆuØ-1×-BÒ-BØ�J ¨Ø˜J¨
°JØ˜d OÀð .Cñ .Nô .Nð 	"ð 	"Ñ)ˆB��G˜S 'ð # 7Ô+ˆDØ”˜"‘˜qÒ Ð  D¤G¨b¡L°<Ò$?Ð$?Ø”w ‘| aÒ'Ð'¨4¬7°R©<¸-Ò+GÐ+GØà�MŠM˜#˜wÑ'Ô'Ð'Ø˜%‘Z  e¡�ˆBØˆF�1�a˜˜A˜r 2¥rÔ'7¸Ý”>ñ#ô #ð #à˜r�5ˆEˆEØˆ�”—’‘”ÐÐÐÐr7   c                 ó¶  — t          |¦  «        }t          |¦  «        }||z  ||z   dz   k     rt          j        | ||||||¦  «         d S |                      ||¦  «         |                     |¦  «        }	|                     ¦   «         }
| j        j        }| j                             |||	|
| j	        j
        |                     ¦   «         |                     ¦   «         ¦  «        } |t          j        ¦  «         d\  }}|                     |dd| j        j        dz  | j        j        dz  fd¬¦  «        D ]�\  }}t          |¦  «        r||dd …         \  }}d|cxk    r| j        j        dz  k    rn nd|cxk    r| j        j        dz  k    sn Œ[||z
  ||z
  }} |dddd||t          j        |t          j        ¦	  «	         ||}}Œ‘ |t          j        ¦  «         d S )	Nrí  r<  r   r  F)rY  r}  r®  r#   )r*   r   Údraw_markersr0  r5  r4  rõ   r  rë  r³   Ú
_linewidthró  rô  r  rP  Úiter_segmentsrƒ   r„   rB  rC  rQ  )rë   r³   Úmarker_pathÚmarker_transrL  rM  rC  Úlen_marker_pathÚusesr5  r4  r  Úmarkerri  rj  rŸ   r²  rJ   r‚   ro  rp  s                        r5   rr  zRendererPdf.draw_markers  s  € õ
 ˜kÑ*Ô*ˆÝ�4‰yŒyˆØ˜TÑ! O°dÑ$:¸QÑ$>Ò>Ð>ÝÔ% d¨B°¸\Ø&*¨E°7ñ<ô <ð <àˆFà�Š�b˜'Ñ"Ô"Ð"Ø�wŠw�wÑÔˆØ—’‘”ˆà”Ô!ˆØ”×'Ò'Ø˜ t¨V°T´WÔ5GØ×ÒÑÔ §¢Ñ 1Ô 1ñ3ô 3ˆð 	ˆ�rŒxÑÔÐØ‰ˆˆuØ"×0Ò0ØØ˜˜DœIœO¨BÑ.°´	Ô0@ÀÑ0CÐDØð 1ñ  ô  ð 	$ð 	$‰NˆH�dõ �8‰}Œ}ð $Ø   ”}‘��1Ø˜QÐ6Ð6Ò6Ð6 $¤)¤/°BÑ"6Ò6Ð6Ð6Ð6Ð6Ø Ð;Ð;Ò;Ð; d¤iÔ&6¸Ñ&;Ò;Ð;Ð;Ð;ØØ˜U™ A¨¡I�B�Ø��q˜!˜Q  2 r­2Ô+;Ø�rœ~ñ/ô /ð /à  !�u�øØˆ�rŒ{ÑÔÐÐÐr7   c                 óÔ  — t          |¦  «        t          |¦  «        k    sJ ‚t          |¦  «        dk    rd S |j        dk    sJ ‚|j        d         dk    sJ ‚|j        d         dk    sJ ‚|j        dk    sJ ‚|j        d         dk    sJ ‚|j        d         dv sJ ‚|j        }|                     |d         |d         z  df¦  «        }|                     |¦  «        }|                     |¦  «        }| j                             ||¦  «        \  }}| j        j        }	|j        d         dk    rB|                     d¦  «         |  	                    |¦  «          |	|t          j        ¦  «         d S |d         }
t          j        |
|d d …d d …df         ¦  «        rB|                     |
¦  «         |  	                    |¦  «          |	|t          j        ¦  «         d S |d d …d d …df         d d …d d …d f         }
| j                             ||
¦  «        \  }}| j                             |¦  «        } |	t          j        |t          j        |t          j        t          j        ¦  «         d S )Nr   r�  r#   r€  rŠ  r$  )r   r   r�  )r*   rª  r˜  r™  r   rõ   rˆ  r  r4  r0  r  rZ  rÐ   Úallclosera  rP  rO  rQ  )rë   r³   r†  r‡  rM  r˜  ÚtpointsrT   rï  r  rM  Úsmask_obÚgstates                r5   Údraw_gouraud_trianglesz"RendererPdf.draw_gouraud_triangles(  ss  € Ý�6‰{Œ{�c &™kœkÒ)Ð)Ð)Ð)Ýˆv‰;Œ;˜!ÒÐØˆFØŒ{˜aÒÐÐÐØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ{˜aÒÐÐÐØŒ|˜AŒ !Ò#Ð#Ð#Ð#ØŒ|˜AŒ &Ð(Ð(Ð(Ð(à”ˆØ—’  q¤¨E°!¬HÑ!4°aÐ 8Ñ9Ô9ˆØ—/’/ &Ñ)Ô)ˆØ—/’/ %Ñ(Ô(ˆØ”)×/Ò/°¸Ñ@Ô@‰ˆˆaØ”Ô!ˆàŒ<˜Œ?˜aÒÐà�LŠL˜ÑÔÐØ�MŠM˜"ÑÔÐØˆF�4�œÑ$Ô$Ð$ØˆFà�w”ˆÝŒ;�u˜f Q Q Q¨¨¨¨1 WœoÑ.Ô.ð 	 à�LŠL˜ÑÔÐØ�MŠM˜"ÑÔÐØˆF�4�œÑ$Ô$Ð$Ð$Ð$ð ˜1˜1˜1˜a˜a˜a ˜7”O A A A q q q¨$ JÔ/ˆEØœ)×7Ò7¸ÀÑGÔG‰KˆAˆxØ”Y×/Ò/°Ñ9Ô9ˆFØˆF•2”8˜V¥R¤\Ø�œÝ”;ñ ô  ð  ð  ð  r7   r   c           	      óÜ  — ||cxk    rdk    r1n n.| j                              ||z
  ||z
  t          j        ¦  «         d S t	          j        |¦  «        }| j                              t	          j        |¦  «        t	          j        |¦  «        t	          j        |¦  «         t	          j        |¦  «        ||t          j        ¦  «         | j                              ddt          j        ¦  «         d S r  )	rõ   r  r  rR  r~   r   r�   r€   rT  )rë   rJ   r‚   r…   ÚoldxÚoldyÚoldangles          r5   Ú_setup_textposzRendererPdf._setup_textposP  sÐ   € Ø�HÐ!Ð!Ò!Ð! Ò!Ð!Ð!Ð!Ð!ØŒI×Ò˜Q ™X q¨4¡xµ´Ñ<Ô<Ð<Ð<Ð<å”L Ñ'Ô'ˆEØŒI×Ò�TœX e™_œ_­d¬h°u©o¬oÝ"œh u™oœoÐ-­t¬x¸©¬Ø ¥2¤=ñ2ô 2ð 2ð ŒI×Ò˜Q ¥2¤:Ñ.Ô.Ð.Ð.Ð.r7   c                 ó  — | j         j                             |d|¦  «        \  }}}	}
}|                     ¦   «         �=| j        j        d         d                              t          ||||||¦  «        ¦  «         t          j	        d         }t          j        |¦  «        }| j                             t          j        ¦  «         | j                             t          j        |¦  «        t          j        |¦  «        t          j        |¦  «         t          j        |¦  «        ||t          j        ¦  «         |                      ||j        ¦  «         d}d\  }}| j                             t          j        ¦  «         |
D ]ë\  }}}}}}| j        j                             |||¦  «        \  }}t/          |j        |j        ¦  «        }|                      ||d||¦  «         ||}}|||f|k    rD| j                             | j                             ||¦  «        |t          j        ¦  «         |||f}| j                             |                      |g|¦  «        t          j        ¦  «         Œì| j                             t          j        ¦  «         |D ]P\  }}}}| j                             t          j        ||||t          j         t          j!        t          j"        ¦  «         ŒQ| j                             t          j"        ¦  «         d S )Nr  rÛ  r#   rÕ  r}  r<  r   )#Ú
_text2pathÚmathtext_parserÚparser²   rõ   rä  r+   r·   rd   rk  r~   r   r  r  rP  r�   r€   rB  r0  r+  r<  r×  Útrack_glyphr   rp  r¡  r„  rr  rS  Ú_encode_glyphsrV  r=  r?  r5  rQ  )rë   r³   rJ   r‚   r3   r¢  r…   rƒ   r„   ÚdescentÚglyphsÚrectsrî  rˆ   Ú	prev_fontr�  r‚  r’  Úfontsizer�  r•  ÚoxÚoyrâ  Úsubset_charcoder�  s                             r5   Údraw_mathtextzRendererPdf.draw_mathtextZ  sØ  € ð ŒOÔ+×1Ò1°!°R¸Ñ>Ô>ñ 	.ˆˆv�w ¨ð �:Š:‰<Œ<Ð#ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜% ¨ñ20ô 20ñ 1ô 1ð 1õ ”< Ô/ˆõ ŒL˜ÑÔˆØŒ	×Ò�œÑ"Ô"Ð"ØŒ	×Ò�œ !™œ¥d¤h¨q¡k¤kÝœ( 1™+œ+˜¥t¤x°¡{¤{Ø˜A�rÔ/ñ	1ô 	1ð 	1ð 	�Š�b˜"œ'Ñ"Ô"Ð"Øˆ	Ø‰
ˆˆdàŒ	×Ò�œÑ'Ô'Ð'Ø:@ð 	&ð 	&Ñ6ˆD�(˜E ;°°BØ,0¬IÔ,H×,TÒ,TØ�e˜[ñ-*ô -*Ñ)ˆL˜/å  ¤¨T¬_Ñ=Ô=ˆIØ×Ò  B¨¨4°Ñ6Ô6Ð6Ø˜R�$ˆDØ˜<¨Ð2°iÒ?Ð?Ø”	× Ò  ¤×!3Ò!3°I¸|Ñ!LÔ!LÈhÝ!#¤ñ0ô 0ð 0à% |°XÐ=�	ØŒI×Ò˜T×0Ò0°/Ð1BÀHÑMÔMÝœWñ&ô &ð &ð &àŒ	×Ò�œÑ%Ô%Ð%ð &+ð 	Að 	AÑ!ˆB��E˜6ØŒI×Ò�RœX r¨2¨u°fÝœ\­2¬7µB´KñAô Að Að Að 	Œ	×Ò�œÑ%Ô%Ð%Ð%Ð%r7   )Úmtextc          
      óP
  — |                       ¦   «         }|                     ¦   «         }	|                     ||	¦  «        }
t          j        |
d¦  «        5 }|\  }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         �G| j        j        d         d                              t          ||||j
        |j        |¦  «        ¦  «         d g }}|j        D ]¬}|j        |k    r9| j                             |j        ¦  «        }|d||j        j        ggz  }|j        }|d|j        |j        t%          |j        g¦  «        g|j        |j
        z   ggz  }| j        j                             |j        |j        |j        ¦  «         Œ­d\  }}}	|t/          |¦  «        dz
  k     �r|||dz   …         \  }}|d         dk    r	|d         }	nË|d         |d         cxk    rdk    r²n n¯|d         |d         k    r�|d	         |d         z
  }t1          |¦  «        d
k     rB|d         dxx         |d         d         z  cc<   |d	xx         |d	         |d         z
  z  cc<   n/|dxx         |dz  |	z  |d         d         gz  cc<   |d	         |d	<   ||dz   = �Œ|dz  }|t/          |¦  «        dz
  k     �°t3          ¦   «                              |¦  «                             ||¦  «        }|                      ||j        ¦  «         | j                             t>          j         ¦  «         d\  }}}}|D �]	}|d         dk    r3| j                             |d         |d         t>          j!        ¦  «         ŒB|d         dk    r»| "                    |d         |d         f¦  «        \  }}|  #                    |||||¦  «         ||}}t/          |d         ¦  «        dk    r2| j                             |d         d         t>          j$        ¦  «         ŒÜ| j                             |d         t>          j%        ¦  «         �Œ	J ‚| j                             t>          j&        ¦  «         |  '                    ¦   «         }| (                    |¦  «         | )                    d¦  «         tT          j+        tT          j,        tT          j,        tT          j,        tT          j-        g}|j.        D ]O\  }}}}tU          ||g||z   |g||z   ||z   g|||z   gddgg|¦  «        } |  /                    || ||j        ¦  «         ŒPd S )Nr  rÛ  r#   r’  r  )r   r   Nr€  r   r·  gš™™™™™¹?r�  g     @�@r÷  )0Úget_texmanagerÚget_size_in_pointsÚmake_dvir   ÚDvir²   rõ   rä  r+   r·   rƒ   r„   r  r’  rt  ÚsizerJ   r‚   rÛ   r3  r×  r‰  Úindexr*   Úabsr   Ú
rotate_degrÝ   r0  r+  r  r  r<  rS  r   r„  rV  rW  r=  r  Úcopy_propertiesÚset_linewidthr    ÚMOVETOÚLINETOÚ	CLOSEPOLYÚboxesrD  )!rë   r³   rJ   r‚   r3   r¢  r…   r”  Ú
texmanagerr�  ÚdvifileÚdvir  ÚoldfontÚseqr  rõ  r2   ÚcurxÚeltÚnxtr  ÚmytransÚcuryr�  r‚  Úboxgcré  rP  rR  rq  r4  rL  s!                                    r5   Údraw_texzRendererPdf.draw_tex‡  sc  € à×(Ò(Ñ*Ô*ˆ
Ø×*Ò*Ñ,Ô,ˆØ×%Ò% a¨Ñ2Ô2ˆÝŒ[˜ "Ñ%Ô%ð 	¨Ø‰EˆDð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð �:Š:‰<Œ<Ð#ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜$œ* d¤k°5ñ2:ô 2:ñ ;ô ;ð ;ð ˜R�ˆØ”Ið 	Xð 	XˆDØŒy˜GÒ#Ð#Øœ)×/Ò/°´	Ñ:Ô:�Ø˜ ¨$¬)¬.Ð9Ð:Ñ:�Øœ)�Ø�V˜TœV T¤V­e°T´Z°LÑ.AÔ.AÐ-BÀDÄFÈ4Ì:ÑDUÐVÐWÑWˆCØŒIÔ(×4Ò4°T´YÀÄ
ÈDÌJÑWÔWÐWÐWð
 'Ñˆˆ4�Ø•#�c‘(”(˜1‘*Šn‰nØ˜1˜Q˜q™S˜5”z‰HˆC�Ø�1Œv˜ÒÐØ˜qœ6��Ø�Q”˜3˜qœ6Ð+Ð+Ò+Ð+ VÒ+Ð+Ð+Ð+Ð+°°A´¸#¸a¼&Ò0@Ð0@Ø˜Qœ # a¤&™�Ý�v‘;”; Ò$Ð$Ø˜”F˜2�J�J”J # a¤&¨¤)Ñ+�J�J‘JØ˜�F�F”F˜c !œf S¨¤V™mÑ+�F�F‘F�Fà˜�F�F”F˜v f™}¨XÑ5°s¸1´v¸a´yÐAÑA�F�F‘FØ  œV�C˜‘FØ˜˜!™�HÙØ�‰FˆAð •#�c‘(”(˜1‘*Šn‰nõ" ‘*”*×'Ò'¨Ñ.Ô.×8Ò8¸¸AÑ>Ô>ˆð 	�Š�b˜"œ'Ñ"Ô"Ð"ØŒ	×Ò�œÑ'Ô'Ð'Ø!+Ñˆˆd�D˜$Øð 	ñ 	ˆCØ�1Œv˜ÒÐØ”	× Ò   Q¤¨¨Q¬µ´Ñ?Ô?Ð?Ð?Ø�Q”˜6Ò!Ð!Ø$×.Ò.°°A´¸¸A¼Ð/?Ñ@Ô@‘
��dØ×#Ò# D¨$°°t¸TÑBÔBÐBØ! 4�d�Ý�s˜1”v‘;”; !Ò#Ð#Ø”I×$Ò$ S¨¤V¨A¤Yµ´Ñ8Ô8Ð8Ð8à”I×$Ò$ S¨¤V­R¬[Ñ9Ô9Ð9Ñ9à�uØŒ	×Ò�œÑ%Ô%Ð%ð —’‘”ˆØ×Ò˜bÑ!Ô!Ð!Ø×Ò˜AÑÔÐÝ”;¥¤­T¬[½$¼+Ý”>ð#ˆà œJð 	:ð 	:‰LˆB��A�qÝ˜"˜b˜ B q¡D¨" :°°1±°b¸±d¨|¸bÀ"ÀQÁ$¸ZØ˜Q˜ð!Ø")ñ+ô +ˆDà�NŠN˜5 $¨°´Ñ9Ô9Ð9Ð9ð	:ð 	:s   ÁA%Á%A)Á,A)c                 óf   — |dv rt          |¦  «        S d                     d„ |D ¦   «         ¦  «        S )NrÁ  r7   c              3   óB   K  — | ]}|                      d d¦  «        V — ŒdS )r€  ÚbigN)Úto_bytes)rB   r3  s     r5   r“   z-RendererPdf._encode_glyphs.<locals>.<genexpr>Þ  s0   è è € ÐEÐE°U˜Ÿš q¨%Ñ0Ô0ÐEÐEÐEÐEÐEÐEr7   )rÛ   r,   )rë   rm  rî  s      r5   rŠ  zRendererPdf._encode_glyphsÛ  s:   € Ø�vÐÐÝ˜‘=”=Ð Ø�xŠxÐEÐE¸fÐEÑEÔEÑEÔEÐEr7   c                 óF   — ddddœ|         }|                      |d¦  «        S )NÚcp1252rÃ   rÝ  )r#   r�  r>  rb   )rØ   )rë   r3   rî  r  s       r5   Úencode_stringzRendererPdf.encode_stringà  s*   € Ø I°:Ð>Ð>¸xÔHˆØ�xŠx˜ )Ñ,Ô,Ð,r7   Fc	           
      ó¢	  ‡ ‡‡— ‰                       ||j        ¦  «         |r‰                      ||||||¦  «        S |                     ¦   «         Š|�)|                     ¦   «         }	|                     ¦   «         }
nd x}	}
t          j        d         r¼‰                      |¦  «        }‰ j	         
                    t          j        ‰ j	                             |¦  «        ‰t          j        ¦  «         ‰                      |||¦  «         ‰ j	         
                    ‰                      |d¬¦  «        t          j        t          j        ¦  «         �nû‰                      |¦  «        }t          j        d         Šˆˆˆ fd„}‰ j	         
                    t          j        ¦  «         t+          j        |¦  «        }‰ j	         
                    t+          j        |¦  «        t+          j        |¦  «        t+          j        |¦  «         t+          j        |¦  «        ||t          j        ¦  «         g }d }d}‰ j	         
                    t          j        ¦  «         t5          j        |||	|
¬¦  «        D �]‹}‰ j	        j                             |j        |j        |j         ¦  «        \  }}|j        |f|k    rŸ ||¦  «         tC          |j        j"        |j        j#        ¦  «        }‰ j	                             ||¦  «        }‰ j	         
                    |‰t          j        ¦  «         ‰                      |j$        dd|dd¦  «         |j        |f}|j$        }|j%        r5 ||¦  «         ‰ j	         
                    |j%        t          j&        ¦  «         |j'        r| (                    |j'        ¦  «         | (                    |¦  «         |j%        r0 ||¦  «         ‰ j	         
                    dt          j&        ¦  «         �Œ� ||¦  «         ‰ j	         
                    t          j        ¦  «         ‰ j	         
                    t          j)        ¦  «         | *                    ¦   «         �t| +                    ||	|
¬¦  «         | ,                    ¦   «         \  }}‰ j	        j-        d         d          (                    t]          ||||d	z  |d	z  |¦  «        ¦  «         d S d S )
Nra  r#   )rî  rÕ  c                 óÎ   •— | sd S ‰j                              ˆˆˆfd„t          j        | t          ¦  «        D ¦   «         t
          j        ¦  «         |                      ¦   «          d S )Nc                 ó‚   •— g | ];\  }}|t           k    rd t          |¦  «        z  ‰z  n‰                     |‰¦  «        ‘Œ<S )iüÿÿ)rÏ   ri  rŠ  )rB   ÚtpÚgroupr�  rî  rë   s      €€€r5   rÆ   zJRendererPdf.draw_text.<locals>.output_singlebyte_chunk.<locals>.<listcomp>	  sa   ø€ ð Oð Oð Oá"˜˜Uð :<½uº¸�e�d 5™kœkÑ)¨HÑ4Ð4Ø×-Ò-¨e°XÑ>Ô>ðOð Oð Or7   )rõ   r  rœ   Úgroupbyrã   r  rW  Úclear)Úkerns_or_charsr�  rî  rë   s    €€€r5   Úoutput_singlebyte_chunkz6RendererPdf.draw_text.<locals>.output_singlebyte_chunk	  s‘   ø€ Ø%ð Ø�FØ”	× Ò ðOð Oð Oð Oð Oð Oå&/Ô&7¸ÍÑ&MÔ&MðOñ Oô Oõ ”Kñ!ô !ð !ð ×$Ò$Ñ&Ô&Ð&Ð&Ð&r7   r   )ÚfeaturesÚlanguagerÛ  r‚  )/r0  r+  r“  r—  Úget_fontfeaturesÚget_languagerd   rk  Ú_get_font_afmrõ   r  r  r<  rr  rS  r„  r¶  rV  r=  Ú_get_font_ttfrP  r~   r   r�   r€   rB  r
   Úlayoutr×  r‰  Ú	ft_objectr™  r•  r   rp  r¡  rJ   r‚   rU  Ú	prev_kernr+   rQ  r²   Úset_textÚget_width_heighträ  r·   )rë   r³   rJ   r‚   r3   r¢  r…   Úismathr”  rÀ  rÁ  r’  r¿  rˆ   Úsinglebyte_chunkrŽ  Úprev_start_xÚitemrm  rþ  r�  Úft_namerƒ   r„   r�  rî  s   `                       @@r5   Ú	draw_textzRendererPdf.draw_textä  s¥  øøø€ ð
 	�Š�b˜"œ'Ñ"Ô"Ð"Øð 	@Ø×%Ò% b¨!¨Q°°4¸Ñ?Ô?Ð?à×*Ò*Ñ,Ô,ˆØÐØ×-Ò-Ñ/Ô/ˆHØ×)Ò)Ñ+Ô+ˆHˆHà"&Ð&ˆH�xõ Œ<Ð,Ô-ð H	*Ø×%Ò% dÑ+Ô+ˆDØŒI×Ò�Rœ]Ø!œY×/Ò/°Ñ5Ô5°xÅÄñPô Pð Pà×Ò  1 eÑ,Ô,Ð,ØŒI×Ò˜T×/Ò/°¸AÐ/Ñ>Ô>ÝœW¥b¤kñ3ô 3ð 3ñ 3ð  ×%Ò% dÑ+Ô+ˆDÝ”| NÔ3ˆHð
'ð 
'ð 
'ð 
'ð 
'ð 
'ð 
'ð ŒI×Ò�RœXÑ&Ô&Ð&Ý”˜UÑ#Ô#ˆAØŒI×Ò�TœX a™[œ[­$¬(°1©+¬+Ý"œh q™kœk˜\­4¬8°A©;¬;Ø ¥2Ô#3ñ5ô 5ð 5ð  "ÐØˆIØˆLàŒI×Ò�Rœ]Ñ+Ô+Ð+Ý%Ô,¨Q°¸xØ6>ð@ñ @ô @ð 5ñ 5�à#'¤9Ô#?×#KÒ#KØ”N D¤I¨tÔ/?ñ$Aô $AÑ �˜à”N FÐ+¨yÒ8Ð8Ø+Ð+Ð,<Ñ=Ô=Ð=Ý (¨¬Ô)=Ø)-¬Ô)Bñ!Dô !D�Ià"œi×0Ò0°¸FÑCÔC�GØ”I×$Ò$ W¨h½¼ÑFÔFÐFØ×'Ò'¨¬°°1°lÀAÀqÑIÔIÐIØ!%¤°Ð 8�IØ#'¤6�LØ”6ð :Ø+Ð+Ð,<Ñ=Ô=Ð=Ø”I×$Ò$ T¤V­R¬[Ñ9Ô9Ð9Ø”>ð <Ø$×+Ò+¨D¬NÑ;Ô;Ð;Ø ×'Ò'¨Ñ1Ô1Ð1Ø”6ð 5Ø+Ð+Ð,<Ñ=Ô=Ð=Ø”I×$Ò$ Q­¬Ñ4Ô4Ð4ùØ#Ð#Ð$4Ñ5Ô5Ð5ØŒI×Ò�Rœ[Ñ)Ô)Ð)ØŒI×Ò�Rœ[Ñ)Ô)Ð)à�:Š:‰<Œ<Ð#Ø�MŠM˜! h¸ˆMÑBÔBÐBØ ×1Ò1Ñ3Ô3‰MˆE�6ØŒIÔ" 2Ô& qÔ)×0Ò0Õ1EØ�A�q˜% "™* f¨r¡k°5ñ2:ô 2:ñ ;ô ;ð ;ð ;ð ;ð $Ð#r7   c                 ó*   — t          | j        ¦  «        S r?   )r  rõ   rî   s    r5   r  zRendererPdf.new_gcE	  s   € å! $¤)Ñ,Ô,Ð,r7   r?   r©   r  )rö   r÷   rø   r   Ú_get_data_pathrh  Ú_use_afm_rc_namerì   rR  r0  r2  r>  rD  rK  rr  r  r„  r“  r¯  rŠ  r¶  rÐ  r  r  r  s   @r5   rg  rg  R  s�  ø€ € € € € à(�EÔ(Ð)=Ñ>Ô>€MØ+Ðð#ð #ð #ð #ð #ð.ð .ð .ð+ð +ð +ð +ð6#ð #ð #ð@ð @ð @ð @ð<*ð *ð *ð *ð >Bð[ð [ð [ð [ð [ð| "ð$ð $ð $ð $ðL& ð & ð & ðP/ð /ð /ð /ð+&ð +&ð +&ðZ ;?ð R:ð R:ð R:ð R:ð R:ðhFð Fð Fð
-ð -ð -ð_;ð _;ð _;ð _;ðB-ð -ð -ð -ð -ð -ð -r7   rg  c            
       óà   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zdddd	œZdddd
œZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdefdefde
fdefdefdefdefdefdeff	Zd„ Zˆ fd „Zd!„ Zˆ xZS )"r  c                 ó€   •— t          ¦   «                              ¦   «          d| _        d| _        || _        d | _        d S )Nr!  r#  )r¼  rì   r   r"  rõ   Úparent)rë   rõ   rê  s     €r5   rì   zGraphicsContextPdf.__init__L	  s:   ø€ Ý‰Œ×ÒÑÔÐØ)ˆŒØ!+ˆÔØˆŒ	ØˆŒˆˆr7   c                 óT   — t          | j        ¦  «        }|d= |d= t          |¦  «        S )Nrõ   rÖ  )rß   Ú__dict__Úrepr)rë   ry   s     r5   rï   zGraphicsContextPdf.__repr__S	  s*   € Ý�”ÑÔˆØˆfˆIØˆhˆKÝ�A‰wŒwˆr7   c                 ó€   — | j         dk    o3| j        dk    o(t          | j        ¦  «        dk    p| j        d         dk    S )zÕ
        Predicate: does the path need to be stroked (its outline drawn)?
        This tests for the various conditions that disable stroking
        the path, in which case it would presumably be filled.
        r   r�  rû  )rs  r*  r*   r+  rî   s    r5   r4  zGraphicsContextPdf.strokeY	  sE   € ð ” !Ò#ð =¨¬°aªð =Ý�T”Y‘” 1Ò$Ð;¨¬	°!¬¸Ò(;ð	>r7   c                 ó”   — t          |¦  «        r	|d         }n| j        }| j        p"|duot          |¦  «        dk    p|d         dk    S )z¼
        Predicate: does the path need to be filled?

        An optional argument can be used to specify an alternative
        _fillcolor, as needed by RendererPdf.draw_markers.
        r   Nr�  rû  )r*   r   Ú_hatch)rë   Úargsr   s      r5   r5  zGraphicsContextPdf.filld	  s_   € õ ˆt‰9Œ9ð 	)Ø˜aœˆJˆJàœˆJØ”ð AØ 4Ð'ð @Ý�j‘/”/ QÒ&Ð>¨*°Q¬-¸3Ò*>ð	Br7   c                 ó€   — t                                |                      ¦   «         |                      ¦   «         ¦  «        S )zo
        Return the appropriate pdf operator to cause the path to be
        stroked, filled, or both.
        )r  r8  r5  r4  rî   s    r5   rB  zGraphicsContextPdf.paints	  s(   € õ
 �}Š}˜TŸYšY™[œ[¨$¯+ª+©-¬-Ñ8Ô8Ð8r7   r   r#   r€  )Úbuttr‡  Ú
projecting)Úmiterr‡  Úbevelc                 ó4   — | j         |         t          j        gS r?   )rñ  r  rN  ©rë   Ústyles     r5   Úcapstyle_cmdzGraphicsContextPdf.capstyle_cmd}	  s   € Ø”˜uÔ%¥r¤}Ð5Ð5r7   c                 ó4   — | j         |         t          j        gS r?   )r  r  rM  rä  s     r5   Újoinstyle_cmdz GraphicsContextPdf.joinstyle_cmd€	  s   € Ø” Ô&­¬Ð7Ð7r7   c                 ó   — |t           j        gS r?   )r  rX  )rë   rƒ   s     r5   Úlinewidth_cmdz GraphicsContextPdf.linewidth_cmdƒ	  s   € Ø•r”Ð'Ð'r7   c                 óP   — |\  }}|€g }d}t          |¦  «        |t          j        gS r  )rà   r  rL  )rë   Údashesr  Údashs       r5   Údash_cmdzGraphicsContextPdf.dash_cmd†	  s/   € Ø‰ˆ�Øˆ<ØˆDØˆFÝ�T‘
”
˜F¥B¤JÐ/Ð/r7   c                 óR   — | j                              |¦  «        }|t          j        gS r?   )rõ   rO  r  rO  )rë   rM  ÚforcedÚeffective_alphasrT   s        r5   Ú	alpha_cmdzGraphicsContextPdf.alpha_cmd�	  s%   € ØŒy×#Ò#Ð$4Ñ5Ô5ˆØ•b”lÐ#Ð#r7   c                 ó  — |s<| j         �|                      | j         ¦  «        S t          d¦  «        t          j        gS || j         ||f}| j                             |¦  «        }t          d¦  «        t          j        |t          j        gS )Nr  r¹  )r   Úfillcolor_cmdrS   r  rI  rõ   rm  rK  )rë   rj  Úhatch_colorÚhatch_linewidthrg  rT   s         r5   Ú	hatch_cmdzGraphicsContextPdf.hatch_cmd‘	  sƒ   € Øð 		1ØŒÐ*Ø×)Ò)¨$¬/Ñ:Ô:Ð:å˜[Ñ)Ô)­2Ô+EÐFÐFà&¨¬¸ÀÐPˆKØ”9×)Ò)¨+Ñ6Ô6ˆDÝ˜‘O”O¥RÔ%?Ø�"Ô/ð1ð 1r7   c                 óÆ   — t           j        d         rg S |d         |d         cxk    r|d         k    rn n|d         t          j        gS g |d d…         ¢t          j        ‘S ©Nzpdf.inheritcolorr   r#   r€  r�  )rd   rk  r  rD  rF  ©rë   r®  s     r5   Úrgb_cmdzGraphicsContextPdf.rgb_cmd�	  sr   € ÝŒ<Ð*Ô+ð 	ØˆIØˆqŒ6�S˜”VÐ%Ð%Ò%Ð%˜s 1œvÒ%Ð%Ð%Ð%Ð%Ø˜”F�BÔ-Ð.Ð.à/�S˜˜!˜”WÐ/�bÔ.Ð/Ð/r7   c                 óÊ   — |�t           j        d         rg S |d         |d         cxk    r|d         k    rn n|d         t          j        gS g |d d…         ¢t          j        ‘S rù  )rd   rk  r  rE  rG  rú  s     r5   rô  z GraphicsContextPdf.fillcolor_cmd¥	  ss   € Øˆ;�#œ,Ð'9Ô:ˆ;ØˆIØ�ŒV�s˜1”vÐ'Ð'Ò'Ð'  Q¤Ò'Ð'Ð'Ð'Ð'Ø˜”F�BÔ0Ð1Ð1à2�S˜˜!˜”WÐ2�bÔ1Ð2Ð2r7   c                 ó”   — t          | j        ¦  «        }|                     | ¦  «         | j        |_        || _        t          j        gS r?   )r  rõ   rž  rÖ  r  rP  )rë   rÖ  s     r5   rN  zGraphicsContextPdf.push­	  s?   € Ý# D¤IÑ.Ô.ˆØ×Ò˜tÑ$Ô$Ð$ØœˆŒØˆŒÝ”ˆzÐr7   c                 ó„   — | j         €J ‚|                      | j         ¦  «         | j         j         | _         t          j        gS r?   )rÖ  rž  r  rQ  rî   s    r5   rT  zGraphicsContextPdf.pop´	  s<   € ØŒ{Ð&Ð&Ð&Ø×Ò˜Tœ[Ñ)Ô)Ð)Ø”kÔ(ˆŒÝ”ˆ}Ðr7   c                 ó¢  — g }| j         | j        f||fk    rI| j        �B|                     |                      ¦   «         ¦  «         | j         | j        f||fk    r| j        ­B| j         | j        f||fk    s| j        €Ô|                     |                      ¦   «         ¦  «         | j         |k    r7|                     |t          j        t          j        t          j	        g¦  «         | j        |k    r`| 
                    ¦   «         \  }}|                     t                               ||d¬¦  «        t          j        t          j	        gz   ¦  «         |S )z1Set clip rectangle. Calls `.pop()` and `.push()`.NFr|  )Ú	_cliprectÚ	_clippathrÖ  ÚextendrT  rN  r  r?  rY  r6  Úget_transformed_path_and_affinerš  r~  )rë   ÚcliprectÚclippathrý  rL  Úaffines         r5   Úclip_cmdzGraphicsContextPdf.clip_cmdº	  s8  € àˆà” ¤Ð/°H¸hÐ3GÒGÐGØ”KÐ+Ø�KŠK˜Ÿš™
œ
Ñ#Ô#Ð#ð ” ¤Ð/°H¸hÐ3GÒGÐGØ”KÐ+ð Œ^˜Tœ^Ð,°¸8Ð0DÒDÐDØ”Ð#Ø�KŠK˜Ÿ	š	™œÑ$Ô$Ð$ØŒ~ Ò)Ð)Ø—’˜X¥r¤|µR´W½b¼jÐIÑJÔJÐJØŒ~ Ò)Ð)Ø'×GÒGÑIÔI‘��fØ—’Ý×*Ò*¨4°À%Ð*ÑHÔHÝ”W�bœjÐ)ñ*ñ+ô +ð +ð ˆr7   )r   r  )r*  r)  r"  )Ú	_capstyle)r   )Ú
_joinstyle)rs  )Ú_dashes)r+  )rÜ  Ú_hatch_colorÚ_hatch_linewidthc           
      óX  ‡— g }d}| j         D �]\  }}d}|D ]¤}t          | |¦  «        }t          ‰|¦  «        }		 |�|	€||	u}nt          ||	k    ¦  «        }n`# t          $ rS t	          j        |¦  «        }t	          j        |	¦  «        }	|j        |	j        k    pt	          j        ||	k    ¦  «        }Y nw xY w|r nŒ¥|j        dk    r|rd}|r[|j        dk    rd}ˆfd„|D ¦   «         }	| 	                     || g|	¢R Ž ¦  «         |D ]!}t          | |t          ‰|¦  «        ¦  «         Œ"�Œ|S )z}
        Copy properties of other into self and return PDF commands
        needed to transform *self* into *other*.
        FNr÷  Trô  c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r@   )r&  )rB   Úpr	  s     €r5   rÆ   z,GraphicsContextPdf.delta.<locals>.<listcomp>ü	  s#   ø€ Ð<Ð<Ð<°�' %¨Ñ+Ô+Ð<Ð<Ð<r7   )Úcommandsr&  rÕ   rÓ   rÐ   rH  r˜  Úanyrö   r  Úsetattr)
rë   r	  rý  Úfill_performedÚparamsÚcmdÚ	differentr  ÚoursÚtheirss
    `        r5   r,  zGraphicsContextPdf.deltaÜ	  sž  ø€ ð
 ˆØˆØœ=ð 	8ñ 	8‰KˆF�CØˆIØð ð �Ý˜t QÑ'Ô'�Ý  ¨Ñ*Ô*�ð	9Ø�| v ~Ø$(°Ð$6˜	˜	å$(¨°ªÑ$8Ô$8˜	øøÝ!ð 9ð 9ð 9Ýœ: dÑ+Ô+�DÝœZ¨Ñ/Ô/�FØ!%¤¨v¬|Ò!;ð "8Ý!#¤¨°ªÑ!7Ô!7ð �I�Ið9øøøð
 ð Ø�Eðð Œ|˜{Ò*Ð*¨~Ð*Ø �	àð 8Ø”< ?Ò2Ð2Ø%)�NØ<Ð<Ð<Ð<°VÐ<Ñ<Ô<�Ø—’˜C˜C Ð. vÐ.Ð.Ð.Ñ/Ô/Ð/Øð 8ð 8�AÝ˜D !¥W¨U°AÑ%6Ô%6Ñ7Ô7Ð7Ð7ùØˆs   ºAÁAB4Â3B4c                 ó¾   •— t          ¦   «                              |¦  «         t          |d| j        ¦  «        }t          |d| j        ¦  «        }|| _        || _        dS )z5
        Copy properties of other into self.
        r   r"  N)r¼  rž  r&  r   r"  )rë   r	  r-  rñ  rê  s       €r5   rž  z"GraphicsContextPdf.copy_properties
  s`   ø€ õ 	‰Œ×Ò Ñ&Ô&Ð&Ý˜E <°´ÑAÔAˆ	Ý" 5Ð*=Ø#'Ô#9ñ;ô ;Ðà#ˆŒØ!1ˆÔÐÐr7   c                 ót   — g }| j         �.|                     |                      ¦   «         ¦  «         | j         ­.|S )zB
        Make sure every pushed graphics state is popped.
        )rÖ  r  rT  )rë   rý  s     r5   rR  zGraphicsContextPdf.finalize
  s:   € ð ˆØŒkÐ%Ø�KŠK˜Ÿš™
œ
Ñ#Ô#Ð#ð ŒkÐ%àˆr7   )rö   r÷   rø   rì   rï   r4  r5  rB  rñ  r  ræ  rè  rê  rî  rò  r÷  rû  rô  rN  rT  r  r  r,  rž  rR  r  r  s   @r5   r  r  J	  sÅ  ø€ € € € € ðð ð ð ð ðð ð ð	>ð 	>ð 	>ðBð Bð Bð9ð 9ð 9ð  Q°aÐ8Ð8€IØ q°1Ð5Ð5€Jð6ð 6ð 6ð8ð 8ð 8ð(ð (ð (ð0ð 0ð 0ð$ð $ð $ð
1ð 
1ð 
1ð0ð 0ð 0ð3ð 3ð 3ðð ð ðð ð ðð ð ð, 
$ XÐ.Ø	9¸9ÐEØ	˜Ð&Ø	˜-Ð(Ø	˜-Ð(Ø	˜-Ð(Ø	�xÐ Ø	�GÐà	7¸ÐCð€Hð$ð $ð $ðL	2ð 	2ð 	2ð 	2ð 	2ðð ð ð ð ð ð r7   r  c                   ó†   — e Zd ZdZ ej        ddd¬¦  «        dd„¦   «         Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zdd„Zd„ Zg d¢fd„ZdS )ÚPdfPagesa=  
    A multi-page PDF file.

    Examples
    --------
    >>> import matplotlib.pyplot as plt
    >>> # Initialize:
    >>> with PdfPages('foo.pdf') as pdf:
    ...     # As many times as you like, create a figure fig and save it:
    ...     fig = plt.figure()
    ...     pdf.savefig(fig)
    ...     # When no figure is specified the current figure is saved
    ...     pdf.savefig()

    Notes
    -----
    In reality `PdfPages` is a thin wrapper around `PdfFile`, in order to avoid
    confusion when using `~.pyplot.savefig` and forgetting the format argument.
    rn  Ú
keep_emptyzThis parameter does nothing.)ÚaddendumNc                 ó0   — || _         || _        d| _        dS )a„  
        Create a new PdfPages object.

        Parameters
        ----------
        filename : str or path-like or file-like
            Plots using `PdfPages.savefig` will be written to a file at this location.
            The file is opened when a figure is saved for the first time (overwriting
            any older file with the same name).

        metadata : dict, optional
            Information dictionary object (see PDF reference section 10.2.1
            'Document Information Dictionary'), e.g.:
            ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

            The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
            'Creator', 'Producer', 'CreationDate', 'ModDate', and
            'Trapped'. Values have been predefined for 'Creator', 'Producer'
            and 'CreationDate'. They can be removed by setting them to `None`.
        N)Ú	_filenameÚ	_metadataÚ_file)rë   rç  r  rk   s       r5   rì   zPdfPages.__init__,
  s   € ð. "ˆŒØ!ˆŒØˆŒ
ˆ
ˆ
r7   c                 ó   — | S r?   r@   rî   s    r5   Ú	__enter__zPdfPages.__enter__G
  s   € Øˆr7   c                 ó.   — |                       ¦   «          d S r?   )rT  )rë   Úexc_typeÚexc_valÚexc_tbs       r5   Ú__exit__zPdfPages.__exit__J
  s   € Ø�
Š
‰Œˆˆˆr7   c                 ó^   — | j         € t          | j        | j        ¬¦  «        | _         | j         S )N©rk   )r"  rš  r   r!  rî   s    r5   Ú_ensure_filezPdfPages._ensure_fileM
  s*   € ØŒ:ÐÝ  ¤¸$¼.ÐIÑIÔIˆDŒJØŒzÐr7   c                 óŠ   — | j         �;| j                              ¦   «          | j                              ¦   «          d| _         dS dS )z_
        Finalize this object, making the underlying file a complete
        PDF file.
        N)r"  rR  rT  rî   s    r5   rT  zPdfPages.closeR
  sG   € ð
 Œ:Ð!ØŒJ×ÒÑ!Ô!Ð!ØŒJ×ÒÑÔÐØˆDŒJˆJˆJð "Ð!r7   c                 ó4   — |                       ¦   «         j        S )z™
        Return a modifiable information dictionary object
        (see PDF reference section 10.2.1 'Document Information
        Dictionary').
        )r,  rÐ  rî   s    r5   ÚinfodictzPdfPages.infodict\
  s   € ð × Ò Ñ"Ô"Ô+Ð+r7   c                 óæ   — t          |t          ¦  «        sJ|€t          j        ¦   «         }nt          j        |¦  «        }|€t          d|› �¦  «        ‚|j        j        } |j        | fdddœ|¤Ž dS )a5  
        Save a `.Figure` to this file as a new page.

        Any other keyword arguments are passed to `~.Figure.savefig`.

        Parameters
        ----------
        figure : `.Figure` or int, default: the active figure
            The figure, or index of the figure, that is saved to the file.
        Nz
No figure r¥  )rý  rj   )	rG   r   r   Ú
get_activeÚget_fig_managerrÓ   ÚcanvasÚfigureÚsavefig)rë   r4  ÚkwargsÚmanagers       r5   r5  zPdfPages.savefigd
  s‡   € õ ˜&¥&Ñ)Ô)ð 	+Øˆ~Ýœ.Ñ*Ô*��åÔ-¨fÑ5Ô5�ØˆÝ Ð!6¨fÐ!6Ð!6Ñ7Ô7Ð7Ø”^Ô*ˆFàˆŒ�tÐC E°5ÐCÐC¸FÐCÐCÐCÐCÐCr7   c                 óN   — t          |                      ¦   «         j        ¦  «        S )z=Return the current number of pages in the multipage pdf file.)r*   r,  rÉ  rî   s    r5   Úget_pagecountzPdfPages.get_pagecountz
  s   € å�4×$Ò$Ñ&Ô&Ô/Ñ0Ô0Ð0r7   r  c                 óV   — |                       ¦   «                              ||¦  «         dS )z÷
        Add a new text note to the page to be saved next. The optional
        positionRect specifies the position of the new note on the
        page. It is outside the page per default to make sure it is
        invisible on printouts.
        N)r,  r!  )rë   r  r  s      r5   Úattach_notezPdfPages.attach_note~
  s,   € ð 	×ÒÑÔ×'Ò'¨¨lÑ;Ô;Ð;Ð;Ð;r7   r}  r?   )rö   r÷   rø   rù   r	   r  rì   r$  r)  r,  rT  r/  r5  r9  r;  r@   r7   r5   r  r  
  só   € € € € € ðð ð( €TÔ˜6 <Ø$BðDñ Dô Dðð ð ñDô Dðð2ð ð ðð ð ðð ð ð
ð ð ð,ð ,ð ,ðDð Dð Dð Dð,1ð 1ð 1ð .@Ð-?Ð-?ð <ð <ð <ð <ð <ð <r7   r  c                   ó>   ‡ — e Zd ZdZddiZd„ Zdddœd„Zˆ fd„Zˆ xZS )	ÚFigureCanvasPdfr  r¥  zPortable Document Formatc                 ó   — dS )Nr¥  r@   rî   s    r5   Úget_default_filetypez$FigureCanvasPdf.get_default_filetypeŽ
  s   € Øˆur7   N)Úbbox_inches_restorerk   c                ó  — | j         j        }d| j         _        | j                              ¦   «         \  }}t          |t          ¦  «        r|                     ¦   «         }nt          ||¬¦  «        }	 |                     ||¦  «         t          | j         |||t          ||||¦  «        |¬¦  «        }| j          
                    |¦  «         |                     ¦   «          t          |t          ¦  «        s|                     ¦   «          t          |t          ¦  «        r|                     ¦   «          d S |                     ¦   «          d S # t          |t          ¦  «        r|                     ¦   «          w |                     ¦   «          w xY w)Nr  r+  )r@  )r4  ÚdpiÚget_size_inchesrG   r  r,  rš  r  r   rg  ÚdrawrR  r  rT  )	rë   rç  r@  rk   rB  rƒ   r„   rõ   Úrenderers	            r5   Ú	print_pdfzFigureCanvasPdf.print_pdf‘
  sl  € ð ŒkŒoˆØˆŒŒØœ×3Ò3Ñ5Ô5‰ˆˆvÝ�h¥Ñ)Ô)ð 	8Ø×(Ò(Ñ*Ô*ˆDˆDå˜8¨hÐ7Ñ7Ô7ˆDð	Ø�LŠL˜ Ñ'Ô'Ð'Ý(Ø”˜U F¨CÝ˜D # v¨uÑ5Ô5Ø$7ð9ñ 9ô 9ˆHð ŒK×Ò˜XÑ&Ô&Ð&Ø×ÒÑÔÐÝ˜h­Ñ1Ô1ð  Ø—’‘”�å˜(¥HÑ-Ô-ð Ø—’Ñ Ô Ð Ð Ð à—
’
‘”���øõ ˜(¥HÑ-Ô-ð Ø—’Ñ Ô Ð Ð à—
’
‘”��øøøs   Á1BE	 Å	A F	c                 óv   •— | j                              ¦   «          t          ¦   «                              ¦   «         S r?   )r4  Údraw_without_renderingr¼  rD  )rë   rê  s    €r5   rD  zFigureCanvasPdf.draw«
  s)   ø€ ØŒ×*Ò*Ñ,Ô,Ð,Ý‰wŒw�|Š|‰~Œ~Ðr7   )	rö   r÷   rø   Ú	fixed_dpiÚ	filetypesr?  rF  rD  r  r  s   @r5   r=  r=  ˆ
  sy   ø€ € € € € ð €IØÐ2Ð3€Iðð ð ð '+°Tðð ð ð ð ð4ð ð ð ð ð ð ð ð r7   r=  c                   ó   — e Zd ZeZdS )Ú_BackendPdfN)rö   r÷   rø   r=  ÚFigureCanvasr@   r7   r5   rL  rL  ³
  s   € € € € € à"€L€L€Lr7   rL  )r%   r‹  )]rù   rÙ   r   r   Úenumr   Ú	functoolsr   Úior   rœ   Úloggingr~   r]   r$  r¶  r,  rv   rÿ  rl  ÚnumpyrÐ   ÚPILr   Ú
matplotlibrd   r	   r
   r   r   r   Úmatplotlib._pylab_helpersr   Úmatplotlib.backend_basesr   r   r   r   r   Ú!matplotlib.backends.backend_mixedr   Úmatplotlib.figurer   Úmatplotlib.font_managerr   r   r   re  Úmatplotlib._afmr   Úmatplotlib.ft2fontr   r   r   r   Úmatplotlib.transformsr   r   Úmatplotlib.pathr    Úmatplotlib.datesr!   r"   r¼  r$   Ú	getLoggerrö   rj  r6   rp   r|   r�   r¥   r·   rH   Ú	maketransrÞ   r¾   ræ   rS   r  r  r]  r˜  rš  ÚRendererPDFPSBaserg  r  r  r=  ÚFigureManagerPdfÚexportrL  r@   r7   r5   ú<module>rd     s`  ððð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ø $Ð $Ð $Ð $Ð $Ð $Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ Ð Ð Ð Ð Ð Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€wÔ˜Ñ"Ô"€ðdð ð ð ð,Tð Tð Tðnð ð ð0,ð ,ð ,ð ,ð"*ð *ð *ð *ð0ð ð ð ð4 �}Š}Ø
�u 5°¸UðDð Dñ Eô E€ðF#ð F#ð F#ðRð ð ð ð ñ ô ð ð. ð ð  ð  ð  ð  ñ  ô  ñ „ð ðBð ð ð ð ñ ô ð ðB#ð B#ð B#ð B#ð B#ˆñ B#ô B#ð B#ðJZ$ð Z$ð Z$ð Z$ð Z$ñ Z$ô Z$ð Z$ðzð ð ð0`Cð `Cð `Cð `Cð `Cñ `Cô `Cð `CðF'u-ð u-ð u-ð u-ð u-�/Ô3ñ u-ô u-ð u-ðpJð Jð Jð Jð JÐ,ñ Jô Jð JðZn<ð n<ð n<ð n<ð n<ñ n<ô n<ð n<ðb%ð %ð %ð %ð %Ð&ñ %ô %ð %ðP %Ð ð 
„ð#ð #ð #ð #ð #�(ñ #ô #ñ „ð#ð #ð #r7   