§
    ‡Ûg³F  ã                   óú  — d Z ddlZddlZddlZddlZ	 ddlZej        dk     re‚n*# e$ r" 	 ddl	Zn# e$ rZ
 ed¦  «        e
‚dZ
[
ww xY wY nw xY wddlZddlmZmZ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 dd„Zd„ Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ d¦  «        Z! G d„ de¦  «        Z" ej#        d¦  «         G d„ de¦  «        ¦   «         Z$ej%         G d„ de¦  «        ¦   «         Z&dS )z�
A Cairo backend for Matplotlib
==============================
:Author: Steve Chaplin and others

This backend depends on cairocffi or pycairo.
é    N)é   é   r   zEcairo backend requires that pycairo>=1.14.0 or cairocffi is installedé   )Ú_apiÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚttfFontProperty)ÚPath)ÚAffine2Dc                 ó  — |                      |d|¬¦  «        D ]î\  }}|t          j        k    r | j        |Ž  Œ |t          j        k    r|                      ¦   «          ŒE|t          j        k    r | j        |Ž  Œ`|t          j        k    rdt          j
        |                      ¦   «         ¦  «        }|d d…         }|dd …         } | j        g |dz  |dz  dz  z   ¢|dz  dz  |dz  z   ¢|¢R Ž  ŒÔ|t          j        k    r
 | j        |Ž  Œïd S )NT)Úremove_nansÚclipr   éþÿÿÿé   )Úiter_segmentsr   ÚMOVETOÚmove_toÚ	CLOSEPOLYÚ
close_pathÚLINETOÚline_toÚCURVE3ÚnpÚasarrayÚget_current_pointÚcurve_toÚCURVE4)	ÚctxÚpathÚ	transformr   ÚpointsÚcodeÚcurÚaÚbs	            úW/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/backends/backend_cairo.pyÚ_append_pathr,   %   s?  € Ø×*Ò*Ø 4¨dð +ñ 4ô 4ð "ð "‰ˆ�à•4”;ÒÐØˆCŒK˜Ð Ð Ð Ø•T”^Ò#Ð#Ø�NŠNÑÔÐÐØ•T”[Ò Ð ØˆCŒK˜Ð Ð Ð Ø•T”[Ò Ð Ý”*˜S×2Ò2Ñ4Ô4Ñ5Ô5ˆCØ�r˜�r”
ˆAØ�r�s�s”ˆAØˆCŒLÐJ˜3 ™7 Q¨¡U¨Q¡YÑ.ÐJ°1°q±5¸1±9¸qÀ1¹uÑ3DÐJÈÐJÐJÐJÐJÐJØ•T”[Ò Ð ØˆCŒL˜&Ð!Ð!øð"ð "ó    c                 ó"  ‡ — ˆ fd„} |d¦  «        }t          t          d |d¦  «                             ¦   «         › �¦  «        } |d¦  «        }t          j                             ||¦  «        dk     rt          j        nt          j        }|||fS )z{
    Convert a `.FontProperties` or a `.FontEntry` to arguments that can be
    passed to `.Context.select_font_face`.
    c                 ó|   •— 	  t          ‰d| › �¦  «        ¦   «         S # t          $ r t          ‰| ¦  «        cY S w xY w)NÚget_)ÚgetattrÚAttributeError)ÚfieldÚprops    €r+   Úattrz-_cairo_font_args_from_font_prop.<locals>.attr<   sW   ø€ ð	(Ø0•7˜4 ¨  Ñ0Ô0Ñ2Ô2Ð2øÝð 	(ð 	(ð 	(Ý˜4 Ñ'Ô'Ð'Ð'Ð'ð	(øøøs   ƒ ž;º;ÚnameÚFONT_SLANT_ÚstyleÚweighti&  )r1   ÚcairoÚupperr   Úweight_dictÚgetÚFONT_WEIGHT_NORMALÚFONT_WEIGHT_BOLD)r4   r5   r6   Úslantr9   s   `    r+   Ú_cairo_font_args_from_font_proprA   7   s§   ø€ ð
(ð (ð (ð (ð (ð ˆ4�‰<Œ<€DÝ•EÐ@¨¨¨g©¬×)<Ò)<Ñ)>Ô)>Ð@Ð@ÑAÔA€EØˆT�(‰^Œ^€FåÔ)×-Ò-¨f°fÑ=Ô=ÀÒCÐCõ Ô&Ð&åÔ)ð ð �˜ÐÐr-   c                   óÔ   ‡ — e Zd Zˆ fd„Zd„ Z ej        dd¬¦  «        d„ ¦   «         Z ej        d¦  «        d„ ¦   «         Zd„ Z	dd
„Z
	 dd„Zd„ Zdd„Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚRendererCairoc                 ó
  •— || _         t          | ¬¦  «        | _        d | _        d | _        t          j        t          j        t
          j        dd¦  «        ¦  «        | _	        t          ¦   «                              ¦   «          d S )N)Úrendererr   )ÚdpiÚGraphicsContextCairoÚgcÚwidthÚheightr:   ÚContextÚImageSurfaceÚFORMAT_ARGB32Útext_ctxÚsuperÚ__init__)ÚselfrF   Ú	__class__s     €r+   rP   zRendererCairo.__init__L   sn   ø€ ØˆŒÝ&°Ð5Ñ5Ô5ˆŒØˆŒ
