Ë
    ¨ehË  ã            
       ó:  — d 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 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ZddlZddlZddlZddlmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z# dd	l$m%Z%m&Z& dd
l'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6  e
jn                  e8«      Z9dZ:i dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7d8d9d:d;d<d=d>œ¥Z;d?d@œdA„Z<dB„ Z=dC„ Z>dD„ Z?dE„ Z@dF„ ZAdG„ ZBdH„ ZCdI„ ZDdJ„ ZE G dK„ dLe6jŒ                  «      ZG G dM„ dNe«      ZH G dO„ dPe!«      ZIdQ„ ZJdR„ ZKd]dS„ZLd]dT„ZM ejœ                  dU«      d^dV„«       ZOdW„ ZPdX„ ZQd_dY„ZRe"ZSg dZ¢ZTe jª                   G d[„ d\e «      «       ZVy)`zG
A PostScript backend, which can produce both PostScript .ps and .eps.
é    N)ÚEnum)ÚStringIO)ÚTemporaryDirectory)Ú_apiÚcbookÚ_pathÚ_text_helpers)ÚAFM)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚRendererBase)Úis_writable_file_likeÚfile_requires_unicode)Úget_font)Ú	LoadFlags)Ú	uni2type1)ÚPath)Ú
TexManager)ÚAffine2D)ÚMixedModeRendereré   )Ú_backend_pdf_psFÚletter)ç      !@é   Úlegal)r   é   Úledger)r   é   Úa0)ç®GázŽ@@gHáz®gG@Úa1)ç¤p=
×c7@r"   Úa2)ç
×£p=Š0@r$   Úa3)çáz®Ga'@r&   Úa4)ç
×£p=Š @r(   Úa5)çR¸…ëQ@r*   Úa6)ç…ëQ¸…@r,   Úa7)çHáz®G@r.   Úa8)çffffff @r0   Úa9)ç\�Âõ(\÷?r2   Úa10)gR¸…ëQð?r4   Úb0)çfffffFD@g)\�Âõ¨L@Úb1)ç)\�Âõ¨<@r7   Úb2)ç…ëQ¸E4@r9   )ç)\�Âõ¨,@r;   )ç¸…ëQ8$@r<   )ç¤p=
×£@r=   )ç)\�Âõ(@r>   )ç¤p=
×£@r?   )ç®Gáz@r@   )ç)\�Âõ(ü?rA   )g)\�Âõ(ô?rB   )Úb3Úb4Úb5Úb6Úb7Úb8Úb9Úb10ú )Úsepc                 ó2   — | j                  d„ |D «       «      S )Nc              3   ó`   K  — | ]&  }|d ›j                  d«      j                  d«      –— Œ( y­w)ú1.3fÚ0ú.N)Úrstrip)Ú.0Úargs     ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_ps.pyú	<genexpr>z_nums_to_str.<locals>.<genexpr>I   s*   è ø€ ÒJ¸c�s˜4�j×(Ñ(¨Ó-×4Ñ4°S×9ÑJùs   ‚,.)Újoin)rL   Úargss     rU   Ú_nums_to_strrY   H   s   € Ø�8‰8ÑJÀTÔJÓJÐJó    c                 ó
  — t        |«      rFt        |«      rt        | d¬«      nt        | d«      }|5  t        j                  ||«       ddd«       yt        j
                  | |t        j                  ¬«       y# 1 sw Y   yxY w)zˆ
    Move the contents of file at *src* to path-or-filelike *dst*.

    If *dst* is a path, the metadata of *src* are *not* copied.
    úlatin-1©ÚencodingÚrbN)Úcopy_function)r   r   ÚopenÚshutilÚcopyfileobjÚmoveÚcopyfile)ÚsrcÚdstÚfhs      rU   Ú_move_path_to_path_or_streamri   L   ss   € ô ˜SÔ!ä& sÔ+ô �3 Õ+ä˜˜T“?ð 	ð ñ 	(Ü×Ñ˜r 3Ô'÷	(ð 	(ô 	�‰�C˜¬F¯O©OÖ<÷	(ð 	(ús   ²A9Á9Bc                 ó0  ‡
— t        | d¬«      Š
|D �cg c]  }‰
j                  |«      ‘Œ }}dj                  ‰
j                  d‰
j                  z  dj                  t        t        ‰
j                  «      «      dj                  ˆ
fd„|D «       «      t        |«      dz   ¬«      }d}g }|D ]Î  }‰
j                  |t        j                  «      }‰
j                  «       \  }	}|j                  d‰
j                  |«      dj                  t        t        |j                   d	g|j                  ¢«      «      d
œz  t#        j$                  t'        |	dz  |«      ddddd	g d¢d«      j)                  d«      z   dz   «       ŒÐ |dj                  |«      z   |z   S c c}w )a‰  
    Subset *chars* from the font at *font_path* into a Type 3 font.

    Parameters
    ----------
    font_path : path-like
        Path to the font to be subsetted.
    chars : str
        The characters to include in the subsetted font.

    Returns
    -------
    str
        The string representation of a Type 3 font, which can be included
        verbatim into a PostScript file.
    r   )Úhinting_factoraM  %!PS-Adobe-3.0 Resource-Font
%%Creator: Converted from TrueType to Type 3 by Matplotlib.
10 dict begin
/FontName /{font_name} def
/PaintType 0 def
/FontMatrix [{inv_units_per_em} 0 0 {inv_units_per_em} 0 0] def
/FontBBox [{bbox}] def
/FontType 3 def
/Encoding [{encoding}] def
/CharStrings {num_glyphs} dict dup begin
/.notdef 0 def
rK   c              3   óF   •K  — | ]  }d ‰j                  |«      › �–— Œ y­w)ú/N)Úget_glyph_name)rS   Úglyph_idÚfonts     €rU   rV   z$_font_to_ps_type3.<locals>.<genexpr>   s,   øè ø€ ò 8Ø!)ð  ! ×!4Ñ!4°XÓ!>Ð ?Ô@ñ 8ùs   ƒ!)Ú	font_nameÚinv_units_per_emÚbboxr^   Ú
num_glyphszÿ
end readonly def

/BuildGlyph {
 exch begin
 CharStrings exch
 2 copy known not {pop /.notdef} if
 true 3 1 roll get exec
 end
} _d

/BuildChar {
 1 index /Encoding get exch get
 1 index /BuildGlyph get exec
} _d

FontName currentdict end definefont pop
z/%(name)s{%(bbox)s sc
r   )Únamers   é@   NF)ó   mó   lrZ   ó   crZ   TÚasciizce} _dú
)r   Úget_char_indexÚformatÚpostscript_nameÚunits_per_EMrW   ÚmapÚstrrs   ÚlenÚ
load_glyphr   ÚNO_SCALEÚget_pathÚappendrn   ÚhoriAdvancer   Úconvert_to_stringr   Údecode)Ú	font_pathÚcharsÚcÚ	glyph_idsÚpreambleÚ	postambleÚentriesro   ÚgÚvrp   s             @rU   Ú_font_to_ps_type3r“   \   s–  ø€ ô" �I¨aÔ0€DØ16Ö7¨A�×$Ñ$ QÕ'Ð7€IÐ7ð÷ �F�T×)Ñ)Ø × 1Ñ 1Ñ1Ø—‘œœS $§)¡)Ó,Ó-Ø—H‘Hó 8Ø-6ô8ó 8ä˜)“n qÑ(ð ó *ð ð$€Ið& €GØò 
ˆØ�O‰O˜H¤i×&8Ñ&8Ó9ˆØ�}‰}‹‰ˆˆ1Ø�‰Ø%Ø×+Ñ+¨HÓ5ØŸ™¤¤S¨1¯=©=¸!Ð*E¸a¿f¹fÐ*EÓ!FÓGñ)ñ ô ×%Ñ%ô �Q˜‘V˜Q“  t¨U°D¸!ò
 -¨dó4÷ 5;±F¸7³OñDð ñõ	
ð
ð( �d—i‘i Ó(Ñ(¨9Ñ4Ð4ùòy 8s   “Fc           
      ó–  — dj                  d„ |D «       «      }t        j                  d| |«       	 i }| j                  d«      rd|d<   t	        j
                  j                  | fi |¤Ž5 }t        j                  | |«      5 }t        j                  |«      j                  «       }t        j                  d| t        j                  | «      j                  t        |«      «       |j                  t!        |||«      «       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w# t"        $ r t        j%                  d	| «       ‚ w xY w)
a2  
    Subset *chars* from the font at *font_path* into a Type 42 font at *fh*.

    Parameters
    ----------
    font_path : path-like
        Path to the font to be subsetted.
    chars : str
        The characters to include in the subsetted font.
    fh : file-like
        Where to write the font.
    Ú c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úchr)rS   rŒ   s     rU   rV   z%_font_to_ps_type42.<locals>.<genexpr>º   s   è ø€ Ò/ Aœ˜QŸÑ/ùó   ‚zSUBSET %s characters: %sz.ttcr   Ú
fontNumberzSUBSET %s %d -> %dNzIThe PostScript backend does not currently support the selected font (%s).)rW   Ú_logÚdebugÚendswithÚ	fontToolsÚttLibÚTTFontr   Úget_glyphs_subsetÚfont_as_fileÚgetvalueÚosÚstatÚst_sizer‚   ÚwriteÚ_serialize_type42ÚRuntimeErrorÚwarning)rŠ   r‹   rh   Ú
subset_strÚkwrp   ÚsubsetÚfontdatas           rU   Ú_font_to_ps_type42r¯   ­   s,  € ð —‘Ñ/¨Ô/Ó/€JÜ‡J�JÐ)¨9°jÔAðØˆð ×Ñ˜fÔ%Ø ˆBˆ|ÑÜ�o‰o×$Ñ$ YÑ5°"Ñ5ð 	@¸Ü×/Ñ/°	¸:ÓFð	@ØJPÜ&×3Ñ3°FÓ;×DÑDÓFˆHÜ�J‰JØ$ i´·±¸Ó1C×1KÑ1KÜ�H“ôð �H‰HÔ& t¨V°XÓ>Ô?÷	@÷ 	@÷ 	@ñ 	@ú÷ 	@ð 	@ûô ò Ü�‰ØWØô	ð 	ð	úsB   ±8D' Á)DÂ A>DÃ>DÄD' ÄD	ÄDÄD$Ä D' Ä$D' Ä'!Ec                 ó  — t        | j                  d«      |«      \  }}| d   }| d   }t        |«      }t        |||«      }t	        j
                  d|d   › d|d   › d| d	   j                  d
›d|j                  d«      › d|j                  d«      › d|j                  d«      › d|j                  d«      › d|j                  › d|j                  rdnd› d|j                  › d|j                  › dt        t        | «      Ž › d|› d|› d�«      S )aw  
    Output a PostScript Type-42 format representation of font

    Parameters
    ----------
    font : fontTools.ttLib.ttFont.TTFont
        The original font object
    subset : fontTools.ttLib.ttFont.TTFont
        The subset font object
    fontdata : bytes
        The raw font data in TTF format

    Returns
    -------
    str
        The Type-42 formatted font
    ÚlocaÚpostru   z
        %%!PS-TrueTypeFont-r   rQ   r   ú-Úheadz.7fzi
        10 dict begin
        /FontType 42 def
        /FontMatrix [1 0 0 1 0 0] def
        /FontName /é   z; def
        /FontInfo 7 dict dup begin
        /FullName (é   z) def
        /FamilyName (z) def
        /Version (é   z) def
        /ItalicAngle z def
        /isFixedPitch ÚtrueÚfalsez  def
        /UnderlinePosition z! def
        /UnderlineThickness zX def
        end readonly def
        /Encoding StandardEncoding def
        /FontBBox [z=] def
        /PaintType 0 def
        /CIDMap 0 def
        z	
        z9
        FontName currentdict end definefont pop
        )Ú_version_and_breakpointsÚgetÚ_generate_charstringsÚ_generate_sfntsÚtextwrapÚdedentÚfontRevisionÚgetDebugNameÚitalicAngleÚisFixedPitchÚunderlinePositionÚunderlineThicknessrY   Ú_bounds)	rp   r­   r®   ÚversionÚbreakpointsr²   ru   r‹   Úsfntss	            rU   r¨   r¨   Ñ   s_  € ô$ 4°D·H±H¸VÓ4DÀhÓOÑ€Gˆ[Ø�‰<€DØ�‰<€DÜ! &Ó)€EÜ˜H f¨kÓ:€EÜ�?‰?ð  Ø# A™J˜< q¨°©¨°A°d¸6±l×6OÑ6OÐPSÐ5Tð Uð ×%Ñ% aÓ(Ð)ð *à×%Ñ% aÓ(Ð)ð *Ø×'Ñ'¨Ó*Ð+ð ,Ø×$Ñ$ QÓ'Ð(ð )Ø×&Ñ&Ð'ð (Ø!%×!2Ò!2‘v¸Ð@ð AØ ×2Ñ2Ð3ð 4Ø!×4Ñ4Ð5ð 6ô !¤'¨$£-Ð0Ð1ð 2	ð 
ˆð 	Ø	ˆð 	ð)ó ð rZ   c           	      óª  — t        j                  d|dd «      \  }}}||f}i }t        |«      D ]C  }t        j                  d|d|dz  z   d|dz   dz  z    «      \  }}	}
}	|
||j                  d«      <   ŒE | �#| j                  dd	 D �
ch c]
  }
|d
   |
z   ’Œ }}
n
t        «       }t        h |j                  «       £|£t        |«      ’«      }||fS c c}
w )a¨  
    Read the version number of the font and determine sfnts breakpoints.

    When a TrueType font file is written as a Type 42 font, it has to be
    broken into substrings of at most 65535 bytes. These substrings must
    begin at font table boundaries or glyph boundaries in the glyf table.
    This function determines all possible breakpoints and it is the caller's
    responsibility to do the splitting.

    Helper function for _font_to_ps_type42.

    Parameters
    ----------
    loca : fontTools.ttLib._l_o_c_a.table__l_o_c_a or None
        The loca table of the font if available
    fontdata : bytes
        The raw data of the font

    Returns
    -------
    version : tuple[int, int]
        A 2-tuple of the major version number and minor version number.
    breakpoints : list[int]
        The breakpoints is a sorted list of offsets into fontdata; if loca is not
        available, just the table boundaries.
    z>3hNrµ   z>4sIIIé   é   r   rz   éÿÿÿÿÚglyf)	ÚstructÚunpackÚranger‰   Ú	locationsÚsetÚsortedÚvaluesr‚   )r±   r®   Úv1Úv2Ú	numTablesrÇ   ÚtablesÚiÚtagÚ_ÚoffsetÚglyf_breakpointsrÈ   s                rU   rº   rº     sû   € ô6 Ÿ™ e¨X°b°q¨\Ó:Ñ€BˆˆIØ�2ˆh€Gà€FÜ�9Óò -ˆÜ"ŸM™M¨(°H¸RÀ!ÀBÁ$¹YÀrÈQÈqÉSÐRTÉHÁ}Ð4UÓVÑˆˆQ�˜Ø&,ˆˆs�z‰z˜'Ó"Ò#ð-ð ÐØBFÇ.Á.ÐQTÐRTÐBUÖV¸˜F 6™N¨VÓ3ÐVÐÑVä›5ÐÜÐM˜6Ÿ=™=›?ÐMÐ-=ÐM¼sÀ8»}ÐMÓN€Kà�KÐÐùò Ws   ÂCc                 óè   — | j                  d«      }t        j                  j                  j	                  |«      }|j                  «       D ]  }||   j                  |«       Œ |j                  xs dS )as  
    Compute the font bounding box, as if all glyphs were written
    at the same start position.

    Helper function for _font_to_ps_type42.

    Parameters
    ----------
    font : fontTools.ttLib.ttFont.TTFont
        The font

    Returns
    -------
    tuple
        (xMin, yMin, xMax, yMax) of the combined bounding box
        of all the glyphs in the font
    F)r   r   r   r   )ÚgetGlyphSetrž   ÚpensÚ	boundsPenÚ	BoundsPenÚkeysÚdrawÚbounds)rp   ÚgsÚpenru   s       rU   rÆ   rÆ   ,  sb   € ð$ 
×	Ñ	˜%Ó	 €BÜ
�.‰.×
"Ñ
"×
,Ñ
,¨RÓ
0€CØ—‘“	ò ˆØ
ˆ4‰�‰�cÕðà�:‰:Ò%˜Ð%rZ   c                 óŒ   — | j                  «       }dt        |«      › d�}t        |«      D ]  \  }}|d|› d|› d�z  }Œ |dz  }|S )a  
    Transform font glyphs into CharStrings

    Helper function for _font_to_ps_type42.

    Parameters
    ----------
    font : fontTools.ttLib.ttFont.TTFont
        The font

    Returns
    -------
    str
        A definition of the CharStrings dictionary in PostScript
    z/CharStrings z dict dup begin
rm   rK   z def
zend readonly def)ÚgetGlyphOrderr‚   Ú	enumerate)rp   ÚgoÚsrÚ   ru   s        rU   r¼   r¼   E  se   € ð  
×	Ñ	Ó	€BØ
œ˜B›�yÐ 1Ð2€AÜ˜R“=ò "‰ˆˆ4Ø	ˆq���a˜�s˜&Ð!Ñ!‰ð"àÐ	Ñ€AØ€HrZ   c           	      ó:  ‡— dŠd}|t        | «      k  rVt        j                  ||dz   «      }||dz
     }||k  r|d   }‰d| || j                  «       › d�z  Š|}|t        | «      k  rŒV‰dz  Šd	j	                  ˆfd
„t        dt        ‰«      d«      D «       «      S )aß  
    Transform font data into PostScript sfnts format.

    Helper function for _font_to_ps_type42.

    Parameters
    ----------
    fontdata : bytes
        The raw data of the font
    font : fontTools.ttLib.ttFont.TTFont
        The fontTools font object
    breakpoints : list
        Sorted offsets of possible breakpoints

    Returns
    -------
    str
        The sfnts array for the font definition, consisting
        of hex-encoded strings in PostScript format
    z/sfnts[r   iþÿ  r   rÍ   ú<z00>z]defr{   c              3   ó.   •K  — | ]  }‰||d z    –— Œ y­w)éd   N© )rS   rÚ   rí   s     €rU   rV   z"_generate_sfnts.<locals>.<genexpr>}  s   øè ø€ Ò? A�Q�q˜˜3™”ZÑ?ùs   ƒrñ   )r‚   ÚbisectÚbisect_leftÚhexrW   rÑ   )r®   rp   rÈ   ÚposrÚ   Únewposrí   s         @rU   r½   r½   ]  s³   ø€ ð* 	€AØ
€CØ
”�H“Ò
Ü×Ñ˜{¨C°%©KÓ8ˆØ˜Q˜q™SÑ!ˆØ�SŠ=à  ‘_ˆFØ	ˆq�˜#˜fÐ%×)Ñ)Ó+Ð,¨CÐ0Ñ0ˆØˆð ”�H“Ó
ð ˆ�K€AØ�9‰9Ó?¬¨q´#°a³&¸#Ó)>Ô?Ó?Ð?rZ   c                 óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )z}
    Wrap `RendererPS` method *meth* to emit a PS comment with the method name,
    if the global flag `debugPS` is set.
    c                 óz   •— t         r)| j                  j                  d‰j                  › d�«        ‰| g|¢­i |¤ŽS )Nz% r{   )ÚdebugPSÚ	_pswriterr§   Ú__name__)ÚselfrX   ÚkwargsÚmeths      €rU   Úwrapperz!_log_if_debug_on.<locals>.wrapper…  s:   ø€ åØ�N‰N× Ñ  2 d§m¡m _°BÐ!7Ô8Ù�DÐ*˜4Ò* 6Ñ*Ð*rZ   )Ú	functoolsÚwraps)rÿ   r   s   ` rU   Ú_log_if_debug_onr  €  s'   ø€ ô
 ‡_�_�TÓó+ó ð+ð
 €NrZ   c                   óZ  ‡ — e Zd ZdZ ej
                  d«      ZdZdˆ fd„	Zd„ Z	d d„Z
