ó
    {ñ:iºH  ã                   óÄ  • S r SSKrSSKrSSKrSSKr SSKr\R                  S:  a  \" S\R                   S35      e SSKJrJrJr  SS	KJrJrJrJrJr  SS
KJr  SSKJr  SSKJr  S rSS jrS r " S S\5      r " S S\5      r " S S5      r  " S S\5      r!\RD                   " S S\5      5       r#g! \ a     SSK	r Nˆ! \ a  r
\" S5      \
eSr
C
ff = ff = f)z�
A Cairo backend for Matplotlib
==============================
:Author: Steve Chaplin and others

This backend depends on cairocffi or pycairo.
é    N)é   é   r   z/Cairo backend requires cairo>=1.14.0, but only z is availablezEcairo backend requires that pycairo>=1.14.0 or cairocffi is installedé   )Ú_apiÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚttfFontProperty)ÚPath)ÚAffine2Dc                 ó~   • [        U5      S:X  d  U(       a  U R                  " / US S QUP76   g U R                  " U6   g ©Né   )ÚlenÚset_source_rgba)ÚctxÚcolorÚalphaÚforced_alphas       Úd/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_cairo.pyÚ	_set_rgbar   %   s9   € Ü
ˆ5ƒz�Qƒž,Ø×ÒÐ.˜U 2 A˜YÐ.¨Ô.à×Ò˜UÒ#ó    c                 óJ  • UR                  USUS9 GH  u  pEU[        R                  :X  a  U R                  " U6   M+  U[        R                  :X  a  U R                  5         MQ  U[        R                  :X  a  U R                  " U6   Mv  U[        R                  :X  a^  [        R                  " U R                  5       5      nUS S nUSS  nU R                  " / US-  US-  S-  -   QUS-  S-  US-  -   QUQ76   Mè  U[        R                  :X  d  Mþ  U R                  " U6   GM     g )NT)Úremove_nansÚclipr   éþÿÿÿr   )Úiter_segmentsr   ÚMOVETOÚmove_toÚ	CLOSEPOLYÚ
close_pathÚLINETOÚline_toÚCURVE3ÚnpÚasarrayÚget_current_pointÚcurve_toÚCURVE4)	r   ÚpathÚ	transformr   ÚpointsÚcodeÚcurÚaÚbs	            r   Ú_append_pathr5   ,   s÷   € Ø×*Ñ*Ø 4¨dð +ô 4‰ˆà”4—;‘;ÓØ�KŠK˜Ó Ø”T—^‘^Ó#Ø�N‰NÖØ”T—[‘[Ó Ø�KŠK˜Ó Ø”T—[‘[Ó Ü—*’*˜S×2Ñ2Ó4Ó5ˆCØ�r˜�
ˆAØ�r�s�ˆAØ�LŠLÐJ˜3 ™7 Q¨¡U¨Q¡YÑ.ÐJ°1°q±5¸1±9¸qÀ1¹uÑ3DÐJÈÕJØ”T—[‘[Õ Ø�LŠL˜&Ô!ò4r   c                 ó  ^ • U 4S jnU" S5      n[        [        SU" S5      R                  5        35      nU" S5      n[        R                  R                  XD5      S:  a  [        R                  O[        R                  nX#U4$ )zo
Convert a `.FontProperties` or a `.FontEntry` to arguments that can be
passed to `.Context.select_font_face`.
c                 óf   >•  [        TSU  35      " 5       $ ! [         a    [        TU 5      s $ f = f)NÚget_)ÚgetattrÚAttributeError)ÚfieldÚprops    €r   ÚattrÚ-_cairo_font_args_from_font_prop.<locals>.attrC   s:   ø€ ð	(Ü˜4 4¨ w Ô0Ó2Ð2øÜó 	(Ü˜4 Ó'Ò'ð	(ús   ƒ —0¯0ÚnameÚFONT_SLANT_ÚstyleÚweighti&  )r9   ÚcairoÚupperr   Úweight_dictÚgetÚFONT_WEIGHT_NORMALÚFONT_WEIGHT_BOLD)r<   r=   r?   ÚslantrB   s   `    r   Ú_cairo_font_args_from_font_proprJ   >   s|   ø€ õ
(ñ �‹<€DÜ”E˜[©¨g«×)<Ñ)<Ó)>Ð(?Ð@ÓA€EÙ�(‹^€Fä×)Ñ)×-Ñ-¨fÓ=ÀÓCô ×&Ò&ä×)Ñ)ð ð ˜ÐÐr   c                   óˆ   ^ • \ rS rSrU 4S jrS r\S 5       rSS jr SS jr	S r
SS jrS	 rS
 rU 4S jrS rS rSrU =r$ )ÚRendererCairoéR   c                 óä   >• Xl         [        U S9U l        S U l        S U l        [
        R                  " [
        R                  " [
        R                  SS5      5      U l	        [        TU ]-  5         g )N)Úrendererr   )ÚdpiÚGraphicsContextCairoÚgcÚwidthÚheightrC   ÚContextÚImageSurfaceÚFORMAT_ARGB32Útext_ctxÚsuperÚ__init__)ÚselfrP   Ú	__class__s     €r   rZ   ÚRendererCairo.__init__S   sU   ø€ ØŒÜ&°Ñ5ˆŒØˆŒ