ØˆŒÝœÝÔ�eÔ1°1°aÑ8Ô8ñ:ô :ˆŒå‰Œ×ÒÑÔÐÐÐr-   c                 ó>  — |                      ¦   «         }t          |d¦  «        r9t          |d¦  «        r)|                     ¦   «         |                     ¦   «         f}n¤t          |d¦  «        r#|                     ¦   «         }|j        |j        f}nq|                     ¦   «          |                     ¦   «          | 	                    ¦   «         ^}}|rt          d¦  «        ‚|j        |j        f}|                     ¦   «          || j        _        |\  | _        | _        d S )NÚ	get_widthÚ
get_heightÚget_extentszCannot infer surface size)Ú
get_targetÚhasattrrT   rU   rV   rI   rJ   ÚsaveÚ
reset_clipÚcopy_clip_rectangle_listÚ	TypeErrorÚrestorerH   r#   )rQ   r#   ÚsurfaceÚsizeÚextÚrectÚrests          r+   Úset_contextzRendererCairo.set_contextU   s
  € Ø—.’.Ñ"Ô"ˆÝ�7˜KÑ(Ô(ð 	­W°W¸lÑ-KÔ-Kð 	Ø×$Ò$Ñ&Ô&¨×(:Ò(:Ñ(<Ô(<Ð<ˆDˆDÝ�W˜mÑ,Ô,ð 
	Ø×%Ò%Ñ'Ô'ˆCØ”9˜cœjÐ(ˆDˆDà�HŠH‰JŒJˆJØ�NŠNÑÔÐØ×6Ò6Ñ8Ô8ˆKˆD�4Øð =ÝÐ ;Ñ<Ô<Ð<Ø”:˜tœ{Ð*ˆDØ�KŠK‰MŒMˆMØˆŒŒØ"&ÑˆŒ
�D”K�K�Kr-   ú3.6rc   )Úalternativec                 óB   — t          j        |¦  «        | j        _        d S ©N)r:   rK   rH   r#   )rQ   r^   s     r+   Úset_ctx_from_surfacez"RendererCairo.set_ctx_from_surfaceg   s   € å”m GÑ,Ô,ˆŒŒˆˆr-   c                 ó"   — || _         || _        d S rg   ©rI   rJ   )rQ   rI   rJ   s      r+   Úset_width_heightzRendererCairo.set_width_heightk   s   € àˆŒ
ØˆŒˆˆr-   c                 óŠ  — |�¬|                      ¦   «          t          |¦  «        dk    s|r+|                     |d         |d         |d         |¦  «         n0|                     |d         |d         |d         |d         ¦  «         |                     ¦   «          |                     ¦   «          |                     ¦   «          d S )Nr   r   r   r   )rY   ÚlenÚset_source_rgbaÚfill_preserver]   Ústroke)rQ   r#   Úfill_cÚalphaÚalpha_overridess        r+   Ú_fill_and_strokezRendererCairo._fill_and_strokep   s®   € ØÐØ�HŠH‰JŒJˆJÝ�6‰{Œ{˜aÒÐ ?ÐØ×#Ò# F¨1¤I¨v°a¬y¸&À¼)ÀUÑKÔKÐKÐKà×#Ò# F¨1¤I¨v°a¬y¸&À¼)ÀVÈAÄYÑOÔOÐOØ×ÒÑÔÐØ�KŠK‰MŒMˆMØ�
Š
‰Œˆˆˆr-   Nc                 ó¬  — |j         }|€(|                     ¦   «         €|                     ¦   «         nd }|t          ¦   «                              dd¦  «                             d| j        ¦  «        z   }|                     ¦   «          t          ||||¦  «         |  	                    ||| 
                    ¦   «         |                     ¦   «         ¦  «         d S ©Nr   éÿÿÿÿr   )r#   Ú	get_hatchÚclip_extentsr   ÚscaleÚ	translaterJ   Únew_pathr,   rt   Ú	get_alphaÚget_forced_alpha)rQ   rH   r$   r%   ÚrgbFacer#   r   s          r+   Ú	draw_pathzRendererCairo.draw_path{   sÔ   € àŒfˆð �? r§|¢|¡~¤~Ð'=ð × Ò Ñ"Ô"Ð"àð 	ð Ý‘z”z×'Ò'¨¨2Ñ.Ô.×8Ò8¸¸D¼KÑHÔHñIˆ	à�Š‰ŒˆÝ�S˜$ 	¨4Ñ0Ô0Ð0Ø×ÒØ�˜"Ÿ,š,™.œ.¨"×*=Ò*=Ñ*?Ô*?ñ	Aô 	Að 	Að 	Að 	Ar-   c           	      ó&  — |j         }|                     ¦   «          t          |||t          ¦   «                              dd¦  «        z   ¦  «         |                     ¦   «         }|                     ¦   «         \  }}	}
}|dk    r|	dk    r|
dk    r|dk    rd}d }nd}|t          ¦   «                              dd¦  «                             d| j        ¦  «        z   }|                     ¦   «          t          | 
                    |d¬¦  «        ¦  «        D ]¾\  }\  }}t          |¦  «        r§|dd …         \  }}|                     ¦   «          |                     ||¦  «         |                     |¦  «         |                     ¦   «          |s	|dz  dk    r<|                      |||                     ¦   «         |                     ¦   «         ¦  «         Œ¿|s>|                      |||                     ¦   «         |                     ¦   «         ¦  «         d S d S )	Nr   rw   r   FT)Úsimplifyr   iè  )r#   r|   r,   r   rz   Úcopy_path_flatÚfill_extentsr{   rJ   Ú	enumerater   rm   rY   Úappend_pathr]   rt   r}   r~   )rQ   rH   Úmarker_pathÚmarker_transr$   r%   r   r#   Úx1Úy1Úx2Úy2ÚfilledÚiÚverticesÚcodesÚxÚys                     r+   Údraw_markerszRendererCairo.draw_markers‰   s,  € ð ŒfˆØ�Š‰Œˆå�S˜+ |µh±j´j×6FÒ6FÀqÈ"Ñ6MÔ6MÑ'MÑNÔNÐNØ×(Ò(Ñ*Ô*ˆð ×)Ò)Ñ+Ô+‰ˆˆB��BØ�Š7ˆ7�r˜Q’w�w 2¨¢7 7¨r°Qªw¨wØˆFàˆGˆGàˆFàÝ‘z”z×'Ò'¨¨2Ñ.Ô.×8Ò8¸¸D¼KÑHÔHñIˆ	ð 	�Š‰ŒˆÝ$-Ø×"Ò" 9°uÐ"Ñ=Ô=ñ%?ô %?ð 	Mð 	MÑ ˆAÑ �˜%å�8‰}Œ}ð MØ   ”}‘��1Ø—’‘