d d„Zed	„ «       Zd d
„Zed„ «       Zd d„Zd d„Zd d„Zd„ Zd„ Zd!d„Zd„ Zed"d„«       Zed"d„«       Ze	 d"d„«       Zed„ «       Zeddœd„«       Zed!d„«       Zed„ «       Zed„ «       Zdddœd„Z ˆ xZ!S )#Ú
RendererPSz€
    The renderer handles all the drawing primitives using a graphics
    context instance that controls the colors/styles.
    z	fonts/afmú	ps.useafmc                 ó¦  •— t         ‰| �  ||«       || _        t        j                  d   rd| _        g | _        || _        d | _        d | _	        d | _
        d | _        d | _        d | _        d | _        i | _        |dz  | _        i | _        d| _        t'        j(                  «       | _        t-        j.                  t0        j2                  «      | _        y )Nútext.usetexr   éH   )ÚsuperÚ__init__rû   ÚmplÚrcParamsÚtextcntÚpsfragÚimagedpiÚcolorÚ	linewidthÚlinejoinÚlinecapÚlinedashÚfontnameÚfontsizeÚ_hatchesÚimage_magnificationÚ_clip_pathsÚ_path_collection_idr   ÚCharacterTrackerÚ_character_trackerr  Úcacher›   rª   Ú_logwarn_once)rý   ÚwidthÚheightÚpswriterr  Ú	__class__s        €rU   r  zRendererPS.__init__—  s¸   ø€ ô 	‰Ñ˜ Ô'Ø!ˆŒÜ�<‰<˜Ò&ØˆDŒLØˆDŒKØ ˆŒð ˆŒ
ØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØ#+¨b¡=ˆÔ ØˆÔØ#$ˆÔ ä"1×"BÑ"BÓ"DˆÔÜ&Ÿ_™_¬T¯\©\Ó:ˆÕrZ   c                 ól   — |€yt        |«      dk(  r#|d   dk(  ry|d   dk7  r| j                  d«       yy)NTr¶   é   r   r   zlThe PostScript backend does not support transparency; partially transparent artists will be rendered opaque.F)r‚   r  )rý   Úrgb_or_rgbas     rU   Ú_is_transparentzRendererPS._is_transparent²  sP   € ØÐØÜ�Ó Ò"Ø˜1‰~ Ò"ØØ˜1‰~ Ò"Ø×"Ñ"ðMôNð àrZ   Tc                 óÎ   — |||f| j                   k7  rS| j                  j                  ||cxk(  r|k(  rn nt        |«      › d�nt        |||«      › d�«       |r|||f| _         y y y )Nz	 setgray
z setrgbcolor
)r  rû   r§   rY   )rý   Úrr‘   ÚbÚstores        rU   Ú	set_colorzRendererPS.set_colorÀ  ss   € Øˆq�!ˆ9˜Ÿ
™
Ò"Ø�N‰N× Ñ Ø$%¨¤K¨a¥Kô %1°£OÐ#4°JÑ!?ä$0°°A°qÓ$9Ð#:¸.Ð!IôKñ Ø  A˜Y�•
ð ð	 #rZ   c                 óœ   — t        |«      }|| j                  k7  r2| j                  j                  t	        |«      › d�«       |r|| _        y y y )Nú setlinewidth
)Úfloatr  rû   r§   rY   )rý   r  r+  s      rU   Úset_linewidthzRendererPS.set_linewidthÈ  sK   € Ü˜)Ó$ˆ	Ø˜Ÿ™Ò&Ø�N‰N× Ñ ¤L°Ó$;Ð#<¸OÐ!LÔMÙØ!*�•ð ð 'rZ   c                 ó&   — dddddddœ|    } | d›d�S )Nr   r   é   )ÚmiterÚroundÚbevelr   r   r2  Údz setlinejoin
rò   )r  s    rU   Ú_linejoin_cmdzRendererPS._linejoin_cmdÏ  s-   € ð ¨°Q¸1ÀÀqÑIØñˆà˜1�˜^Ð,Ð,rZ   c                 óŒ   — || j                   k7  r5| j                  j                  | j                  |«      «       |r|| _         y y y r—   )r  rû   r§   r7  )rý   r  r+  s      rU   Úset_linejoinzRendererPS.set_linejoinÖ  s?   € Ø�t—}‘}Ò$Ø�N‰N× Ñ  ×!3Ñ!3°HÓ!=Ô>ÙØ (�•ð ð %rZ   c                 ó&   — dddddddœ|    } | d›d�S )Nr   r   r2  )Úbuttr4  Ú
projectingr   r   r2  r6  z setlinecap
rò   )r  s    rU   Ú_linecap_cmdzRendererPS._linecap_cmdÜ  s-   € ð  q¸¸aÀAÈ!ÑLØñˆà˜!�˜MÐ*Ð*rZ   c                 óŒ   — || j                   k7  r5| j                  j                  | j                  |«      «       |r|| _         y y y r—   )r  rû   r§   r=  )rý   r  r+  s      rU   Úset_linecapzRendererPS.set_linecapã  s?   € Ø�d—l‘lÒ"Ø�N‰N× Ñ  ×!2Ñ!2°7Ó!;Ô<ÙØ&�•ð ð #rZ   c                 ó
  — | j                   �+| j                   \  }}t        j                  ||«      r||k(  ry | j                  j	                  |�#t        |«      rdt        |Ž › dt        |«      › d�nd«       |r
||f| _         y y )Nú[z] z	 setdash
z[] 0 setdash
)r  ÚnpÚarray_equalrû   r§   r‚   rY   )rý   rÝ   Úseqr+  ÚoldoÚoldseqs         rU   Úset_linedashzRendererPS.set_linedashé  s…   € Ø�=‰=Ð$ØŸ=™=‰LˆD�&Ü�~‰~˜c 6Ô*¨t°vª~Øà�‰×ÑØ # ´C¸´Hð  !¤¨sÐ!3Ð 4°B´|ÀFÓ7KÐ6LÈJÑWà-ô	/ñ Ø# S˜MˆD�Mð rZ   c                 ó¨   — ||f| j                   | j                  fk7  r5| j                  j                  d|› d|d›d�«       |r|| _         || _        y y y )Nrm   rK   rO   ú selectfont
)r  r  rû   r§   )rý   r  r  r+  s       rU   Úset_fontzRendererPS.set_fontõ  s[   € Ø�hÐ D§M¡M°4·=±=Ð#AÒAØ�N‰N× Ñ  1 X J¨a°¸¨¸mÐ!LÔMÙØ (�”Ø (�•ð ð BrZ   c                 óœ  — d}|| j                   v r| j                   |   S dt        | j                   «      z  }| j                  dz  }| j                  j	                  d|d›d|d›d|d›d|d›d|d	›d
| j                  t        j                  |«      t        «       j                  |«      d¬«      › d|d	›d|› d�«       || j                   |<   |S )Nr	  zH%dzH  << /PatternType 1
     /PaintType 2
     /TilingType 2
     /BBox[0 0 r6  rK   z]
     /XStep z
     /YStep z(

     /PaintProc {
        pop
        r‘   r.  F©Úsimplifyz]
        gsave
        fill
        grestore
        stroke
     } bind
   >>
   matrix
   0 z translate
   makepattern
   /z
 exch def
)
r  r‚   r!  rû   r§   Ú_convert_pathr   Úhatchr   Úscale)rý   rO  r  Úsidelenru   Ú
pageheights         rU   Úcreate_hatchzRendererPS.create_hatchü  sü   € ØˆØ�D—M‘MÑ!Ø—=‘= Ñ'Ð'Ø”s˜4Ÿ=™=Ó)Ñ)ˆØ—[‘[ 2Ñ%ˆ
Ø�‰×Ñð "ð ˜ˆ{˜!˜G A˜;ð 'Ø�QˆKð Ø�QˆKð 	ð 
�1ˆð Ø×Ñ”D—J‘J˜uÓ%¤x£z×'7Ñ'7¸Ó'@È5ÐÓQÐ Rð Sð �€^ð à	€Fð ð+ô 	ð.  $ˆ�‰�eÑØˆrZ   c                 ó   — | j                   S )z­
        Get the factor by which to magnify images passed to draw_image.
        Allows a backend to have images at a different resolution to other
        artists.
        )r  ©rý   s    rU   Úget_image_magnificationz"RendererPS.get_image_magnification  s   € ð ×'Ñ'Ð'rZ   Nc           
      ó¦   — |r!dd| j                   dz  | j                  dz  f}nd }t        j                  ||||d dg d¢d«      j	                  d«      S )Ng        g      R@rµ   )rw   rx   rZ   ry   s   clTrz   )r   r!  r   rˆ   r‰   )rý   ÚpathÚ	transformÚcliprM  s        rU   rN  zRendererPS._convert_path$  sZ   € ÙØ˜˜dŸj™j¨4Ñ/°·±¸tÑ1CÐD‰DàˆDÜ×&Ñ&Ø�)˜T 8¨TØÒ-¨tó5ç5;±V¸G³_ð	ErZ   c           
      ó  — g }|j                  «       }|�3|j                  t        g |j                  ¢|j                  ¢­Ž › d�«       |j                  «       \  }}|�™|t        |«      f}| j                  j                  |«      }|€[dt        | j                  «      z  }| j                  j                  d|› d| j                  ||d¬«      › d�«       || j                  |<   |j                  |› d�«       d	j                  |«      S )
Nú
 rectclip