ØˆŒÜŸšÜ×Òœe×1Ñ1°1°aÓ8ó:ˆŒä‰ÑÕr   c                 ó
  • UR                  5       n[        US5      (       a2  [        US5      (       a!  UR                  5       UR                  5       4nO‘[        US5      (       a)  UR	                  5       nUR
                  UR                  4nOWUR                  5         UR                  5         UR                  5       tpVU(       a  [        S5      eUt  psUR                  5         XR                  l        Uu  U l        U l        g )NÚ	get_widthÚ
get_heightÚget_extentszCannot infer surface size)Ú
get_targetÚhasattrr_   r`   ra   rS   rT   ÚsaveÚ
reset_clipÚcopy_clip_rectangle_listÚ	TypeErrorÚrestorerR   r   )r[   r   ÚsurfaceÚsizeÚextÚrectÚrestÚ_s           r   Úset_contextÚRendererCairo.set_context\   sË   € Ø—.‘.Ó"ˆÜ�7˜K×(Ñ(¬W°W¸l×-KÑ-KØ×$Ñ$Ó&¨×(:Ñ(:Ó(<Ð<‰DÜ�W˜m×,Ñ,Ø×%Ñ%Ó'ˆCØ—9‘9˜cŸj™jÐ(‰Dà�H‰HŒJØ�N‰NÔØ×6Ñ6Ó8ˆKˆDÞÜÐ ;Ó<Ð<ØˆKˆAˆqØ�K‰KŒMØ�‰ŒØ"&ÑˆŒ
�D•Kr   c                 ó¢   • Ub<  U R                  5         [        XX#5        U R                  5         U R                  5         U R	                  5         g ©N)rd   r   Úfill_preserverh   Ústroke)r   Úfill_cr   Úalpha_overridess       r   Ú_fill_and_strokeÚRendererCairo._fill_and_stroken   s9   € àÑØ�H‰HŒJÜ�c 5Ô:Ø×ÑÔØ�K‰KŒMØ�
‰
�r   c                 ó  • UR                   nUc!  UR                  5       c  UR                  5       OS nU[        5       R	                  SS5      R                  SU R                  5      -   nUR                  5         [        XRX65        UbY  UR                  5         [        XTUR                  5       UR                  5       5        UR                  5         UR                  5         UR                  5       nU(       Gaƒ  [!        U R"                  5      nUR%                  5       R'                  [(        R*                  R,                  Xˆ5      n	[(        R.                  " U	5      n
[        X§[        5       R	                  Xˆ* 5      R                  SU5      S 5        U
R1                  U R3                  UR5                  5       5      5        U
R6                  " UR9                  5       6   U
R                  5         U
R;                  5         [(        R<                  " U	5      nUR?                  [(        R@                  RB                  5        UR                  5         URE                  U5        UR                  5         UR                  5         UR;                  5         g ©Nr   éÿÿÿÿr   )#r   Ú	get_hatchÚclip_extentsr   ÚscaleÚ	translaterT   Únew_pathr5   rd   r   Ú	get_alphaÚget_forced_alphars   rh   Úget_hatch_pathÚintrP   rb   Úcreate_similarrC   ÚContentÚCOLOR_ALPHArU   Úset_line_widthÚpoints_to_pixelsÚget_hatch_linewidthr   Úget_hatch_colorrt   ÚSurfacePatternÚ
set_extendÚExtendÚREPEATÚ
set_source)r[   rR   r.   r/   ÚrgbFacer   r   Ú
hatch_pathrP   Úhatch_surfaceÚ	hatch_ctxÚhatch_patterns               r   Ú	draw_pathÚRendererCairo.draw_pathw   sá  € à�f‰fˆð ‘? r§|¡|£~Ñ'=ð × Ñ Ô"àð 	ð Ü“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	à�‰ŒÜ�S 	Ô0ØÑØ�H‰HŒJÜ�c B§L¡L£N°B×4GÑ4GÓ4IÔJØ×ÑÔØ�K‰KŒMØ×&Ñ&Ó(ˆ
ßÜ�d—h‘h“-ˆCØŸN™NÓ,×;Ñ;Ü—‘×)Ñ)¨3ó5ˆMäŸš mÓ4ˆIÜ˜Ü!›×)Ñ)¨#¨tÓ4×>Ñ>¸qÀ#ÓFØôð ×$Ñ$ T×%:Ñ%:¸2×;QÑ;QÓ;SÓ%TÔUØ×%Ò% r×'9Ñ'9Ó';Ñ<Ø×#Ñ#Ô%Ø×ÑÔÜ!×0Ò0°Ó?ˆMØ×$Ñ$¤U§\¡\×%8Ñ%8Ô9Ø�H‰HŒJØ�N‰N˜=Ô)Ø×ÑÔØ�K‰KŒMØ�
‰
�r   c           	      ó�  • UR                   nUR                  5         [        XrU[        5       R	                  SS5      -   5        UR                  5       nUR                  5       u  p‰p«US:X  a  U	S:X  a  U
S:X  a  US:X  a  SnS nOSnU[        5       R	                  SS5      R                  SU R                  5      -   nUR                  5         [        UR                  USS95       H¦  u  nu  pï[        U5      (       d  M  USS  u  nnUR                  5         UR                  UU5        UR                  U5        UR                  5         U(       d  US-  S:X  d  Mw  U R                  XvUR!                  5       UR#                  5       5        M¨     U(       d0  U R                  XvUR!                  5       UR#                  5       5        g g )	Nr   r{   r   FT)Úsimplifyr    iè  )r   r€   r5   r   r~   Úcopy_path_flatÚfill_extentsr   rT   Ú	enumerater!   r   rd   Úappend_pathrh   rw   r�   r‚   )r[   rR   Úmarker_pathÚmarker_transr.   r/   r‘   r   Úx1Úy1Úx2Úy2ÚfilledÚiÚverticesÚcodesÚxÚys                     r   Údraw_markersÚRendererCairo.draw_markersœ   sŠ  € ð �f‰fˆØ�‰Œä�S |´h³j×6FÑ6FÀqÈ"Ó6MÑ'MÔNØ×(Ñ(Ó*ˆð ×)Ñ)Ó+‰ˆ�Ø�‹7�r˜Q“w 2¨£7¨r°Q«wØˆFà‰GàˆFàÜ“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	ð 	�‰ŒÜ$-Ø×"Ñ" 9°uÐ"Ð=ö%?Ñ ˆAÑ �ä�8�}‹}Ø  �}‘��1Ø—‘”
ð —‘˜a Ô#Ø—‘ Ô,à—‘”ö ˜Q ™X¨�]Ø×)Ñ)Ø b§l¡l£n°b×6IÑ6IÓ6KöMñ#%?ö* Ø×!Ñ!Ø˜bŸl™l›n¨b×.AÑ.AÓ.CõEð r   c                 ó"  • [         R                  " US S S2   5      n[        R                  R	                  UR                  5       R                  [        R                  UR                  S   UR                  S   UR                  S   S-  5      nUR                  nU R                  U-
  UR                  S   -
  nUR                  5         UR                  U[        U5      [        U5      5        UR                  5         UR                  5         g )Nr{   r   r   é   )r   Ú._unmultiplied_rgba8888_to_premultiplied_argb32rC   rV   Úcreate_for_dataÚravelÚdatarW   Úshaper   rT   rd   Úset_source_surfaceÚfloatÚpaintrh   )r[   rR   r¨   r©   Úimri   r   s          r   Ú
draw_imageÚRendererCairo.draw_imageÌ   sÂ   € Ü×AÒAÀ"ÁTÀrÀTÁ(ÓKˆÜ×$Ñ$×4Ñ4Ø�H‰H‹J�O‰OœU×0Ñ0Ø�H‰H�Q‰K˜Ÿ™ !™ b§h¡h¨q¡k°A¡oó7ˆð �f‰fˆØ�K‰K˜!‰O˜bŸh™h q™kÑ)ˆà�‰Œ
Ø×Ñ˜w¬¨a«´%¸³(Ô;Ø�	‰	ŒØ�‰�r   c	                 óf  • U(       a  U R                  XX4XV5        g UR                  n	U	R                  5         U	R                  X#5        U	R	                  5         U	R
                  " [        U5      6   U	R                  U R                  UR                  5       5      5        [        R                  " 5       n
U
R                  UR                  5       5        U	R                  U
5        U(       a&  U	R                  [         R"                  " U* 5      5        U	R%                  U5        U	R'                  5         g rr   )Ú_draw_mathtextr   r€   r#   rd   Úselect_font_facerJ   Úset_font_sizer‰   Úget_size_in_pointsrC   ÚFontOptionsÚset_antialiasÚget_antialiasedÚset_font_optionsÚrotater)   Údeg2radÚ	show_textrh   )r[   rR   r¨   r©   Úsr<   ÚangleÚismathÚmtextr   Úoptss              r   Ú	draw_textÚRendererCairo.draw_textÙ   sÚ   € ö
 Ø×Ñ  q¨TÕ9ð —&‘&ˆCØ�L‰LŒNØ�K‰K˜Ôà�H‰HŒJØ× Ò Ô"AÀ$Ó"GÑHØ×Ñ˜d×3Ñ3°D×4KÑ4KÓ4MÓNÔOÜ×$Ò$Ó&ˆDØ×Ñ˜r×1Ñ1Ó3Ô4Ø× Ñ  Ô&ÞØ—
‘
œ2Ÿ:š: u fÓ-Ô.Ø�M‰M˜!ÔØ�K‰K�Mr   c                 ó  • UR                   nU R                  R                  R                  X@R                  U5      u  p‰p«nUR                  5         UR                  X#5        U(       a&  UR                  [        R                  " U* 5      5        U H†  u  pÞnnnUR                  5         UR                  UU* 5        UR                  " [        [        U5      5      6   UR                  U R!                  U5      5        UR#                  [%        U5      5        Mˆ     U HQ  u  nnnnUR                  5         UR'                  UU* UU* 5        UR)                  SSS5        UR+                  5         MS     UR-                  5         g ©Nr   )r   Ú
_text2pathÚmathtext_parserÚparserP   rd   r   rÂ   r)   rÃ   r€   r#   r»   rJ   r   r¼   r‰   rÄ   ÚchrÚ	rectangleÚset_source_rgbrs   rh   )r[   rR   r¨   r©   rÅ   r<   rÆ   r   rS   rT   ÚdescentÚglyphsÚrectsÚfontÚfontsizeÚidxÚoxÚoyÚwÚhs                       r   rº   ÚRendererCairo._draw_mathtextñ   s2  € Ø�f‰fˆà�O‰O×+Ñ+×1Ñ1°!·X±X¸tÓDñ 	.ˆ�w¨ð 	�‰Œ
Ø�‰�aÔÞØ�J‰J”r—z’z 5 &Ó)Ô*ã+1Ñ'ˆD˜C  RØ�L‰LŒNØ�K‰K˜˜R˜CÔ Ø× Ò Ü0´ÀÓ1FÓGñIà×Ñ˜d×3Ñ3°HÓ=Ô>Ø�M‰Mœ#˜c›(Ö#ñ ,2ó "‰LˆB��A�qØ�L‰LŒNØ�M‰M˜"˜r˜c 1 q bÔ)Ø×Ñ˜q ! QÔ'Ø×ÑÖñ	 "ð 	�‰�r   c                 ó2   • U R                   U R                  4$ rr   )rS   rT   ©r[   s    r   Úget_canvas_width_heightÚ%RendererCairo.get_canvas_width_height  s   € à�z‰z˜4Ÿ;™;Ð&Ð&r   c                 óÈ  >• US:X  a  [         TU ]  XU5      $ U(       a6  U R                  R                  R	                  XR
                  U5      tpEpgXEU4$ U R                  nUR                  5         UR                  " [        U5      6   UR                  U R                  UR                  5       5      5        UR                  U5      SS u  pšnUR                  5         X«X¹-   4$ )NÚTeXr   r­   )rY   Úget_text_width_height_descentrÎ   rÏ   rÐ   rP   rX   rd   r»   rJ   r¼   r‰   r½   Útext_extentsrh   )r[   rÅ   r<   rÇ   rS   rT   rÔ   rn   r   Ú	y_bearingrÜ   rÝ   r\   s               €r   rå   Ú+RendererCairo.get_text_width_height_descent  sÎ   ø€ ð �U‹?Ü‘7Ñ8¸À&ÓIÐIæà—‘×/Ñ/×5Ñ5°a¿¹À4ÓHð 'ˆE˜7à 'Ð)Ð)à�m‰mˆð 	�‰Œ
Ø×ÒÔ=¸dÓCÑDØ×Ñ˜$×/Ñ/°×0GÑ0GÓ0IÓJÔKà×*Ñ*¨1Ó-¨a°Ð2‰ˆ	�aØ�‰Œà�Q‘]Ð"Ð"r   c                 óÈ   • U R                   R                  R                  5         SU R                   l        SU R                   l        S U R                   l        U R                   $ )Nr   F)rR   r   rd   Ú_alphaÚ_forced_alphaÚ_hatchrà   s    r   Únew_gcÚRendererCairo.new_gc'  sC   € à�‰�‰×ÑÔð
 ˆ�‰ŒØ %ˆ�‰ÔØˆ�‰ŒØ�w‰wˆr   c                 ó&   • US-  U R                   -  $ )NéH   )rP   )r[   r0   s     r   r‰   ÚRendererCairo.points_to_pixels3  s   € à˜‰{˜TŸX™XÑ%Ð%r   )rP   rR   rT   rX   rS   rr   )FN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rZ   ro   Ústaticmethodrw   r–   rª   r·   rÊ   rº   rá   rå   rí   r‰   Ú__static_attributes__Ú__classcell__©r\   s   @r   rL   rL   R   s[   ø† õò'ð$ ñó ðô#ðL "ô.Eò`ôò0ò4'õ#ò0
÷&ð &r   rL   c                   ó  ^ • \ rS rSr\R
                  \R                  \R                  S.r\R                  \R                  \R                  S.rU 4S jrS rU 4S jrS rS rS	 rS
 rS rS rSU 4S jjrS rS rS rSrU =r$ )rQ   i8  )ÚbevelÚmiterÚround)ÚbuttÚ
projectingrý   c                 ó.   >• [         TU ]  5         Xl        g rr   )rY   rZ   rO   )r[   rO   r\   s     €r   rZ   ÚGraphicsContextCairo.__init__E  s   ø€ Ü‰ÑÔØ �r   c                 ó8   • U R                   R                  5         g rr   )r   rh   rà   s    r   rh   ÚGraphicsContextCairo.restoreI  s   € Ø�‰×ÑÕr   c                 ó    >• [         TU ]  U5        [        U R                  U R                  U R                  5       U R                  5       5        g rr   )rY   Ú	set_alphar   r   Ú_rgbr�   r‚   )r[   r   r\   s     €r   r  ÚGraphicsContextCairo.set_alphaL  s:   ø€ Ü‰Ñ˜%Ô ÜØ�H‰H�d—i‘i §¡Ó!1°4×3HÑ3HÓ3Jõ	Lr   c                 óŽ   • U R                   R                  U(       a  [        R                  5        g [        R                  5        g rr   )r   r¿   rC   ÚANTIALIAS_DEFAULTÚANTIALIAS_NONE)r[   r4   s     r   Úset_antialiasedÚ$GraphicsContextCairo.set_antialiasedQ  s/   € Ø�‰×ÑÞ'(ŒE×#Ñ#õ	DÜ.3×.BÑ.Bõ	Dr   c                 ó6   • U R                   R                  5       $ rr   )r   Úget_antialiasrà   s    r   rÀ   Ú$GraphicsContextCairo.get_antialiasedU  s   € Ø�x‰x×%Ñ%Ó'Ð'r   c                 ó€   • U R                   R                  [        R                  " U R                  US95        Xl        g )N)Úcapstyle)r   Úset_line_capr   Úcheck_getitemÚ_capdÚ	_capstyle)r[   Úcss     r   Úset_capstyleÚ!GraphicsContextCairo.set_capstyleX  s*   € Ø�‰×Ñœd×0Ò0°·±ÀbÑIÔJØ�r   c                 ó
  • U(       d  g [         R                  " UR                  5      u  p#pEU R                  nUR	                  5         UR                  X R                  R                  U-
  U-
  XE5        UR                  5         g rr   )	r)   rý   Úboundsr   r€   rÒ   rO   rT   r   )r[   rÒ   r¨   r©   rÜ   rÝ   r   s          r   Úset_clip_rectangleÚ'GraphicsContextCairo.set_clip_rectangle\  s]   € ÞØÜ—X’X˜i×.Ñ.Ó/‰
ˆˆaØ�h‰hˆØ�‰ŒØ�‰�aŸ™×-Ñ-°Ñ1°AÑ5°qÔ<Ø�‰�
r   c                 ó*  • U(       d  g UR                  5       u  p#U R                  nUR                  5         U[        5       R	                  SS5      R                  SU R                  R                  5      -   n[        XBU5        UR                  5         g rz   )
Úget_transformed_path_and_affiner   r€   r   r~   r   rO   rT   r5   r   )r[   r.   ÚtpathÚaffiner   s        r   Úset_clip_pathÚ"GraphicsContextCairo.set_clip_pathe  sq   € ÞØØ×<Ñ<Ó>‰ˆØ�h‰hˆØ�‰ŒØÜ“J×$Ñ$ Q¨Ó+×5Ñ5°a¸¿¹×9MÑ9MÓNñOˆä�S Ô(Ø�‰�
r   c           	      óø   • X4U l         Uc  U R                  R                  / S5        g U R                  R                  [        U R                  R                  [        R                  " U5      5      5      U5        g rÍ   )Ú_dashesr   Úset_dashÚlistrO   r‰   r)   r*   )r[   ÚoffsetÚdashess      r   Ú
set_dashesÚGraphicsContextCairo.set_dashesp  sY   € Ø�~ˆŒØ‰>Ø�H‰H×Ñ˜b !Õ$à�H‰H×ÑÜ�T—]‘]×3Ñ3´B·J²J¸vÓ4FÓGÓHØõr   c                 óä   >• [         TU ]  X5        [        U R                  5      S:X  a$  U R                  R
                  " U R                  6   g U R                  R                  " U R                  6   g r   )rY   Úset_foregroundr   r  r   rÓ   r   )r[   ÚfgÚisRGBAr\   s      €r   r,  Ú#GraphicsContextCairo.set_foregroundy  sL   ø€ Ü‰Ñ˜rÔ*Üˆt�y‰y‹>˜QÓØ�H‰H×#Ò# T§Y¡YÒ/à�H‰H×$Ò$ d§i¡iÒ0r   c                 óX   • U R                   R                  5       R                  5       S S $ r   )r   Ú
get_sourceÚget_rgbarà   s    r   Úget_rgbÚGraphicsContextCairo.get_rgb€  s%   € Ø�x‰x×"Ñ"Ó$×-Ñ-Ó/°°Ð3Ð3r   c                 ó€   • U R                   R                  [        R                  " U R                  US95        Xl        g )N)Ú	joinstyle)r   Úset_line_joinr   r  Ú_joindÚ
_joinstyle)r[   Újss     r   Úset_joinstyleÚ"GraphicsContextCairo.set_joinstyleƒ  s*   € Ø�‰×Ñœt×1Ò1°$·+±+ÈÑLÔMØ�r   c                 óŒ   • [        U5      U l        U R                  R                  U R                  R                  U5      5        g rr   )r´   Ú
_linewidthr   rˆ   rO   r‰   )r[   rÜ   s     r   Úset_linewidthÚ"GraphicsContextCairo.set_linewidth‡  s.   € Ü ›(ˆŒØ�‰×Ñ §¡× >Ñ >¸qÓ AÕBr   )r  r$  r9  r>  rO   rr   )rò   ró   rô   rõ   rC   ÚLINE_JOIN_BEVELÚLINE_JOIN_MITERÚLINE_JOIN_ROUNDr8  ÚLINE_CAP_BUTTÚLINE_CAP_SQUAREÚLINE_CAP_ROUNDr  rZ   rh   r  r  rÀ   r  r  r!  r)  r,  r3  r;  r?  r÷   rø   rù   s   @r   rQ   rQ   8  s“   ø† à×'Ñ'Ø×'Ñ'Ø×'Ñ'ñ€Fð ×*Ñ*Ø×,Ñ,Ø×+Ñ+ñ€Eõ!òõLò
Dò(òòò	ò÷1ò4ò÷Cð Cr   rQ   c                   ó   • \ rS rSrS rSrg)Ú_CairoRegioniŒ  c                 ó   • Xl         X l        g rr   )Ú_slicesÚ_data)r[   Úslicesr±   s      r   rZ   Ú_CairoRegion.__init__�  s   € ØŒØ�
r   )rK  rJ  N)rò   ró   rô   rõ   rZ   r÷   © r   r   rH  rH  Œ  s   † õr   rH  c                   óò   • \ rS rSr\S 5       rS rS rS rS r	S r
\
rS rS	S
.S jr\R                  " \S5      r\R                  " \S5      r\R                  " \S5      r\R                  " \S5      rSrg)ÚFigureCanvasCairoi’  c                 ó„   • [        U S5      (       d$  [        U R                  R                  5      U l        U R                  $ )NÚ_cached_renderer)rc   rL   ÚfigurerP   rR  rà   s    r   Ú	_rendererÚFigureCanvasCairo._renderer“  s3   € ô �tÐ/×0Ñ0Ü$1°$·+±+·/±/Ó$BˆDÔ!Ø×$Ñ$Ð$r   c                 ó   • U R                   $ rr   )rT  rà   s    r   Úget_rendererÚFigureCanvasCairo.get_renderer�  s   € Ø�~‰~Ðr   c           	      óÊ  • U R                   R                  R                  R                  5       n[	        U[
        R                  5      (       d  [        S5      eUR                  5       nUR                  5       n[        R                  " UR                  5      n[        R                  " UR                  5      n[        R                  " XAR                  -
  5      n[        R                  " XAR                   -
  5      nSU::  aD  Xc::  a?  UR                  UR                  ::  a%  SU::  a  X„::  a  UR                   UR                  ::  d  [#        S5      e[%        Xw['        X‡-
  S5      -   5      [%        XU['        Xe-
  S5      -   5      4n	[(        R*                  " UR-                  5       [(        R.                  5      R1                  XC45      U	   R3                  5       n
[5        Xš5      $ )Nz;copy_from_bbox only works when rendering to an ImageSurfacer   zInvalid bbox)rT  rR   r   rb   Ú
isinstancerC   rV   ÚRuntimeErrorr_   r`   ÚmathÚceilÚx0Úfloorr    r¡   Úy0Ú
ValueErrorÚsliceÚmaxr)   Ú
frombufferÚget_dataÚuint32ÚreshapeÚcopyrH  )r[   Úbboxri   ÚswÚshr^  r    r`  r¡   Úslsr±   s              r   Úcopy_from_bboxÚ FigureCanvasCairo.copy_from_bbox   s_  € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5×6Ñ6ÜØMóOð Oà×ÑÓ ˆØ×ÑÓ!ˆÜ�YŠY�t—w‘wÓˆÜ�ZŠZ˜Ÿ™Ó ˆÜ�YŠY�rŸG™G‘|Ó$ˆÜ�ZŠZ˜ŸW™W™Ó%ˆØ�R“˜B›H¨¯©°D·G±GÓ);Ø˜“G £¨T¯W©W¸¿¹Ó-?Ü˜^Ó,Ð,Ü�BœS ¡¨!›_Ñ,Ó-¬u°R¼cÀ"Á'È1»oÑ9MÓ/NÐNˆÜ—’˜g×.Ñ.Ó0´"·)±)Ó<ß‘˜"˜Ó" 3ñ(ß(,©«ð 	ä˜CÓ&Ð&r   c                 ó~  • U R                   R                  R                  R                  5       n[	        U[
        R                  5      (       d  [        S5      eUR                  5         UR                  5       nUR                  5       nUR                  u  pVUR                  [        R                  " UR                  5       [        R                   5      R#                  XC45      XV4'   UR%                  UR&                  UR&                  UR(                  UR&                  -
  UR(                  UR&                  -
  5        g )Nz;restore_region only works when rendering to an ImageSurface)rT  rR   r   rb   rZ  rC   rV   r[  Úflushr_   r`   rJ  rK  r)   rd  re  rf  rg  Úmark_dirty_rectangleÚstartÚstop)r[   Úregionri   rj  rk  ÚslyÚslxs          r   Úrestore_regionÚ FigureCanvasCairo.restore_region³  sè   € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5×6Ñ6ÜØMóOð Oà�‰ŒØ×ÑÓ ˆØ×ÑÓ!ˆØ—>‘>‰ˆà)/¯©ô 
�Š�w×'Ñ'Ó)¬2¯9©9Ó	5ß
‰'�2�(Ó
˜C˜Hñ
&à×$Ñ$Ø�I‰I�s—y‘y #§(¡(¨S¯Y©YÑ"6¸¿¹À3Ç9Á9Ñ8Lõ	Nr   c                 óB   • U R                  5       R                  U5        g rr   )Ú_get_printed_image_surfaceÚwrite_to_png)r[   Úfobjs     r   Ú	print_pngÚFigureCanvasCairo.print_pngÁ  s   € Ø×'Ñ'Ó)×6Ñ6°tÕ<r   c           	      óø   • U R                  5       u  p#U R                  5       R                  5       nUR                  [        R
                  " [        R                  " U5      R                  X#S45      5      5        g )Nr­   )	Úget_width_heightrz  re  Úwriter   Ú._premultiplied_argb32_to_unmultiplied_rgba8888r)   r*   rg  )r[   r|  rS   rT   Úbufs        r   Ú
print_rgbaÚFigureCanvasCairo.print_rgbaÄ  s]   € Ø×-Ñ-Ó/‰ˆØ×-Ñ-Ó/×8Ñ8Ó:ˆØ�
‰
”5×GÒGÜ�JŠJ�s‹O×#Ñ# U°AÐ$6Ó7ó9õ 	:r   c                 óf  • U R                   R                  U R                  l        U R                  5       u  p[        R
                  " [        R                  X5      nU R                  R                  [        R                  " U5      5        U R                   R                  U R                  5        U$ rr   )
rS  rP   rT  r€  rC   rV   rW   ro   rU   Údraw)r[   rS   rT   ri   s       r   rz  Ú,FigureCanvasCairo._get_printed_image_surfaceÌ  st   € Ø!Ÿ[™[Ÿ_™_ˆ�‰ÔØ×-Ñ-Ó/‰ˆÜ×$Ò$¤U×%8Ñ%8¸%ÓHˆØ�‰×"Ñ"¤5§=¢=°Ó#9Ô:Ø�‰×Ñ˜Ÿ™Ô(Øˆr   Úportrait)Úorientationc                ó¸  • SnX@R                   l        U R                   R                  5       u  pVXT-  Xd-  p‡US:X  a  X‡p‡US:X  a8  [        [        S5      (       d  [        S5      e[        R                  " X'U5      n	OÔUS:X  a8  [        [        S5      (       d  [        S5      e[        R                  " X'U5      n	O–US	;   a�  [        [        S
5      (       d  [        S5      eUS:X  aC  [        U[        5      (       a  [        R                  " US5      nO[        R                  " S SUS9n[        R                  " X'U5      n	O[        SU< 35      eU R                   R                  U R                  l        U R                  R                  [        R                   " U	5      5        U R                  R"                  R$                  n
US:X  a5  U
R'                  [(        R*                  S-  5        U
R-                  SU* 5        U R                   R/                  U R                  5        U
R1                  5         U	R3                  5         US:X  a  UR5                  5         g g )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   )rS  rP   Úget_size_inchesrc   rC   r[  rŽ  r�  rZ  ÚstrÚgzipÚGzipFiler“  ra  rT  ro   rU   rR   r   rÂ   r)   Úpir   r‡  Ú	show_pageÚfinishÚclose)r[   Úfmtr|  rŠ  rP   Úw_inÚh_inÚwidth_in_pointsÚheight_in_pointsri   r   s              r   Ú_saveÚFigureCanvasCairo._saveÔ  sé  € ð ˆØ�‰ŒØ—[‘[×0Ñ0Ó2‰
ˆØ,0©J¸¹
Ð)à˜+Ó%à ð .ð �$‹;Üœ5 +×.Ñ.Ü"ð $5ó 6ð 6ä—o’o dÐ=MÓN‰GØ�E‹\Üœ5 ,×/Ñ/Ü"ð $5ó 6ð 6ä×&Ò& tÐ>NÓO‰GØ�OÓ#Üœ5 ,×/Ñ/Ü"ð $5ó 6ð 6à�f‹}Ü˜d¤C×(Ñ(ÜŸ=š=¨¨tÓ4‘DäŸ=š=¨¨t¸TÑB�DÜ×&Ò& tÐ>NÓO‰GäÐ/°©wÐ7Ó8Ð8à!Ÿ[™[Ÿ_™_ˆ�‰ÔØ�‰×"Ñ"¤5§=¢=°Ó#9Ô:Ø�n‰n×Ñ×#Ñ#ˆà˜+Ó%Ø�J‰J”r—u‘u˜q‘yÔ!Ø�M‰M˜!Ð.Ð.Ô/ð 	�‰×Ñ˜Ÿ™Ô(à�‰ŒØ�‰ÔØ�&‹=Ø�J‰J�Lð r   r�  r�  r‘  r’  )rR  N)rò   ró   rô   rõ   ÚpropertyrT  rW  rm  rw  r}  r„  Ú	print_rawrz  r£  Ú	functoolsÚpartialmethodÚ	print_pdfÚprint_psÚ	print_svgÚ
print_svgzr÷   rN  r   r   rP  rP  ’  s�   † Øñ%ó ð%òò'ò&Nò=ò:ð €Iòð /9õ 1ðf ×'Ò'¨¨uÓ5€IØ×&Ò& u¨dÓ3€HØ×'Ò'¨¨uÓ5€IØ×(Ò(¨°Ó7ƒJr   rP  c                   ó4   • \ rS rSr\R
                  r\r\	r
Srg)Ú_BackendCairoi  rN  N)rò   ró   rô   rõ   rC   ÚversionÚbackend_versionrP  ÚFigureCanvasr   ÚFigureManagerr÷   rN  r   r   r®  r®    s   † à—m‘m€OØ$€LØ%ƒMr   r®  rr   )$Ú__doc__r§  r˜  r\  Únumpyr)   rC   Úversion_infoÚImportErrorÚ	cairocffiÚerrÚ r   r   r   Úmatplotlib.backend_basesr	   r
   r   r   r   Úmatplotlib.font_managerr   Úmatplotlib.pathr   Úmatplotlib.transformsr   r   r5   rJ   rL   rQ   rH  rP  Úexportr®  rN  r   r   Ú<module>r¿     s   ðñó Û Û ã ð%ÛØ×Ñ˜JÓ&Ùð &Ø&+×&8Ñ&8Ð%9¸ðHó Ið 	Ið '÷ )Ñ (÷õ õ 4Ý  Ý *ò$ô"ò$ô(c&�Lô c&ôLQCÐ.ô QC÷hñ ôx8Ð(ô x8ðv 
‡�ô&�Hó &ó ñ&øðu ó %ð%Ý!øØó %Ùðóà!$ð	%ûð%úð%ús)   ”*B: Â:CÃCÃCÃ	CÃCÃC