”
�
ð —’˜a Ñ#Ô#Ð#Ø—’ Ñ,Ô,Ð,à—’‘”�ð ð M˜Q ™X¨š]˜]Ø×)Ò)Ø˜W b§l¢l¡n¤n°b×6IÒ6IÑ6KÔ6KñMô Mð Møð ð 	EØ×!Ò!Ø�W˜bŸlšl™nœn¨b×.AÒ.AÑ.CÔ.CñEô Eð Eð Eð Eð	Eð 	Er-   c                 ó(  — t          j        |d d d…         ¦  «        }t          j                             |                     ¦   «         j        t          j        |j        d         |j        d         |j        d         dz  ¦  «        }|j	        }| j
        |z
  |j        d         z
  }|                     ¦   «          |                     |t          |¦  «        t          |¦  «        ¦  «         |                     ¦   «          |                     ¦   «          d S )Nrw   r   r   é   )r   Ú._unmultiplied_rgba8888_to_premultiplied_argb32r:   rL   Úcreate_for_dataÚravelÚdatarM   Úshaper#   rJ   rY   Úset_source_surfaceÚfloatÚpaintr]   )rQ   rH   r‘   r’   Úimr^   r#   s          r+   Ú
draw_imagezRendererCairo.draw_image¹   sÑ   € ÝÔAÀ"ÀTÀTÀrÀTÄ(ÑKÔKˆÝÔ$×4Ò4Ø�HŠH‰JŒJŒO�UÔ0ØŒH�QŒK˜œ !œ b¤h¨q¤k°A¡oñ7ô 7ˆð ŒfˆØŒK˜!‰O˜bœh qœkÑ)ˆà�Š‰
Œ
ˆ
Ø×Ò˜w­¨a©¬µ%¸±(´(Ñ;Ô;Ð;Ø�	Š	‰ŒˆØ�Š‰Œˆˆˆr-   Fc	                 óÞ  — |r|                       ||||||¦  «         d S |j        }	|	                     ¦   «          |	                     ||¦  «         |	                     ¦   «           |	j        t          |¦  «        Ž  |	                     |                      | 	                    ¦   «         ¦  «        ¦  «         t          j        ¦   «         }
|
                     t          j        d         rt          j        nt          j        ¦  «         |	                     |