zc%drm   z {
FrL  z
clip
newpath
} bind def
r{   r•   )Úget_clip_rectangler†   rY   Úp0ÚsizeÚget_clip_pathÚidr  r»   r‚   rû   r§   rN  rW   )rý   ÚgcrZ  ÚrectrX  ÚtrfÚkeyÚcustom_clip_cmds           rU   Ú_get_clip_cmdzRendererPS._get_clip_cmd-  s  € ØˆØ×$Ñ$Ó&ˆØÐØ�K‰Kœ<Ð=¨¯©Ð=°4·9±9Ò=Ð>¸kÐJÔKØ×$Ñ$Ó&‰	ˆˆcØÐØœ˜C›�/ˆCØ"×.Ñ.×2Ñ2°3Ó7ˆOØÐ&Ø"'¬#¨d×.>Ñ.>Ó*?Ñ"?�Ø—‘×$Ñ$ð *ØÐð Ø×Ñ�D˜#¨ÐÓ.Ð /ð 0ð&ô ð )8�× Ñ  Ñ%Ø�K‰K˜?Ð+¨2Ð.Ô/Ø�w‰w�t‹}ÐrZ   c                 ó  — |j                   d d \  }}d}|d d d…d d …d d…f   }	|	j                  «       j                  dd«      }
|€!d}|| j                  z  }|| j                  z  }n?dj	                  t        t        |j                  «       j                  «       «      «      }d	}d	}| j                  j                  d
| j                  |«      › d|d›d|d›d|› d|d›d|d›d|d›d|d›d|d›d|d›d|d›d|d›d|› d|
› d�«       y )Nr2  zfalse 3 colorimagerÍ   r%  r{   éÀÿÿÿz1 0 0 1 0 0rK   g      ð?úgsave
r‘   z translate
[z	] concat
z scale
/DataString r6  z string def
z 8 [ z 0 0 -z 0 z5 ]
{
currentfile DataString readhexstring pop
} bind ú

grestore
)ÚshapeÚtobytesrõ   r  rW   r€   r�   ÚfrozenÚ	to_valuesrû   r§   rg  )rý   rb  ÚxÚyÚimrY  ÚhÚwÚimagecmdÚdataÚhexdataÚmatrixÚxscaleÚyscales                 rU   Ú
draw_imagezRendererPS.draw_imageC  sY  € ð �x‰x˜˜ˆ|‰ˆˆ1Ø'ˆØ‘$�B�$š˜2˜A˜2�+‰ˆØ—,‘,“.×$Ñ$ T¨3Ó/ˆàÐØ"ˆFØ˜×1Ñ1Ñ1ˆFØ˜×1Ñ1Ñ1‰Fà—X‘Xœc¤# y×'7Ñ'7Ó'9×'CÑ'CÓ'EÓFÓGˆFØˆFØˆFà�‰×Ñð "à×Ñ�BÓÐ ð Ø€1€€Q€qˆ€eð Ø€ð 
Øˆ€
ˆ!ˆF�1ˆ:ð ØˆqˆEð Ø€1€€Q€qˆ€eˆ5��1��V˜A˜a˜5  A a 5ð )	ð 
ˆ
ð Ø€	ð 
ðõ 	rZ   c                 ó¤   — |d u xr |j                  «       d u }|j                  xr |}| j                  ||||¬«      }| j                  |||«       y )N©rZ  rM  )Úget_hatch_pathÚshould_simplifyrN  Ú_draw_ps)rý   rb  rX  rY  ÚrgbFacerZ  rM  Úpss           rU   Ú	draw_pathzRendererPS.draw_pathd  sY   € ð ˜$ˆÒ> 2×#4Ñ#4Ó#6¸$Ð#>ˆØ×'Ñ'Ò0¨DˆØ×Ñ  i°dÀXÐÓNˆØ�‰�b˜"˜gÕ&rZ   c                 ó€  — | j                  |«      rd n5|d   |d   cxk(  r|d   k(  rn nt        |d   «      › d�nt        |d d Ž › d�}g d¢}|j                  «       }	|j                  «       st	        |j                  «       «      dk(  r|j                  «       n|j                  «       d   }
|	dkD  xr |
dkD  }|rp|j                  d|	z  «       |j                  | j                  |j                  «       «      «       |j                  | j                  |j                  «       «      «       |j                  | j                  ||d	¬
«      «       |r;|r|j                  d«       |r|j                  |dg«       |r|j                  d«       |r|j                  d«       |j                  ddg«       |j                  |dd| j                  dz  | j                   dz  fd	¬«      D ]2  \  }}t	        |«      sŒ|dd  \  }}|j                  |d›d|d›d�«       Œ4 dj#                  |«      }| j%                  |||d	d	¬«       y )Nr   r   r2  z setgrayr%  z setrgbcolor)z/o {ÚgsaveÚnewpathÚ	translatez%.1f setlinewidthFrL  r…  ÚfillÚgrestoreÚstrokez
} bind defr	  r}  éþÿÿÿr‘   rK   z or{   ©rˆ  rŠ  )r'  rY   Úget_linewidthÚget_forced_alphar‚   Úget_rgbÚ	get_alphar†   r7  Úget_joinstyler=  Úget_capstylerN  ÚextendÚiter_segmentsr   r!  rW   r€  )rý   rb  Úmarker_pathÚmarker_transrX  Útransr�  Úps_colorÚps_cmdÚlwÚalpharŠ  ÚverticesÚcoderp  rq  r‚  s                    rU   Údraw_markerszRendererPS.draw_markersl  s6  € ð ×#Ñ# GÔ,ñ ð �q‰z˜W Q™ZÔ5¨7°1©:Õ5ô ! ¨¡Ó,Ð-¨XÑ6ä  '¨"¨1 +Ð.Ð/¨|Ð<ð 	ò ;ˆà×ÑÓˆà×'Ñ'Ô)¬S°·±³Ó->À!Ò-Cð —‘”à—j‘j“l 1‘oð 	ð �a‘Ò%˜E A™IˆÙØ�M‰MÐ-°Ñ2Ô3Ø�M‰M˜$×,Ñ,¨R×-=Ñ-=Ó-?Ó@ÔAØ�M‰M˜$×+Ñ+¨B¯O©OÓ,=Ó>Ô?à�‰�d×(Ñ(¨°lØ27ð )ó 9ô 	:ñ ÙØ—‘˜gÔ&ÙØ—‘˜x¨Ð0Ô1ÙØ—‘˜jÔ)áØ�M‰M˜(Ô#Ø�‰�z <Ð0Ô1à"×0Ñ0ØØ˜˜DŸJ™J r™M¨4¯;©;°r©>Ð:Øð 1ó  ò 	0‰NˆH�dô �8�}Ø  �}‘��1Ø—‘  1  Q q¨ e¨2Ð.Õ/ð	0ð �Y‰Y�vÓˆØ�‰�b˜"˜g¨E¸%ˆÕ@rZ   c                 ó¤  — t        |«      dkD  rt        |d   j                  «      nd}| j                  |||||«      }|d|z  z   dz   |dz   |z  k  }|s"t        j                  | |||||||||	|
|||«      S g }t        | j                  |||«      «      D ]`  \  }\  }}d| j                  |fz  }| j                  ||d¬«      }| j                  j                  d|› d|› d	�«       |j                  |«       Œb | j                  |||||||	|
|||«      D ]'  \  }}}}}|d
›d|d
›d|› �}| j                  |||«       Œ) | xj                  dz  c_        y )Nr   r%  r2  zp%d_%dFrL  rm   z {
newpath
translate
z
} bind def
r‘   rK   r   )r‚   rœ  Ú_iter_collection_uses_per_pathr   Údraw_path_collectionrë   Ú_iter_collection_raw_pathsr  rN  rû   r§   r†   Ú_iter_collectionr€  )rý   rb  Úmaster_transformÚpathsÚall_transformsÚoffsetsÚoffset_transÚ
facecolorsÚ
edgecolorsÚ
linewidthsÚ
linestylesÚantialiasedsÚurlsÚoffset_positionÚlen_pathÚuses_per_pathÚshould_do_optimizationÚ
path_codesrÚ   rX  rY  ru   Ú
path_bytesÚxoÚyoÚpath_idÚgc0r�  r‚  s                                rU   r¡  zRendererPS.draw_path_collection¡  sÄ  € ô .1°«Z¸!ª^”3�u˜Q‘x×(Ñ(Ô)ÀˆØ×;Ñ;Ø�> 7¨J¸
óDˆð �q˜=Ñ(Ñ(¨1Ñ,°¸1±ÀÑ/MÑMð 	á%Ü×4Ñ4Ø�bÐ*¨E°>Ø˜ z°:Ø˜J¨°dØó	!ð !ð ˆ
Ü$-¨d×.MÑ.MØ  %¨ó/9ó %:ò 	$Ñ ˆAÑ ��ià˜t×7Ñ7¸Ð;Ñ;ˆDØ×+Ñ+¨D°)ÀeÐ+ÓLˆJØ�N‰N× Ñ ð &Ø€ð ð €ð ð	"ô ð ×Ñ˜dÕ#ð	$ð .2×-BÑ-BØ�J ¨Ø˜J¨
°JØ˜d Oó.5ò 	,Ñ)ˆB��G˜S 'ð �q�6˜˜2˜a˜&  ' Ð+ˆBØ�M‰M˜"˜c 7Õ+ð	,ð 	× Ò  AÑ%Ö rZ   )Úmtextc          
      ó(  — | j                  |j                  «       «      ry t        | d«      s*| j                  d«       | j	                  ||||||d|«       y | j                  ||d¬«      \  }}	}
|j                  «       }d| j                  z  }t        |j                  «       d d dd	iŽ}d
ddœj                  t        j                  d   d   d«      }||z  }d|›d|›�}t        j                  |dz   «      }t        ||
t        j                  |«      z  z
  ||
t        j                  |«      z  z
  «      }| j                   j#                  d||||dz  |fz  «       | j$                  j'                  d|› d|› d�«       | xj                  dz  c_        y )Nr  zÆThe PS backend determines usetex status solely based on rcParams['text.usetex'] and does not support having usetex=True only for some elements; this element will thus be rendered as if usetex=False.FÚTeX)Úismathz
psmarker%dr%  rL   ú,z{\sffamily %s}z{\ttfamily %s})z
sans-serifÚ	monospacezfont.familyr   z{\rmfamily %s}z\color[rgb]{z} éZ   z/\psfrag{%s}[bl][bl][1][%f]{\fontsize{%f}{%f}%s}g      ô?rj  z	 moveto
(z)
show
grestore
r   )r'  r�  Úhasattrr  Ú	draw_textÚget_text_width_height_descentÚget_size_in_pointsr  rY   r»   r  r  rB  ÚradiansÚcosÚsinr  r†   rû   r§   )rý   rb  rp  rq  rí   ÚpropÚangler¹  rt  rs  Úblr  Úthetextr  ÚfontcmdÚtexÚranglerö   s                     rU   Údraw_texzRendererPS.draw_texÎ  s¥  € ð ×Ñ §
¡
£Ô-Øä�t˜XÔ&Ø×Ñð2ô3ð
 �N‰N˜2˜q ! Q¨¨e°U¸EÔBØà×5Ñ5°a¸ÀeÐ5ÓL‰ˆˆ1ˆbØ×*Ñ*Ó,ˆØ §¡Ñ-ˆÜ˜bŸj™j›l¨2¨AÐ.Ð8°CÑ8ˆØ!2Ø 1ñ3ß36±3Ü—|‘| MÑ2°1Ñ5Ð7Hó4Jð 	ð �a‰K‰Ú',©aÐ0ˆô —‘˜E B™JÓ'ˆÜ˜1˜r¤B§F¡F¨6£NÑ2Ñ2°A¸¼R¿V¹VÀF»^Ñ8KÑ4KÓLˆØ�‰×ÑØ>Ø˜ ¨(°4©-¸ðB>ñ >ô	?ð 	�‰×Ñð "à€ð Ø	€ð ðô 	ð 	�Š˜ÑŽrZ   c	                 ó   — | j                  |j                  «       «      ry |dk(  r| j                  ||||||«      S |r| j                  ||||||«      S g }	t        j
                  d   rÑ| j                  |«      }
|
j                  j                  dd«      j                  d«      }d|j                  «       z  }d}d }|D ]x  }t        j                  t        |«      dt        |«      d›�«      }	 |
j                  |«      }|
j#                  ||«      }|}|||z  z  }|	j%                  |||f«       |||z  z  }Œz nÀ| j'                  |«      }
| j(                  j+                  |
|«       t-        j.                  ||
«      D ]z  }|j0                  j                  j                  dd«      j                  d«      }|j0                  j3                  |j4                  «      }|	j%                  ||j6                  |f«       Œ|  | j8                  |j                  «       Ž  t;        j<                  |	d„ «      D ]{  \  }}| j?                  ||j                  «       d«       djA                  d„ |D «       «      }| jB                  jE                  d| jG                  |«      › d|d›d|d›d|d›d|› d�«       Œ} y # t        $ r d	}|
j!                  d
«      }Y �ŒÍw xY w)Nr»  r  rz   Úreplacegü©ñÒMbP?r   ÚuniÚ04XÚquestionú?c                 ó   — | d   S )Nr   rò   )Úentrys    rU   ú<lambda>z&RendererPS.draw_text.<locals>.<lambda>&  s
   € ¨e°A©h€ rZ   Fr{   c              3   ó8   K  — | ]  \  }}}|d ›d|d›d�–— Œ y­w)r‘   z 0 m /rí   z
 glyphshowNrò   )rS   rÜ   rp  ru   s       rU   rV   z'RendererPS.draw_text.<locals>.<genexpr>(  s/   è ø€ ò  9Ù$. A q¨$ð $% Q % v¨d°1¨X°ZÔ @ñ  9ùs   ‚rj  r‘   rK   ú translate
ú rotate
rk  )$r'  r�  rÎ  Údraw_mathtextr  r  Ú_get_font_afmr~   Úencoder‰   rÃ  r   r»   ÚordÚget_width_from_char_nameÚKeyErrorÚget_width_charÚget_kern_dist_from_namer†   Ú_get_font_ttfr  Útrackr	   ÚlayoutÚ	ft_objectrn   Ú	glyph_idxrp  r,  Ú	itertoolsÚgroupbyrJ  rW   rû   r§   rg  )rý   rb  rp  rq  rí   rÇ  rÈ  r¼  r¹  Ústreamrp   Úps_namerP  ÚthisxÚ	last_namerŒ   ru   r   ÚkernÚitemÚ
glyph_nameÚgrouprÊ  s                          rU   rÁ  zRendererPS.draw_textø  sÏ  € ð ×Ñ §
¡
£Ô-Øà�UŠ?Ø—=‘=  Q¨¨1¨d°EÓ:Ð:áØ×%Ñ% b¨!¨Q°°4¸Ó?Ð?àˆä�<‰<˜Ò$Ø×%Ñ% dÓ+ˆDØ×+Ñ+×2Ñ2°7¸IÓFß™ ›ð à˜D×3Ñ3Ó5Ñ5ˆEØˆEØˆIØò '�Ü —}‘}¤S¨£V¨s´3°q³6¸#°,Ð-?Ó@�ð5Ø ×9Ñ9¸$Ó?�Eð ×3Ñ3°I¸tÓD�Ø �	Ø˜ ™Ñ%�Ø—‘˜w¨¨tÐ4Ô5Ø˜ ™Ñ&‘ñ'ð ×%Ñ% dÓ+ˆDØ×#Ñ#×)Ñ)¨$°Ô2Ü%×,Ñ,¨Q°Ó5ò =�ØŸ>™>×9Ñ9ß"™F 7¨IÓ6·v±v¸g³ð à!Ÿ^™^×:Ñ:¸4¿>¹>ÓJ�
Ø—‘˜w¨¯©°
Ð;Õ<ð	=ð
 	ˆ�‰˜Ÿ
™
›Ñ%ä'ß‘˜Ñ 6ó8ò 	‰NˆG�Uà�M‰M˜' 4×#:Ñ#:Ó#<¸eÔDØ—i‘iñ  9Ø27ô 9ó 9ˆGà�N‰N× Ñ ð &à×Ñ�BÓÐ ð Ø€1€€Q€qˆ€eð Ø€q€	ð 
Ø€	ð 
ð"õ ñ	øô'  ò 5Ø%�DØ ×/Ñ/°Ó4“Eð5ús   Ã.J-Ê-KËKc                 óP  — | j                   j                  j                  |d|«      \  }}}	}
} | j                  |j	                  «       Ž  | j
                  j                  d|d›d|d›d|d›d�«       d}|
D ]ß  \  }}}}}| j                  j                  ||«       |j                  |f|k7  r:|j                  |f}| j
                  j                  d|j                  › d|› d	�«       t        |t        «      r|j                  t        |«      «      n|j                  |j                  |«      «      }| j
                  j                  |d›d|d›d
|› d�«       Œá |D ].  \  }}}}| j
                  j                  |› d|› d|› d|› d�«       Œ0 | j
                  j                  d«       y)z-Draw the math text using matplotlib.mathtext.r	  rj  r‘   rK   rÙ  rÚ  Nrm   rI  z	 moveto
/z glyphshow
z
 rectfill
ú	grestore
)Ú
_text2pathÚmathtext_parserÚparser,  r�  rû   r§   r  Útrack_glyphr~   Ú
isinstancer
   Úget_name_charr˜   rn   r|   )rý   rb  rp  rq  rí   rÇ  rÈ  r   r!  ÚdescentÚglyphsÚrectsÚlastfontrp   r  ÚnumÚoxÚoyrð  rt  rs  s                        rU   rÛ  zRendererPS.draw_mathtext3  sÄ  € ð �O‰O×+Ñ+×1Ñ1°!°R¸Ó>ñ 	.ˆˆv�w ¨àˆ�‰˜Ÿ
™
›Ñ%Ø�‰×ÑØØ�ˆe�1�Q�q�E˜Ø�Qˆi�yð"ô	#ð ˆØ+1ò 	.Ñ'ˆD�(˜C  RØ×#Ñ#×/Ñ/°°cÔ:Ø×$Ñ$ hÐ/°8Ò;Ø×/Ñ/°Ð9�Ø—‘×$Ñ$Ø˜×,Ñ,Ð-¨Q¨x¨j¸ÐFôHô 1;¸4ÄÔ0E�×"Ñ"¤3 s£8Ô,Ø×#Ñ# D×$7Ñ$7¸Ó$<Ó=ð ð �N‰N× Ñ Ø�a�&˜˜"˜Q˜ð  Ø�<˜|ð-õ.ð	.ð "ò 	B‰LˆB��A�qØ�N‰N× Ñ  B 4 q¨¨¨A¨a¨S°°!°°KÐ!@ÕAð	Bà�‰×Ñ˜\Õ*rZ   c                 ó¸  — t        |«      t        |«      k(  sJ ‚t        |«      dk(  ry |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k(  sJ ‚|j                  }|j                  |d   |d   z  df«      }|j	                  |«      }|j                  |d   |d   z  df«      }t        j                  |d¬«      dz
  }t        j                  |d¬«      dz   }	t        j                  d|	|z
  z  «      }
|\  }}|	\  }}t        j                  |d   |d   z  g d	¢¬
«      }d|d<   ||z
  |
z  |d<   |d d …d d…f   dz  |d<   |j                  «       j                  dd«      }| j                  j                  d|d›d|d›d|d›d|d›d|› d�«       y )Nr   r%  r   r2  r¶   )Úaxisi   l   ÿÿ ))ÚflagsÚu1)Úpointsz2>u4)ÚcolorsÚ3u1)Údtyper  r  g     ào@r  r{   ri  z–gsave
<< /ShadingType 4
   /ColorSpace [/DeviceRGB]
   /BitsPerCoordinate 32
   /BitsPerComponent 8
   /BitsPerFlag 8
   /AntiAlias true
   /Decode [ r‘   rK   z  0 1 0 1 0 1 ]
   /DataSource <
z
>
>>
shfill
grestore
)r‚   Úndimrl  ÚreshaperY  rB  ÚminÚmaxÚceilÚemptyrm  rõ   rû   r§   )rý   rb  r  r  r—  rl  Úflat_pointsÚflat_colorsÚ
points_minÚ
points_maxÚfactorÚxminÚyminÚxmaxÚymaxrv  rw  s                    rU   Údraw_gouraud_trianglesz!RendererPS.draw_gouraud_trianglesN  s  € ä�6‹{œc &›kÒ)Ð)Ð)Üˆv‹;˜!ÒØØ�{‰{˜aÒÐÐØ�|‰|˜A‰ !Ò#Ð#Ð#Ø�|‰|˜A‰ !Ò#Ð#Ð#Ø�{‰{˜aÒÐÐØ�|‰|˜A‰ !Ò#Ð#Ð#Ø�|‰|˜A‰ !Ò#Ð#Ð#à—‘ˆØ—n‘n e¨A¡h°°q±Ñ&9¸1Ð%=Ó>ˆØ—o‘o kÓ2ˆØ—n‘n e¨A¡h°°q±Ñ&9¸1Ð%=Ó>ˆÜ—V‘V˜K¨aÔ0°GÑ<ˆ
Ü—V‘V˜K¨aÔ0°GÑ<ˆ
Ü—‘˜+¨*°zÑ*AÑBÓCˆà‰
ˆˆdØ‰
ˆˆdä�x‰xØ�!‰H�u˜Q‘xÑÚJôLˆð ˆˆW‰Ø%¨
Ñ2°fÑ<ˆˆX‰Ø$¢Q¨¨¨ UÑ+¨eÑ3ˆˆX‰Ø—,‘,“.×$Ñ$ T¨3Ó/ˆà�‰×Ñð "ð �1ˆX�Q�t˜A�h˜a  Q˜x q¨¨a¨ð 1à€	ð 
ðõ 	rZ   rŒ  c                óÞ  — | j                   j                  }|j                  «       dkD  xr  | j                  |j	                  «       «       }|sd}| j                  |«      rd}|j                  «       }|rz| j                  |j                  «       «       | j                  |j                  «       «       | j                  |j                  «       «        | j                  |j                  «       Ž  |s|r  | j                  |j	                  «       dd Ž   |d«        || j                  |«      «        ||j                  «       «        |d«       |r5|s|r |d«        | j                  |dd ddiŽ  |d«       |s|r |d	«       |rS| j!                  ||j#                  «       «      }	 |d«        |t%        |j'                  «       dd Ž «        |d
|	› d�«       |r |d«        |d	«       y)at  
        Emit the PostScript snippet *ps* with all the attributes from *gc*
        applied.  *ps* must consist of PostScript commands to construct a path.

        The *fill* and/or *stroke* kwargs can be set to False if the *ps*
        string already includes filling and/or stroking, in which case
        `_draw_ps` is just supplying properties and clipping.
        r   FNr%  rj  r{   r+  zfill
ró  rK   z setpattern fill grestore
zstroke
)rû   r§   r�  r'  r�  Ú	get_hatchr0  r9  r‘  r?  r’  rG  Ú
get_dashesr,  rg  ÚstriprS  Úget_hatch_linewidthrY   Úget_hatch_color)
rý   r‚  rb  r�  rˆ  rŠ  r§   ÚmightstrokerO  Ú
hatch_names
             rU   r€  zRendererPS._draw_ps~  s½  € ð —‘×$Ñ$ˆØ×'Ñ'Ó)¨AÑ-ò BØ#×3Ñ3°B·J±J³LÓAÐAð 	áØˆFØ×Ñ Ô(ØˆDØ—‘“ˆáØ×Ñ˜r×/Ñ/Ó1Ô2Ø×Ñ˜b×.Ñ.Ó0Ô1Ø×Ñ˜RŸ_™_Ó.Ô/ØˆD×Ñ˜rŸ}™}›Ñ/Ù™%ØˆD�N‰N˜BŸJ™J›L¨¨!Ð,Ñ-ÙˆiÔáˆd× Ñ  Ó$Ô%áˆb�h‰h‹jÔÙˆdŒáÙ™Ù�iÔ ØˆD�N‰N˜G B Q˜KÐ5¨uÒ5Ù�(ŒOÙ™Ù�lÔ#áØ×*Ñ*¨5°"×2HÑ2HÓ2JÓKˆJÙ�)ÔÙ”, × 2Ñ 2Ó 4°R°aÐ 8Ð9Ô:Ù�A�j�\Ð!<Ð=Ô>áÙ�*ÔáˆlÕrZ   )r	  )T)FNr—   )"rü   Ú
__module__Ú__qualname__Ú__doc__r   Ú_get_data_pathÚ_afm_font_dirÚ_use_afm_rc_namer  r'  r,  r0  Ústaticmethodr7  r9  r=  r?  rG  rJ  rS  rV  rN  rg  r  r{  rƒ  rž  r¡  rÎ  rÁ  rÛ  r  r€  Ú__classcell__©r#  s   @rU   r  r  Ž  sG  ø„ ñð
 )�E×(Ñ(¨Ó5€MØ"Ðõ;ò6ó'ó+ð ñ-ó ð-ó)ð ñ+ó ð+ó'ó
*ó)òò@(óEòð, òó ðð@ ò'ó ð'ð àFJò2Aó ð2Aðh ñ*&ó ð*&ðX Ø:>ó 'ó ð'ðR ò8ó ð8ðt ñ+ó ð+ð4 ñ-ó ð-ð^ 15¸T÷ 1ð 1rZ   r  c                   ó(   — e Zd Z ed«      \  ZZd„ Zy)Ú_Orientationr2  c                 ó4   — | j                   dk(  r|d d d…   S |S )NÚ	landscaperÍ   )ru   )rý   rl  s     rU   Úswap_if_landscapez_Orientation.swap_if_landscapeµ  s    € Ø"Ÿi™i¨;Ò6ˆu‘T�r�T‰{ÐA¸EÐArZ   N)rü   r!  r"  rÑ   Úportraitr-  r.  rò   rZ   rU   r+  r+  ²  s   „ Ù ›(Ñ€HˆióBrZ   r+  c                   ó¨   ‡ — e Zd ZdZdddœZd„ Zdddddœd	„Zdd
œd„Zdd
œd„Z e	j                  ed«      Z e	j                  ed«      Zˆ fd„Zˆ xZS )ÚFigureCanvasPSr	  Ú
PostscriptzEncapsulated Postscript)r‚  Úepsc                  ó   — y)Nr‚  rò   rU  s    rU   Úget_default_filetypez#FigureCanvasPS.get_default_filetype¾  s   € ØrZ   Nr/  )ÚmetadataÚ	papertypeÚorientationÚbbox_inches_restorec          	      ó  — | j                   j                  }d| j                   _        i }	t        |t        t        j
                  f«      rCt        j                  |«      j                  }
|
j                  dd«      j                  d«      |	d<   |xs i j                  ddt        j                  › d�«      |	d<   t	        j                  d«      }|rPt        j                  j!                  t#        |«      t        j$                  j&                  «      j)                  d	«      nt+        j,                  «       |	d
<   dj/                  d„ |	j1                  «       D «       «      }	|€t        j2                  d   }|j5                  «       }t7        j8                  dgt:        ¢|¬«       t7        j<                  t>        |j5                  «       ¬«      }t        j2                  d   r| j@                  n| jB                  } |||f||	|||dœ|¤Ž y )Nr	  rz   rÐ  ÚTitleÚCreatorzMatplotlib vz, https://matplotlib.org/ÚSOURCE_DATE_EPOCHz%a %b %d %H:%M:%S %YÚCreationDater{   c              3   ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)z%%z: Nrò   )rS   Úkr’   s      rU   rV   z+FigureCanvasPS._print_ps.<locals>.<genexpr>Ù  s%   è ø€ ò !<Ù"˜a ˆb���2�a�SŒMñ!<ùr™   zps.papersizeÚfigure)r7  )r8  r  )ÚdpiÚdsc_commentsr8  r7  r9  )"rA  rB  rø  r�   r¤   ÚPathLikeÚpathlibr   ru   rÝ  r‰   r»   r  Ú__version__ÚgetenvÚdatetimeÚfromtimestampÚintÚtimezoneÚutcÚstrftimeÚtimeÚctimerW   Úitemsr  Úlowerr   Úcheck_in_listÚ	papersizeÚcheck_getitemr+  Ú_print_figure_texÚ_print_figure)rý   ÚfmtÚoutfiler6  r7  r8  r9  rþ   rB  rC  ÚfilenameÚsource_date_epochÚprinters                rU   Ú	_print_pszFigureCanvasPS._print_psÁ  sÌ  € ð
 �k‰k�o‰oˆØˆ�‰ŒàˆÜ�g¤¤R§[¡[Ð1Ô2Ü—|‘| GÓ,×1Ñ1ˆHà—‘ ¨Ó3×:Ñ:¸7ÓCð ˜Ñ!à#+¢>¨r×"6Ñ"6ØØœ3Ÿ?™?Ð+Ð+DÐEó#Gˆ�YÑô ŸI™IÐ&9Ó:Ðñ
 !ô ×Ñ×+Ñ+ÜÐ%Ó&Ü×!Ñ!×%Ñ%ó'ç'/¡xÐ0FÔ'Gä—‘“ð 	�^Ñ$ð —y‘yñ !<Ø&2×&8Ñ&8Ó&:ô!<ó <ˆð ÐÜŸ™ ^Ñ4ˆIØ—O‘OÓ%ˆ	Ü×Ñ˜HÐ1¤yÐ1¸YÕGä×(Ñ(Ü k×&7Ñ&7Ó&9ô;ˆô —l‘l =Ò1ð ×)Ò)à×%Ñ%ð 	ñ 	��Wð 	C #°LØ'°9Ø$7ñ	Cà;Aó	CrZ   ©r9  c                ó‚  ‡ ‡‡‡‡‡‡‡‡‡‡‡— |dk(  Št        |t        t        j                  f«      st	        |«      st        d«      ‚‰ j                  j                  «       \  ŠŠ‰s‰dk(  r‰‰}	}n‰j                  t        ‰   «      \  }}	d|‰z
  z  Šd|	‰z
  z  Š‰}
‰}|
‰ j                  j                  j                  z   }|‰ j                  j                  j                  z   }dŠ‰t        j                  u r||
||f\  }
}}}d|	z  ‰z
  ‰cŠŠdŠ|
|||fŠt        «       ‰ _        t#        ‰‰‰ j                   |¬«      Št%        ‰ j                  ‰‰|‰|¬	«      }‰ j                  j'                  |«       ˆˆˆˆˆˆˆˆˆ ˆˆˆfd
„}t(        j*                  d   r´t-        «       5 }t        j.                  j1                  |d«      }t3        |dd¬«      5 } ||«       ddd«       t(        j*                  d   dk(  rt5        t6        |‰‰‰¬«       n*t(        j*                  d   dk(  rt5        t8        |‰‰‰¬«       t;        ||«       ddd«       yt=        j>                  |dd¬«      5 }tA        |«      s tC        jD                  d«      |«      } ||«       ddd«       y# 1 sw Y   ŒÃxY w# 1 sw Y   yxY w# 1 sw Y   yxY w)a'  
        Render the figure to a filesystem path or a file-like object.

        Parameters are as for `.print_figure`, except that *dsc_comments* is a
        string containing Document Structuring Convention comments,
        generated from the *metadata* parameter to `.print_figure`.
        r3  z,outfile must be a path or a file-like objectrA  g      B@r   r	  r¿  ©r  r]  c           
      óþ  •— ‰rt        d| ¬«       n/t        d| ¬«       ‰
dk7  rt        d‰
› �| ¬«       t        d| ¬«       t        d‰› d‰	j                  › d	t        ‰«      › d
�d| ¬«       t        t        «      }t        d| ¬«       t
        j                  d   s"|t        ‰j                  j                  «      z  }t        d|z  | ¬«       t        d| ¬«       t        d	j                  t        «      | ¬«       t
        j                  d   s�‰j                  j                  j                  «       D ]i  \  }}|sŒ	t
        j                  d   }t        |«      dkD  rd}| j                  «        |dk(  r| j                  t        ||«      «       Œ]t        ||| «       Œk t        d| ¬«       t        d| ¬«       ‰st        d| ¬«       t        d| ¬«       t        dt        ‰‰«      z  | ¬«       ‰rt        d‰z  | ¬«       t        dt        ‰dz  ‰dz  «      › d�| ¬«       t        ‰j                   j#                  «       | ¬«       t        d| ¬«       t        d| ¬«       ‰st        d| ¬«       | j                  «        y )Nz%!PS-Adobe-3.0 EPSF-3.0)Úfilez%!PS-Adobe-3.0rA  z%%DocumentPaperSizes: z
%%Pages: 1z%%LanguageLevel: 3
z
%%Orientation: r{   z
%%EndComments
r•   )Úendra  z%%BeginPrologr  z/mpldict %d dict defzmpldict beginzps.fonttypeéÿ   é*   r%  rb  z%%EndPrologz%%Page: 1 1z%s translatez	%d rotatez0 0 r	  z	 rectclipÚshowpagez%%EOF)Úprintru   Ú_get_bbox_headerr‚   Ú_psDefsr  r  r  ÚusedrW   rP  Úflushr§   r“   r¯   rY   rû   r£   )rh   ÚNdictrŠ   r‹   Úfonttypers   rC  r!  Úis_epsr8  r7  Úps_rendererÚrotationrý   r   rµ  r¶  s        €€€€€€€€€€€€rU   Úprint_figure_implz7FigureCanvasPS._print_figure.<locals>.print_figure_impl  s1  ø€ áÜÐ/°bÖ9äÐ&¨RÕ0Ø Ò(ÜÐ2°9°+Ð>ÀRÕHÜ�l¨Õ,ÜÐ(Ø!�Nð #$Ø$/×$4Ñ$4Ð#5°RÜ% dÓ+Ð,ð -$ð%ð
 ˜rõ#ô œ“LˆEÜ�/¨Õ+Ü—<‘< Ò,Øœ˜[×;Ñ;×@Ñ@ÓAÑA�ÜÐ(¨5Ñ0°rÕ:Ü�/¨Õ+Ü�$—)‘)œGÓ$¨2Õ.Ü—<‘< Ò,à&×9Ñ9×>Ñ>×DÑDÓFòAÑ$�I˜uá Ø Ü"Ÿ|™|¨MÑ:�Hä˜5“z CÒ'Ø#%˜Ø—H‘H”JØ 1’}ØŸ™Ô!2°9¸eÓ!DÕEä*¨9°e¸RÕ@ðAô �%˜bÕ!Ü�- bÕ)áÜ�m¨"Õ-Ü�/¨Õ+ä�.¤<°°BÓ#7Ñ7¸bÕAÙÜ�k HÑ,°2Õ6Ü�Dœ e¨B¡h°°r±	Ó:Ð;¸9ÐEÈBÕOô �$—.‘.×)Ñ)Ó+°"Õ5ô �%˜bÕ!Ü�* 2Õ&ÙÜ�g BÕ'Ø�H‰H�JrZ   úps.usedistillerútmp.psrt  r\   r]   NÚghostscript)Úptypers   Úxpdf)#rø  r�   r¤   rD  r   Ú
ValueErrorrA  Úget_size_inchesr.  rS  rs   r   r!  r+  r-  r   rû   r  r   rå   r  r  r   rX  rW   ra   Ú_try_distillÚ
gs_distillÚxpdf_distillri   r   Úopen_file_cmr   ÚcodecsÚ	getwriter)rý   rW  rX  rB  rC  r8  r7  r9  Úpaper_widthÚpaper_heightÚllxÚllyÚurxÚuryÚrendererrp  ÚtmpdirÚtmpfilerh   ra  rs   r!  rm  rn  ro  r   rµ  r¶  s   `   ```             @@@@@@@@rU   rV  zFigureCanvasPS._print_figureë  s§  ÿû€ ð ˜‘ˆÜ˜7¤S¬"¯+©+Ð$6Ô7Ü(¨Ô1ÜÐKÓLÐLð Ÿ™×3Ñ3Ó5‰ˆˆvÙ�Y (Ò*Ø(-¨v˜‰Kà(3×(EÑ(EÜ˜)Ñ$ó)&Ñ%ˆK˜ð ˜ uÑ,Ñ-ˆØ˜¨Ñ.Ñ/ˆàˆØˆØ�D—K‘K×$Ñ$×*Ñ*Ñ*ˆØ�D—K‘K×$Ñ$×+Ñ+Ñ+ˆØˆØœ,×0Ñ0Ñ0Ø!$ c¨3°Ð!3ÑˆC��c˜3Ø˜,Ñ&¨Ñ+¨RˆFˆB�ØˆHØ�S˜#˜sÐ#ˆä!›ˆŒô ! ¨°·±ÈÔMˆÜ$Ø�K‰K˜ ¨¨[Ø 3ô5ˆð 	�‰×Ñ˜Ô"÷9	÷ 9	ôv �<‰<Ð)Ò*ô $Ó%ð 
?¨ÜŸ'™'Ÿ,™, v¨xÓ8�Ü˜' 3°Ô;ð *¸rÙ% bÔ)÷*ä—<‘<Ð 1Ñ2°mÒCÜ ¤Ø!(¨&¸	ÈöNä—\‘\Ð"3Ñ4¸Ò>Ü ¤Ø!(¨&¸	ÈõNä,¨W°gÔ>÷
?ð 
?ô ×#Ñ# G¨S¸9ÔEð (ÈÜ,¨TÔ2Ø6œ6×+Ñ+¨IÓ6°tÓ<�DÙ! $Ô'÷(ð (÷*ð *ú÷
?ð 
?ú÷(ð (ús1   Æ#/J)Ç	JÇA)J)É%/J5ÊJ&	Ê"J)Ê)J2Ê5J>c                ó  — |dk(  }| j                   j                  «       \  }	}
d}d}|}|}|| j                   j                  j                  z   }|| j                   j                  j                  z   }||||f}t        «       | _        t        |	|
| j                  |¬«      }t        | j                   |	|
|||¬«      }| j                   j                  |«       t        «       5 }t        j                  |d«      }|j                  d|› dt        |«      › dt        t         «      › d	d
j#                  t         «      › dt%        ||«      › dt%        |	dz  |
dz  «      › d| j                  j'                  «       › d�d¬«       |t(        j*                  u r
|
|	}
}	||||f}|s|dk(  r-|j-                  | j                   j                  «       «      \  }}nt.        |   \  }}t1        ||j2                  |||j4                  «      }t6        j8                  d   dk(  st6        j8                  d   rt;        t<        |||||¬«       n+t6        j8                  d   dk(  rt;        t>        |||||¬«       tA        ||«       ddd«       y# 1 sw Y   yxY w)a(  
        If :rc:`text.usetex` is True, a temporary pair of tex/eps files
        are created to allow tex to manage the text layout via the PSFrags
        package. These files are processed to yield the final ps or eps file.

        The rest of the behavior is as for `._print_figure`.
        r3  r   r_  r]  rr  z+%!PS-Adobe-3.0 EPSF-3.0
%%LanguageLevel: 3
r{   z&
%%EndComments
%%BeginProlog
/mpldict z dict def
mpldict begin
r•   z
end
%%EndProlog
mpldict begin
z translate
0 0 r	  r\  z
end
showpage
r\   r]   rA  rq  rs  r  )rt  rs   Úrotatedru  N)!rA  rw  rs   r   r!  r   rû   r  r   rå   r   rE  r   Ú
write_textrg  r‚   rh  rW   rY   r£   r+  r-  r.  rS  Ú_convert_psfragsr  ru   r  r  rx  ry  rz  ri   )rý   rW  rX  rB  rC  r8  r7  r9  rm  r   r!  rµ  r¶  r€  r�  r‚  rƒ  rs   rn  r„  r…  Útmppathr~  r  Úpsfrag_rotateds                            rU   rU  z FigureCanvasPS._print_figure_texl  s˜  € ð ˜‘ˆàŸ™×3Ñ3Ó5‰ˆˆvØˆØˆàˆØˆØ�D—K‘K×$Ñ$×*Ñ*Ñ*ˆØ�D—K‘K×$Ñ$×+Ñ+Ñ+ˆØ�S˜#˜sÐ#ˆä!›ˆŒô ! ¨°·±ÈÔMˆÜ$ T§[¡[Ø%*¨F°C¸Ø9LôNˆð 	�‰×Ñ˜Ô"ô  Ó!ð 3	; VÜ—l‘l 6¨8Ó4ˆGØ×Ñðð €ð Ü�$ÓÐ ð 
ô Œg‹,ˆð à‡�ŒÓÐ ð ô ˆb�"ÓÐ ð Ü�%˜‘(˜F 2™IÓ&Ð'ð (Ø‡�×ÑÓÐ ð ðð& #ð) ô $ð, œl×4Ñ4Ñ4Ø &¨�v�Ø˜S # sÐ+�ñ
 ˜ hÒ.Ø,7×,IÑ,IØ—K‘K×/Ñ/Ó1ó-3Ñ)�™\ô -6°iÑ,@Ñ)�˜\ä-Ø˜×+Ñ+¨[¸,Ø× Ñ ó"ˆNô —‘Ð.Ñ/°=Ò@Ü—|‘| MÒ2ÜœZØ$ f°IÀDØ%3ö5ô —‘Ð/Ñ0°FÒ:Üœ\Ø$ f°IÀDØ%3õ5ô )¨°'Ô:÷g3	;÷ 3	;ñ 3	;ús   ÃFI8É8Jr‚  r3  c                 óT   •— | j                   j                  «        t        ‰| �  «       S r—   )rA  Údraw_without_renderingr
  rå   )rý   r#  s    €rU   rå   zFigureCanvasPS.drawÆ  s   ø€ Ø�‰×*Ñ*Ô,Ü‰w‰|‹~ÐrZ   )rü   r!  r"  Ú	fixed_dpiÚ	filetypesr5  r\  rV  rU  r  ÚpartialmethodÚprint_psÚ	print_epsrå   r(  r)  s   @rU   r1  r1  ¹  sy   ø„ Ø€IØ#Ø1ñ3€Iòð
  T°zØ $ô(CðZ !%ô(ðH !%ôU;ðn 'ˆy×&Ñ& y°$Ó7€HØ'�	×'Ñ'¨	°5Ó9€I÷ð rZ   r1  c           	      óL  — t        j                  dt         j                  d   t         j                  j	                  d«      z   t         j                  j	                  d«      z   t         j                  j	                  d«      z   d||dœz  z   i«      5  t        «       j                  ddj                  |«      |d	k(  rd
nd| j                  «       j                  «       dœz  d¬«      }ddd«       t        «       5 }t        j                  j                  |d«      }t        j                  dddd|gt        «       t!        j"                  || «       ddd«       t%        | «      5 }d|j'                  d«      v }	ddd«       |	S # 1 sw Y   Œ›xY w# 1 sw Y   Œ>xY w# 1 sw Y   	S xY w)aj  
    When we want to use the LaTeX backend with postscript, we write PSFrag tags
    to a temporary postscript file, each one marking a position for LaTeX to
    render some text. convert_psfrags generates a LaTeX document containing the
    commands to convert those tags to text. LaTeX/dvips produces the postscript
    file that includes the actual text.
    ztext.latex.preambler  Úgraphicxr  z:\geometry{papersize={%(width)sin,%(height)sin},margin=0in})r   r!  zt
\begin{figure}
  \centering\leavevmode
  %(psfrags)s
  \includegraphics*[angle=%(angle)s]{%(epsfile)s}
\end{figure}r{   r-  r¿  r   )ÚpsfragsrÈ  Úepsfileé
   )r  Nrr  Údvipsz-qz-R0z-oÚ	Landscapeiè  )r  Ú
rc_contextr  Ú
texmanagerÚ_usepackage_if_not_loadedr   Úmake_dvirW   ÚresolveÚas_posixr   r¤   rX  r   Ú_check_and_log_subprocessr›   rb   rd   ra   Úread)
r‹  r–  r~  r  r8  Údvifiler…  Úpsfilerh   rŒ  s
             rU   rŠ  rŠ  Ë  s�  € ô 
�‰Ø!Ü�L‰LÐ.Ñ/Ü�N‰N×4Ñ4°WÓ=ñ>ä�N‰N×4Ñ4°ZÓ@ñAô �N‰N×4Ñ4°XÓ>ñ?ð JØ#¨|Ñ<ñ=ñ	=ðó 
ñ ô “,×'Ñ'ðð  Ÿ9™9 WÓ-Ø*¨kÒ9™¸qØ"Ÿ?™?Ó,×5Ñ5Ó7ññ
ð ð (ó ˆ÷ô. 
Ó	ð % Ü—‘—‘˜f hÓ/ˆÜ×'Ñ'Ø�d˜E 4¨°Ð9¼4ô	Aä�‰�F˜GÔ$÷	%ô 
ˆg‹ð 6˜"Ø$¨¯©°«Ð5ˆ÷6àÐ÷Mð ú÷.%ð %ú÷6àÐús&   ÂAFÃ9AFÅ#FÆF
ÆFÆF#c                 óœ   — 	  | t        |«      g|¢­i |¤Ž y # t        j                  $ r }t        j	                  d|«       Y d }~y d }~ww xY w)Nz%s.  Distillation step skipped.)r�   r  ÚExecutableNotFoundErrorr›   rª   )Úfuncr‹  rX   rþ   Úexcs        rU   rx  rx  ü  sE   € ð=ÙŒS�‹\Ð+˜DÒ+ FÓ+øÜ×&Ñ&ò =Ü�‰Ð6¸×<Ñ<ûð=ús   ‚ ˜A«AÁAc                 ó€  — |rdg}n|dk(  rd|d   › �d|d   › �g}nd|› �g}| dz   }t         j                  d	   }t        j                  t        j                  d
«      j
                  ddd|z  dg|¢d|› �‘| ‘t        «       t        j                  | «       t        j                  || «       |rt        | ||¬«       yy)zÔ
    Use ghostscript's pswrite or epswrite device to distill a file.
    This yields smaller files without illegal encapsulated postscript
    operators. The output is low-level, converting text to outlines.
    ú	-dEPSCroprA  z-dDEVICEWIDTHPOINTS=r2  z-dDEVICEHEIGHTPOINTS=r%  z-sPAPERSIZE=z.pszps.distiller.resrç   z-dBATCHz	-dNOPAUSEz-r%dz-sDEVICE=ps2writez-sOutputFile=)rˆ  N)r  r  r   r¡  Ú_get_executable_infoÚ
executabler›   r¤   Úremoverb   rd   Úpstoeps)r†  r3  rt  rs   rˆ  Úpaper_optionr¤  rB  s           rU   ry  ry    sñ   € ñ Ø#�}‰Ø	�(Ò	ð /¨t°A©w¨iÐ8Ø/°°Q±¨yÐ9ð;‰ð ' u gÐ.Ð/ˆà�u‰_€FÜ
�,‰,Ð)Ñ
*€Cä	×#Ñ#Ü	×	!Ñ	! $Ó	'×	2Ñ	2Ø	�K ¨#¡Ð/Bð	;à
ð	;à'¨ xÐ0ð	;à29ð	;ô 	ô	ô ‡I�IˆgÔÜ
‡K�K�˜Ô ñ ô 	�˜ wÖ/ð rZ   c           	      ó  — t        j                  d«       t        j                  d«       |rdg}n|dk(  rd|d   › �d|d   › �g}nd	|› �g}t        «       5 }t        j                  |d
«      }t        j                  |d«      }t        j                  ddddddg|¢| ‘|‘t        «       t        j                  dddd||gt        «       t        j                  || «       ddd«       |rt        | «       yy# 1 sw Y   ŒxY w)a
  
    Use ghostscript's ps2pdf and xpdf's/poppler's pdftops to distill a file.
    This yields smaller files without illegal encapsulated postscript
    operators. This distiller is preferred, generating high-level postscript
    output that treats text as text.
    rç   Úpdftopsrª  rA  z-dDEVICEWIDTHPOINTS#r2  z-dDEVICEHEIGHTPOINTS#r%  z-sPAPERSIZE#ztmp.pdfrr  Úps2pdfz-dAutoFilterColorImages#falsez-dAutoFilterGrayImages#falsez-sAutoRotatePages#Nonez-sGrayImageFilter#FlateEncodez-sColorImageFilter#FlateEncodez-paperÚmatchz-level3N)r  r«  r   rE  r   r   r¡  r›   rb   rd   r®  )	r†  r3  rt  rs   rˆ  r¯  r…  ÚtmppdfÚtmppss	            rU   rz  rz  *  s2  € ô ×Ñ˜TÔ"Ü×Ñ˜YÔ'á
Ø#�}‰Ø	�(Ò	ð /¨t°A©w¨iÐ8Ø/°°Q±¨yÐ9ð;‰ð ' u gÐ.Ð/ˆä	Ó	ð $ Ü—‘˜f iÓ0ˆÜ—‘˜V XÓ.ˆô 	×'Ñ'ØØ,Ø+Ø%Ø,Ø-ðð ðð ðð ðô  $ô	%ô 	×'Ñ'Ø˜ '¨9°f¸eÐDÄdô	Lä�‰�E˜7Ô#÷!$ñ" Ü�Õð ÷#$ð $ús   ÁB	C7Ã7D z3.9c                 ó8   — t        | «      |rt        | «      fS dfS )zx
    Return a postscript header string for the given bbox lbrt=(l, b, r, t).
    Optionally, return rotate command.
    r•   )rg  Ú_get_rotate_command)Úlbrtrˆ  s     rU   Úget_bbox_headerr¹  S  s$   € ô ˜DÓ!ÁÔ$7¸Ó$=ÐQÐQÈbÐQÐQrZ   c                 ó¼   — | \  }}}}dt        |«      › dt        |«      › dt        j                  |«      › dt        j                  |«      › d|d›d|d›d|d›d|d›�S )zGReturn a PostScript header string for bounding box *lbrt*=(l, b, r, t).z%%BoundingBox: rK   z
%%HiResBoundingBox: z.6f)rJ  Úmathr  ©r¸  Úlr*  r)  Úts        rU   rg  rg  \  sq   € à�J€A€qˆ!ˆQØœc !›f˜X Q¤s¨1£v h¨a´·	±	¸!³¨~¸Q¼t¿y¹yÈ»|¸nð M#Ø#$ S '¨¨1¨S¨'°°1°S°'¸¸1¸S¸'ðCð DrZ   c                 ó*   — | \  }}}}||z   d›ddd›d�S )uO   Return a PostScript 90Â° rotation command for bounding box *lbrt*=(l, b, r, t).z.2frK   r   z translate
90 rotaterò   r¼  s        rU   r·  r·  c  s+   € à�J€A€qˆ!ˆQØ�‰c�#ˆY�a˜˜#�wÐ3Ð4Ð4rZ   c                 óÎ  — | dz   }t        |d«      5 }t        | d«      5 }|j                  }|D ]¦  }|j                  d«      r/ |d«       |sŒ |t        |«      j	                  d«      dz   «       ŒC|j                  d«      r7 ||«        |d	«       |r# |t        |«      j	                  d«      dz   «        n|r|j                  d
«      rŒŸ ||«       Œ¨ |D ]6  }|j                  d«      r	 |d«       Œ|j                  d«      rŒ/ ||«       Œ8 	 ddd«       ddd«       t        j                  | «       t        j                  || «       y# 1 sw Y   Œ=xY w# 1 sw Y   ŒAxY w)z´
    Convert the postscript to encapsulated postscript.  The bbox of
    the eps file will be replaced with the given *bbox* argument. If
    None, original bbox will be used.
    z.epsÚwbr_   s   %!PSs   %!PS-Adobe-3.0 EPSF-3.0
rz   ó   
s   %%EndCommentssp   %%BeginProlog
save
countdictstack
mark
newpath
/showpage {} def
/setpagedevice {pop} def
%%EndProlog
%%Page 1 1
)s   %%Bounds   %%HiResBounds   %%DocumentMedias   %%Pagess   %%EOFsJ   cleartomark
countdictstack
exch sub { end } repeat
restore
showpage
%%EOF
s   %%PageBoundingBoxN)
ra   r§   Ú
startswithrg  rÝ  r·  r¤   r­  rb   rd   )r†  rs   rˆ  r—  ÚepshÚtmphr§   Úlines           rU   r®  r®  i  sd  € ð ˜Ñ€GÜ	ˆg�tÓ	ð ) ¤d¨7°DÓ&9ð )¸TØ—
‘
ˆàò 	ˆDØ�‰˜wÔ'ÙÐ2Ô3ÚÙÔ*¨4Ó0×7Ñ7¸Ó@À5ÑHÕIØ—‘Ð!1Ô2Ù�d”Ùð &ô 'ñ ÙÔ-¨dÓ3×:Ñ:¸7ÓCÀeÑKÔLÙÙ˜$Ÿ/™/ð +Kô Làá�d•ð/	ð6 ò 	ˆDØ�‰˜xÔ(Ùð !õ "ð —‘Ð!5Ô6Øá�d•ñ	÷=)÷ )ôV ‡I�IˆgÔÜ
‡K�K�˜Õ!÷Y)ð )ú÷ )ð )ús)   ’EŸ-EÁCEÄEÅE	ÅEÅE$)z/_d { bind def } bind defz/m { moveto } _dz/l { lineto } _dz/r { rlineto } _dz/c { curveto } _dz/cl { closepath } _dz/ce { closepath eofill } _dz/sc { setcachedevice } _dc                   ó   — e Zd ZdZeZy)Ú
_BackendPSzLevel IIN)rü   r!  r"  Úbackend_versionr1  ÚFigureCanvasrò   rZ   rU   rÈ  rÈ  Æ  s   „ à €OØ!�LrZ   rÈ  )Fr   NF)F)NF)Wr#  ró   r|  rH  Úenumr   r  Úior   rè  Úloggingr»  r¤   rE  rb   rÏ   Útempfiler   r¾   rN  rž   ÚnumpyrB  Ú
matplotlibr  r   r   r   r	   Úmatplotlib._afmr
   Úmatplotlib.backend_basesr   r   r   r   Úmatplotlib.cbookr   r   Úmatplotlib.font_managerr   Úmatplotlib.ft2fontr   Úmatplotlib._mathtext_datar   Úmatplotlib.pathr   Úmatplotlib.texmanagerr   Úmatplotlib.transformsr   Ú!matplotlib.backends.backend_mixedr   r•   r   Ú	getLoggerrü   r›   rú   rS  rY   ri   r“   r¯   r¨   rº   rÆ   r¼   r½   r  ÚRendererPDFPSBaser  r+  r1  rŠ  rx  ry  rz  Ú
deprecatedr¹  rg  r·  r®  ÚFigureManagerPSrh  ÚexportrÈ  rò   rZ   rU   ú<module>rà     sa  ðñó Û Û Ý Û Ý Û Û Û Û 	Û Û Û Ý 'Û Û ã Û ã ß 8Ó 8Ý ÷Aó Aç IÝ ,Ý (Ý /Ý  Ý ,Ý *Ý ?Ý ð €w×Ñ˜Ó"€Ø
€ð"ˆX�yð "Ø�ið"à�xð"ð �>ð"ð �>ð	"ð
 �>ð"ð �>ð"ð �=ð"ð �<ð"ð �<ð"ð �<ð"ð �<ð"ð �<ð"ð �Lð"ð �>ð"ð �>ð"ð  �>ð!"ð" "Ø!Ø ØØØØØ ò1"€	ð6  ô Kò=ò N5òb!òH-ò`( òV&ò2ò0 @òFôa�×2Ñ2ô aôHB�4ô BôOÐ%ô Oòd.òb=ó$0óN&ðR €‡��ÓòRó ðRòDò5ó4"ðn $€ò€ð. 
‡�ô"�ó "ó ñ"rZ   