¦  «         |r(|	                     t'          j        | ¦  «        ¦  «         |	                     |¦  «         |	                     ¦   «          d S )Nztext.antialiased)Ú_draw_mathtextr#   r|   r   rY   Úselect_font_facerA   Úset_font_sizeÚpoints_to_pixelsÚget_size_in_pointsr:   ÚFontOptionsÚset_antialiasÚmplÚrcParamsÚANTIALIAS_DEFAULTÚANTIALIAS_NONEÚset_font_optionsÚrotater   Údeg2radÚ	show_textr]   )rQ   rH   r‘   r’   Úsr4   ÚangleÚismathÚmtextr#   Úoptss              r+   Ú	draw_textzRendererCairo.draw_textÆ   sQ  € ð
 ð 	Ø×Ò  A q¨!¨T°5Ñ9Ô9Ð9Ð9Ð9ð ”&ˆCØ�LŠL‰NŒNˆNØ�KŠK˜˜1ÑÔÐà�HŠH‰JŒJˆJØ ˆCÔ Õ"AÀ$Ñ"GÔ"GÐHÐHØ×Ò˜d×3Ò3°D×4KÒ4KÑ4MÔ4MÑNÔNÑOÔOÐOÝÔ$Ñ&Ô&ˆDØ×ÒÝ+.¬<Ð8JÔ+Kð *•Ô'Ð'ÝÔ)ñ+ô +ð +ð × Ò  Ñ&Ô&Ð&Øð /Ø—
’
�2œ: u fÑ-Ô-Ñ.Ô.Ð.Ø�MŠM˜!ÑÔÐØ�KŠK‰MŒMˆMˆMˆMr-   c                 óJ  — |j         }| j        j                             || j        |¦  «        \  }}	}
}}|                     ¦   «          |                     ||¦  «         |r(|                     t          j	        | ¦  «        ¦  «         |D ]¡\  }}}}}| 
                    ¦   «          |                     || ¦  «          |j        t          t          |¦  «        ¦  «        Ž  |                     |                      |¦  «        ¦  «         |                     t%          |¦  «        ¦  «         Œ¢|D ]`\  }}}}| 
                    ¦   «          |                     || || ¦  «         |                     ddd¦  «         |                     ¦   «          Œa|                     ¦   «          d S ©Nr   )r#   Ú
_text2pathÚmathtext_parserÚparserF   rY   r{   r­   r   r®   r|   r   r¢   rA   r   r£   r¤   r¯   ÚchrÚ	rectangleÚset_source_rgbro   r]   )rQ   rH   r‘   r’   r°   r4   r±   r#   rI   rJ   ÚdescentÚglyphsÚrectsÚfontÚfontsizeÚidxÚoxÚoyÚwÚhs                       r+   r¡   zRendererCairo._draw_mathtextà   sœ  € ØŒfˆàŒOÔ+×1Ò1°!°T´X¸tÑDÔDñ 	.ˆˆv�w ¨ð 	�Š‰
Œ
ˆ
Ø�Š�a˜ÑÔÐØð 	+Ø�JŠJ•r”z 5 &Ñ)Ô)Ñ*Ô*Ð*à+1ð 	$ð 	$Ñ'ˆD�(˜C  RØ�LŠL‰NŒNˆNØ�KŠK˜˜R˜CÑ Ô Ð Ø ˆCÔ Ý0µÀÑ1FÔ1FÑGÔGðIð Ià×Ò˜d×3Ò3°HÑ=Ô=Ñ>Ô>Ð>Ø�MŠM�#˜c™(œ(Ñ#Ô#Ð#Ð#à!ð 	 ð 	 ‰LˆB��A�qØ�LŠL‰NŒNˆNØ�MŠM˜"˜r˜c 1 q bÑ)Ô)Ð)Ø×Ò˜q ! QÑ'Ô'Ð'Ø×ÒÑÔÐÐà�Š‰Œˆˆˆr-   c                 ó   — | j         | j        fS rg   rj   ©rQ   s    r+   Úget_canvas_width_heightz%RendererCairo.get_canvas_width_heightú   s   € àŒz˜4œ;Ð&Ð&r-   c                 ó
  •— |dk    r#t          ¦   «                              |||¦  «        S |r/| j        j                             || j        |¦  «        ^}}}}|||fS | j        }|                     ¦   «           |j        t          |¦  «        Ž  | 
                    |                      |                     ¦   «         ¦  «        ¦  «         |                     |¦  «        dd…         \  }	}
}|                     ¦   «          |
|||	z   fS )NÚTeXr   r•   )rO   Úget_text_width_height_descentr¸   r¹   rº   rF   rN   rY   r¢   rA   r£   r¤   r¥   Útext_extentsr]   )rQ   r°   r4   r²   rI   rJ   r¾   Ú_r#   Ú	y_bearingrÆ   rÇ   rR   s               €r+   rÍ   z+RendererCairo.get_text_width_height_descentþ   s  ø€ ð �UŠ?ˆ?Ý‘7”7×8Ò8¸¸DÀ&ÑIÔIÐIàð 	*à”Ô/×5Ò5°a¸¼À4ÑHÔHð 'ˆE�6˜7 Qà˜& 'Ð)Ð)àŒmˆð 	�Š‰
Œ
ˆ
ØˆÔÕ=¸dÑCÔCÐDÐDØ×Ò˜$×/Ò/°×0GÒ0GÑ0IÔ0IÑJÔJÑKÔKÐKà×*Ò*¨1Ñ-Ô-¨a°¨cÔ2‰ˆ	�1�aØ�Š‰Œˆà�!�Q˜‘]Ð"Ð"r-   c                 ó|   — | j         j                             ¦   «          d| j         _        d| j         _        | j         S )Nr   F)rH   r#   rY   Ú_alphaÚ_forced_alpharÉ   s    r+   Únew_gczRendererCairo.new_gc  s2   € àŒŒ×ÒÑÔÐØˆŒŒØ %ˆŒÔØŒwˆr-   c                 ó   — |dz  | j         z  S )NéH   )rF   )rQ   r&   s     r+   r¤   zRendererCairo.points_to_pixels  s   € à˜‰{˜TœXÑ%Ð%r-   rg   )FN)Ú__name__Ú
__module__Ú__qualname__rP   rc   r   Ú
deprecatedrh   rk   rt   r€   r“   rŸ   rµ   r¡   rÊ   rÍ   rÔ   r¤   Ú__classcell__©rR   s   @r+   rC   rC   K   sY  ø€ € € € € ðð ð ð ð ð'ð 'ð 'ð$ €T„_�U¨Ð6Ñ6Ô6ð-ð -ñ 7Ô6ð-ð €T„_�UÑÔðð ñ Ôðð	ð 	ð 	ðAð Að Að Að "ð.Eð .Eð .Eð .Eð`ð ð ðð ð ð ð4ð ð ð4'ð 'ð 'ð#ð #ð #ð #ð #ð0ð ð ð&ð &ð &ð &ð &ð &ð &r-   rC   c                   ó¾   ‡ — e Zd Zej        ej        ej        dœZej        ej	        ej
        dœZˆ fd„Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zdˆ fd„	Zd„ Zd„ Zd„ Zˆ xZS )rG   )ÚbevelÚmiterÚround)ÚbuttÚ
projectingrà   c                 óV   •— t          ¦   «                              ¦   «          || _        d S rg   )rO   rP   rE   )rQ   rE   rR   s     €r+   rP   zGraphicsContextCairo.__init__/  s$   ø€ Ý‰Œ×ÒÑÔÐØ ˆŒˆˆr-   c                 ó8   — | j                              ¦   «          d S rg   )r#   r]   rÉ   s    r+   r]   zGraphicsContextCairo.restore3  s   € ØŒ×ÒÑÔÐÐÐr-   c                 ót  •— t          ¦   «                              |¦  «         |                      ¦   «         }| j        }|                      ¦   «         r1| j                             |d         |d         |d         |¦  «         d S | j                             |d         |d         |d         |d         ¦  «         d S )Nr   r   r   r   )rO   Ú	set_alphar}   Ú_rgbr~   r#   rn   )rQ   rr   rÒ   ÚrgbrR   s       €r+   ræ   zGraphicsContextCairo.set_alpha6  s¦   ø€ Ý‰Œ×Ò˜%Ñ Ô Ð Ø—’Ñ!Ô!ˆØŒiˆØ× Ò Ñ"Ô"ð 	EØŒH×$Ò$ S¨¤V¨S°¬V°S¸´V¸VÑDÔDÐDÐDÐDàŒH×$Ò$ S¨¤V¨S°¬V°S¸´V¸SÀ¼VÑDÔDÐDÐDÐDr-   c                 ój   — | j                              |rt          j        nt          j        ¦  «         d S rg   )r#   r§   r:   rª   r«   )rQ   r*   s     r+   Úset_antialiasedz$GraphicsContextCairo.set_antialiased?  s>   € ØŒ×ÒØ'(ÐB�EÔ#Ð#­eÔ.Bñ	Dô 	Dð 	Dð 	Dð 	Dr-   c                 óz   — | j                              t          j        | j        |¬¦  «        ¦  «         || _        d S )N)Úcapstyle)r#   Úset_line_capr   Úcheck_getitemÚ_capdÚ	_capstyle)rQ   Úcss     r+   Úset_capstylez!GraphicsContextCairo.set_capstyleC  s5   € ØŒ×Ò�dÔ0°´ÀbÐIÑIÔIÑJÔJÐJØˆŒˆˆr-   c                 óø   — |sd S t          j        |j        ¦  «        \  }}}}| j        }|                     ¦   «          |                     || j        j        |z
  |z
  ||¦  «         |                     ¦   «          d S rg   )	r   rà   Úboundsr#   r|   r¼   rE   rJ   r   )rQ   r¼   r‘   r’   rÆ   rÇ   r#   s          r+   Úset_clip_rectanglez'GraphicsContextCairo.set_clip_rectangleG  su   € Øð 	ØˆFÝ”X˜iÔ.Ñ/Ô/‰
ˆˆ1ˆa�ØŒhˆØ�Š‰ŒˆØ�Š�a˜œÔ-°Ñ1°AÑ5°q¸!Ñ<Ô<Ð<Ø�Š‰
Œ
ˆ
ˆ
ˆ
r-   c                 óB  — |sd S |                      ¦   «         \  }}| j        }|                     ¦   «          |t          ¦   «                              dd¦  «                             d| j        j        ¦  «        z   }t          |||¦  «         | 	                    ¦   «          d S rv   )
Úget_transformed_path_and_affiner#   r|   r   rz   r{   rE   rJ   r,   r   )rQ   r$   ÚtpathÚaffiner#   s        r+   Úset_clip_pathz"GraphicsContextCairo.set_clip_pathP  s’   € Øð 	ØˆFØ×<Ò<Ñ>Ô>‰ˆˆvØŒhˆØ�Š‰ŒˆØÝ‘J”J×$Ò$ Q¨Ñ+Ô+×5Ò5°a¸¼Ô9MÑNÔNñOˆå�S˜% Ñ(Ô(Ð(Ø�Š‰
Œ
ˆ
ˆ
ˆ
r-   c           	      óú   — ||f| _         |€| j                             g d¦  «         d S | j                             t          | j                             t          j        |¦  «        ¦  «        ¦  «        |¦  «         d S r·   )Ú_dashesr#   Úset_dashÚlistrE   r¤   r   r   )rQ   ÚoffsetÚdashess      r+   Ú
set_dasheszGraphicsContextCairo.set_dashes[  s|   € Ø˜v�~ˆŒØˆ>ØŒH×Ò˜b !Ñ$Ô$Ð$Ð$Ð$àŒH×ÒÝ�T”]×3Ò3µB´J¸vÑ4FÔ4FÑGÔGÑHÔHØñô ð ð ð r-   Nc                 óÐ   •— t          ¦   «                              ||¦  «         t          | j        ¦  «        dk    r | j        j        | j        Ž  d S  | j        j        | j        Ž  d S ©Nr   )rO   Úset_foregroundrm   rç   r#   r½   rn   )rQ   ÚfgÚisRGBArR   s      €r+   r  z#GraphicsContextCairo.set_foregroundd  sd   ø€ Ý‰Œ×Ò˜r 6Ñ*Ô*Ð*ÝˆtŒy‰>Œ>˜QÒÐØ#ˆDŒHÔ# T¤YÐ/Ð/Ð/Ð/à$ˆDŒHÔ$ d¤iÐ0Ð0Ð0Ð0r-   c                 óh   — | j                              ¦   «                              ¦   «         d d…         S r  )r#   Ú
get_sourceÚget_rgbarÉ   s    r+   Úget_rgbzGraphicsContextCairo.get_rgbk  s+   € ØŒx×"Ò"Ñ$Ô$×-Ò-Ñ/Ô/°°°Ô3Ð3r-   c                 óz   — | j                              t          j        | j        |¬¦  «        ¦  «         || _        d S )N)Ú	joinstyle)r#   Úset_line_joinr   rî   Ú_joindÚ
_joinstyle)rQ   Újss     r+   Úset_joinstylez"GraphicsContextCairo.set_joinstylen  s5   € ØŒ×Ò�tÔ1°$´+ÈÐLÑLÔLÑMÔMÐMØˆŒˆˆr-   c                 ó’   — t          |¦  «        | _        | j                             | j                             |¦  «        ¦  «         d S rg   )rœ   Ú
_linewidthr#   Úset_line_widthrE   r¤   )rQ   rÆ   s     r+   Úset_linewidthz"GraphicsContextCairo.set_linewidthr  s;   € Ý ™(œ(ˆŒØŒ×Ò ¤× >Ò >¸qÑ AÔ AÑBÔBÐBÐBÐBr-   rg   )r×   rØ   rÙ   r:   ÚLINE_JOIN_BEVELÚLINE_JOIN_MITERÚLINE_JOIN_ROUNDr  ÚLINE_CAP_BUTTÚLINE_CAP_SQUAREÚLINE_CAP_ROUNDrï   rP   r]   ræ   rê   rò   rõ   rú   r  r  r
  r  r  rÛ   rÜ   s   @r+   rG   rG   "  sC  ø€ € € € € àÔ'ØÔ'ØÔ'ðð €Fð Ô*ØÔ,ØÔ+ðð €Eð!ð !ð !ð !ð !ðð ð ðEð Eð Eð Eð EðDð Dð Dðð ð ðð ð ð	ð 	ð 	ðð ð ð1ð 1ð 1ð 1ð 1ð 1ð4ð 4ð 4ðð ð ðCð Cð Cð Cð Cð Cð Cr-   rG   c                   ó   — e Zd Zd„ ZdS )Ú_CairoRegionc                 ó"   — || _         || _        d S rg   )Ú_slicesÚ_data)rQ   Úslicesr™   s      r+   rP   z_CairoRegion.__init__x  s   € ØˆŒØˆŒ
ˆ
ˆ
r-   N)r×   rØ   rÙ   rP   © r-   r+   r  r  w  s#   € € € € € ðð ð ð ð r-   r  c                   óà   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	e	Z
d„ Zdd	œd
„Z ej        ed¦  «        Z ej        ed¦  «        Z ej        ed¦  «        Z ej        ed¦  «        ZdS )ÚFigureCanvasCairoc                 ól   — t          | d¦  «        st          | j        j        ¦  «        | _        | j        S )NÚ_cached_renderer)rX   rC   ÚfigurerF   r&  rÉ   s    r+   Ú	_rendererzFigureCanvasCairo._renderer~  s5   € õ �tÐ/Ñ0Ô0ð 	CÝ$1°$´+´/Ñ$BÔ$BˆDÔ!ØÔ$Ð$r-   c                 ó   — | j         S rg   )r(  rÉ   s    r+   Úget_rendererzFigureCanvasCairo.get_rendererˆ  s
   € ØŒ~Ðr-   c           	      ó¸  — | j         j        j                             ¦   «         }t	          |t
          j        ¦  «        st          d¦  «        ‚|                     ¦   «         }| 	                    ¦   «         }t          j        |j        ¦  «        }t          j        |j        ¦  «        }t          j        ||j        z
  ¦  «        }t          j        ||j        z
  ¦  «        }d|k    r2||k    r,|j        |j        k    rd|k    r||k    r|j        |j        k    st#          d¦  «        ‚t%          ||t'          ||z
  d¦  «        z   ¦  «        t%          ||t'          ||z
  d¦  «        z   ¦  «        f}	t)          j        |                     ¦   «         t(          j        ¦  «                             ||f¦  «        |	                              ¦   «         }
t5          |	|
¦  «        S )Nz;copy_from_bbox only works when rendering to an ImageSurfacer   zInvalid bbox)r(  rH   r#   rW   Ú
isinstancer:   rL   ÚRuntimeErrorrT   rU   ÚmathÚceilÚx0Úfloorr‰   rŠ   Úy0Ú
ValueErrorÚsliceÚmaxr   Ú
frombufferÚget_dataÚuint32ÚreshapeÚcopyr  )rQ   Úbboxr^   ÚswÚshr0  r‰   r2  rŠ   Úslsr™   s              r+   Úcopy_from_bboxz FigureCanvasCairo.copy_from_bbox‹  s–  € Ø”.Ô#Ô'×2Ò2Ñ4Ô4ˆÝ˜'¥5Ô#5Ñ6Ô6ð 	OÝØMñOô Oð Oà×ÒÑ Ô ˆØ×ÒÑ!Ô!ˆÝŒY�t”wÑÔˆÝŒZ˜œÑ Ô ˆÝŒY�r˜DœG‘|Ñ$Ô$ˆÝŒZ˜˜TœW™Ñ%Ô%ˆØ�R’�˜B "šH˜H¨¬°D´GÒ);Ð);Ø˜’G�G  b¢ ¨T¬W¸¼Ò-?Ð-?Ý˜^Ñ,Ô,Ð,Ý�B˜�S  b¡¨!™_œ_Ñ,Ñ-Ô-­u°R¸½cÀ"ÀrÁ'È1¹o¼oÑ9MÑ/NÔ/NÐNˆÝ”˜g×.Ò.Ñ0Ô0µ"´)Ñ<Ô<ß’˜"˜b˜Ñ"Ô" 3ô(ß(,ª©¬ð 	å˜C Ñ&Ô&Ð&r-   c                 óB  — | j         j        j                             ¦   «         }t	          |t
          j        ¦  «        st          d¦  «        ‚|                     ¦   «          | 	                    ¦   «         }| 
                    ¦   «         }|j        \  }}|j        t          j        |                     ¦   «         t          j        ¦  «                             ||f¦  «        ||f<   |                     |j        |j        |j        |j        z
  |j        |j        z
  ¦  «         d S )Nz;restore_region only works when rendering to an ImageSurface)r(  rH   r#   rW   r,  r:   rL   r-  ÚflushrT   rU   r  r   r   r6  r7  r8  r9  Úmark_dirty_rectangleÚstartÚstop)rQ   Úregionr^   r<  r=  ÚslyÚslxs          r+   Úrestore_regionz FigureCanvasCairo.restore_regionž  s	  € Ø”.Ô#Ô'×2Ò2Ñ4Ô4ˆÝ˜'¥5Ô#5Ñ6Ô6ð 	OÝØMñOô Oð Oà�Š‰ŒˆØ×ÒÑ Ô ˆØ×ÒÑ!Ô!ˆØ”>‰ˆˆSà)/¬õ 
Œ�w×'Ò'Ñ)Ô)­2¬9Ñ	5Ô	5ß
Š'�2�r�(Ñ
Ô
˜C ˜Hñ
&à×$Ò$ØŒI�s”y #¤(¨S¬YÑ"6¸¼À3Ä9Ñ8Lñ	Nô 	Nð 	Nð 	Nð 	Nr-   c                 óT   — |                       ¦   «                              |¦  «         d S rg   )Ú_get_printed_image_surfaceÚwrite_to_png)rQ   Úfobjs     r+   Ú	print_pngzFigureCanvasCairo.print_png¬  s(   € Ø×'Ò'Ñ)Ô)×6Ò6°tÑ<Ô<Ð<Ð<Ð<r-   c           	      ó  — |                       ¦   «         \  }}|                      ¦   «                              ¦   «         }|                     t	          j        t          j        |¦  «                             ||df¦  «        ¦  «        ¦  «         d S )Nr•   )	Úget_width_heightrJ  r7  Úwriter   Ú._premultiplied_argb32_to_unmultiplied_rgba8888r   r   r9  )rQ   rL  rI   rJ   Úbufs        r+   Ú
print_rgbazFigureCanvasCairo.print_rgba¯  sƒ   € Ø×-Ò-Ñ/Ô/‰ˆˆvØ×-Ò-Ñ/Ô/×8Ò8Ñ:Ô:ˆØ�
Š
•5ÔGÝŒJ�s‰OŒO×#Ò# U¨F°AÐ$6Ñ7Ô7ñ9ô 9ñ 	:ô 	:ð 	:ð 	:ð 	:r-   c                 ó6  — | j         j        | j        _        |                      ¦   «         \  }}t	          j        t          j        ||¦  «        }| j                             t	          j        |¦  «        ¦  «         | j          	                    | j        ¦  «         |S rg   )
r'  rF   r(  rO  r:   rL   rM   rc   rK   Údraw)rQ   rI   rJ   r^   s       r+   rJ  z,FigureCanvasCairo._get_printed_image_surface·  sy   € Ø!œ[œ_ˆŒÔØ×-Ò-Ñ/Ô/‰ˆˆvÝÔ$¥UÔ%8¸%ÀÑHÔHˆØŒ×"Ò"¥5¤=°Ñ#9Ô#9Ñ:Ô:Ð:ØŒ×Ò˜œÑ(Ô(Ð(Øˆr-   Úportrait)Úorientationc                óÂ  — d}|| j         _        | j                              ¦   «         \  }}||z  ||z  }}|dk    r||}}|dk    r;t          t          d¦  «        st          d¦  «        ‚t	          j        |||¦  «        }	nê|dk    r;t          t          d¦  «        st          d¦  «        ‚t	          j        |||¦  «        }	n©|d	v rƒt          t          d
¦  «        st          d¦  «        ‚|dk    rBt          |t          ¦  «        rt          j        |d¦  «        }nt          j        d d|¬¦  «        }t	          j        |||¦  «        }	n"t          d                     |¦  «        ¦  «        ‚| j         j        | j        _        | j                             t	          j        |	¦  «        ¦  «         | j        j        j        }
|dk    r9|
                     t*          j        dz  ¦  «         |
                     d| ¦  «         | j                              | j        ¦  «         |
                     ¦   «          |	                     ¦   «          |dk    r|                     ¦   «          d S d S )NrÖ   Ú	landscapeÚpsÚ	PSSurfacez3cairo has not been compiled with PS support enabledÚpdfÚ
PDFSurfacez4cairo has not been compiled with PDF support enabled)ÚsvgÚsvgzÚ
SVGSurfacez4cairo has not been compiled with SVG support enabledr_  Úwb)ÚfileobjzUnknown format: {!r}r   r   )r'  rF   Úget_size_inchesrX   r:   r-  r[  r]  r,  ÚstrÚgzipÚGzipFiler`  r3  Úformatr(  rc   rK   rH   r#   r­   r   Úpir{   rU  Ú	show_pageÚfinishÚclose)rQ   ÚfmtrL  rW  rF   Úw_inÚh_inÚwidth_in_pointsÚheight_in_pointsr^   r#   s              r+   Ú_savezFigureCanvasCairo._save¿  s`  € ð ˆØˆŒŒØ”[×0Ò0Ñ2Ô2‰
ˆˆdØ,0°3©J¸¸s¹
Ð)ˆà˜+Ò%Ð%à  /ð .ˆOð �$Š;ˆ;Ý�5 +Ñ.Ô.ð 6Ý"ð $5ñ 6ô 6ð 6å”o d¨OÐ=MÑNÔNˆGˆGØ�EŠ\ˆ\Ý�5 ,Ñ/Ô/ð 6Ý"ð $5ñ 6ô 6ð 6åÔ& t¨_Ð>NÑOÔOˆGˆGØ�OÐ#Ð#Ý�5 ,Ñ/Ô/ð 6Ý"ð $5ñ 6ô 6ð 6à�fŠ}ˆ}Ý˜d¥CÑ(Ô(ð CÝœ=¨¨tÑ4Ô4�D�Dåœ=¨¨t¸TÐBÑBÔB�DÝÔ& t¨_Ð>NÑOÔOˆGˆGåÐ3×:Ò:¸3Ñ?Ô?Ñ@Ô@Ð@à!œ[œ_ˆŒÔØŒ×"Ò"¥5¤=°Ñ#9Ô#9Ñ:Ô:Ð:ØŒnÔÔ#ˆà˜+Ò%Ð%Ø�JŠJ•r”u˜q‘yÑ!Ô!Ð!Ø�MŠM˜!Ð.Ð.Ñ/Ô/Ð/ð 	Œ×Ò˜œÑ(Ô(Ð(à�Š‰ŒˆØ�ŠÑÔÐØ�&Š=ˆ=Ø�JŠJ‰LŒLˆLˆLˆLð ˆ=r-   r\  rZ  r^  r_  N)r×   rØ   rÙ   Úpropertyr(  r*  r?  rH  rM  rS  Ú	print_rawrJ  rq  Ú	functoolsÚpartialmethodÚ	print_pdfÚprint_psÚ	print_svgÚ
print_svgzr"  r-   r+   r$  r$  }  sü   € € € € € Øð%ð %ñ „Xð%ðð ð ð'ð 'ð 'ð&Nð Nð Nð=ð =ð =ð:ð :ð :ð €Iðð ð ð /9ð 1ð 1ð 1ð 1ð 1ðf (�	Ô'¨¨uÑ5Ô5€IØ&ˆyÔ& u¨dÑ3Ô3€HØ'�	Ô'¨¨uÑ5Ô5€IØ(�Ô(¨°Ñ7Ô7€J€J€Jr-   r$  rd   c                   ó   — e Zd Zd„ ZdS )Ú_RendererGTKCairoc                 ó0  — t           j        dk    ryt          |t           j        ¦  «        s_t           j                             t           j                             dt          |¦  «        t          j	        z   ¦  «        d         d¬¦  «        }|| j
        _        d S )NÚ	cairocffiz
cairo_t **r   T)Úincref)r:   r×   r,  rK   Ú_from_pointerÚffiÚcastÚidÚobjectÚ__basicsize__rH   r#   )rQ   r#   s     r+   rc   z_RendererGTKCairo.set_contextú  s‚   € ÝŒN˜kÒ)Ð)Ý" 3­¬Ñ6Ô6ð *å”-×-Ò-Ý”	—’Ø Ý�s‘G”G�fÔ2Ñ2ñ4ô 4à45ô7ð ð	 .ñ ô ˆCð
 ˆŒŒˆˆr-   N)r×   rØ   rÙ   rc   r"  r-   r+   r{  r{  ø  s#   € € € € € ðð ð ð ð r-   r{  c                   ó$   — e Zd Zej        ZeZeZ	dS )Ú_BackendCairoN)
r×   rØ   rÙ   r:   ÚversionÚbackend_versionr$  ÚFigureCanvasr   ÚFigureManagerr"  r-   r+   r†  r†    s   € € € € € à”m€OØ$€LØ%€M€M€Mr-   r†  rg   )'Ú__doc__rt  re  r.  Únumpyr   r:   Úversion_infoÚImportErrorr}  ÚerrÚ
matplotlibr¨   Ú r   r   r   Úmatplotlib.backend_basesr	   r
   r   r   r   Úmatplotlib.font_managerr   Úmatplotlib.pathr   Úmatplotlib.transformsr   r,   rA   rC   rG   r  r$  rÚ   r{  Úexportr†  r"  r-   r+   ú<module>r—     sñ  ððð ð Ð Ð Ð Ø €€€Ø €€€à Ð Ð Ð ð
%Ø€L€L€LØÔ˜JÒ&Ð&ØÐð 'øàð %ð %ð %ð%Ø!Ð!Ð!Ð!Ð!øØð %ð %ð %Øˆkðñô à!$ð	%øøøøð%øøøð 	"Ð!ð%øøøð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *ð"ð "ð "ð "ð$ð ð ð(T&ð T&ð T&ð T&ð T&�Lñ T&ô T&ð T&ðnRCð RCð RCð RCð RCÐ.ñ RCô RCð RCðjð ð ð ð ñ ô ð ðx8ð x8ð x8ð x8ð x8Ð(ñ x8ô x8ð x8ðv €„�ÑÔð	ð 	ð 	ð 	ð 	˜ñ 	ô 	ñ Ôð	ð 
„ð&ð &ð &ð &ð &�Hñ &ô &ñ „ð&ð &ð &s.   ”& ¦A¬1°A±A¶AÁAÁAÁA