§
    ‚Øjcu  ã            	       ó†  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dl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mZ d dlmZmZ  G d„ de	j        ¦  «        Ze j        d„ ¦   «         Zd	„ Zd
Z e¦   «         rdnd Z d„ Z!d„ Z"ej#         $                    d e¦   «         ¦  «        ej#         $                    dddg¦  «        ej#         %                    e ¬¦  «        d„ ¦   «         ¦   «         ¦   «         Z&d„ Z' e¦   «         Z(e(D �]Z)e)j*        d          d         Z+de+v r9e)j,         -                    ej#         .                    e	j/        ¬¦  «        ¦  «         ŒSe+dk    r9e)j,         -                    ej#         .                    e	j/        ¬¦  «        ¦  «         Œ’e+dk    rpd dl0m1Z1  ej2        ¦   «         d          Z2e2rQ e1e2¦  «         e1d¦  «        k     r9e)j,         -                    ej#         .                    e	j3        d¬¦  «        ¦  «         �Œe)j*        d           4                    d¦  «        dk    r:e)j,         -                    ej#         .                    e	j/        ¬¦  «        ¦  «         �Œfe+d k    rI ej5        ¦   «         d!k    r6e)j,         -                    ej#         .                    d"d¬#¦  «        ¦  «         �Œµe+d k    rbd$ej6        v s	d%ej6        v rPe
j        d&k    rEe
j7        dd'…         d(k     r2e)j,         -                    ej#         .                    d)¦  «        ¦  «         �Œej#         $                    de(¦  «        ej#         %                    e ¬¦  «        d*„ ¦   «         ¦   «         Z8d+„ Z9d,„ Z:d-„ Z;d.„ Z<d/„ Z=d0„ Z>d1„ Z?d2„ Z@d3„ ZAd4„ ZBej#         C                    e
j        d5k    o ejD        ¦   «          d6¬7¦  «        ej#         $                    d8g  eB¦   «         ¢¦  «        d9„ ¦   «         ¦   «         ZEej#         C                    d$ej6        v d:¬7¦  «        ej#         C                    e
j        d;k    d<¬7¦  «        d=„ ¦   «         ¦   «         ZFd>„ ZGej#         C                    e
j        d5k    d?¬7¦  «        ej#         $                    d e¦   «         ¦  «        d@„ ¦   «         ¦   «         ZHdA„ ZI e¦   «         ZJeJD �])Z)e)j*        d          d         Z+e+dBk    r3e)j,         -                    ej#         K                    dC¦  «        ¦  «         ŒOe+dDk    r3e)j,         -                    ej#         K                    dE¦  «        ¦  «         Œˆe+dk    r3e)j,         -                    ej#         K                    dF¦  «        ¦  «         ŒÁe+d k    rbd$ej6        v s	d%ej6        v rPe
j        d&k    rEe
j7        dd'…         d(k     r2e)j,         -                    ej#         .                    d)¦  «        ¦  «         �Œ+ej#         $                    deJ¦  «        ej#         %                    e ¬¦  «        dG„ ¦   «         ¦   «         ZLdH„ ZMdI„ ZNdJ„ ZOej#         $                    d e¦   «         ¦  «        dK„ ¦   «         ZPdL„ ZQej#         $                    d e¦   «         ¦  «        ej#         $                    dMdNdOdifdPdQdRifg¦  «        dS„ ¦   «         ¦   «         ZRdT„ ZSej#         C                    e
j        d;k    dU¬7¦  «        ej#         $                    d e¦   «         ¦  «        ej#         $                    dMdNdOdifdPdQdRifg¦  «        dV„ ¦   «         ¦   «         ¦   «         ZTdS )Wé    N)ÚImage)Ú_c_internal_utils)ÚToolToggleBase)Úsubprocess_run_helperÚis_ci_environmentc                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )Ú_WaitForStringPopenzL
    A Popen that passes flags that allow triggering KeyboardInterrupt.
    c                 óº   •— t           j        dk    rt          j        |d<    t	          ¦   «         j        |i |¤i t          j        ¥dddœ¥t          j        ddœ¤Ž d S )NÚwin32ÚcreationflagsÚAggÚ0)Ú
MPLBACKENDÚSOURCE_DATE_EPOCHT)ÚenvÚstdoutÚuniversal_newlines)	ÚsysÚplatformÚ
subprocessÚCREATE_NEW_CONSOLEÚsuperÚ__init__ÚosÚenvironÚPIPE)ÚselfÚargsÚkwargsÚ	__class__s      €úŸ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/matplotlib/tests/test_backends_interactive.pyr   z_WaitForStringPopen.__init__   s}   ø€ ÝŒ<˜7Ò"Ð"Ý&0Ô&CˆF�?Ñ#Ø�‰ŒÔØð	=Øð	=ð N•2”:ÐM¨UÈÐMÐMÐMÝ”?°tð		=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ó    c                 óž   — d}	 | j                              d¦  «        }|st          d|›�¦  «        ‚||z  }|                     |¦  «        r|S ŒK)z%Read until the terminator is reached.Ú Té   z)Subprocess died before emitting expected )r   ÚreadÚRuntimeErrorÚendswith)r   Ú
terminatorÚbufÚcs       r!   Úwait_forz_WaitForStringPopen.wait_for'   sq   € àˆð	Ø”× Ò  Ñ#Ô#ˆAØð PÝ"ØNÀ
ÐNÐNñPô Pð Pà�1‰HˆCØ�|Š|˜JÑ'Ô'ð Ø�
ð	r"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r,   Ú__classcell__)r    s   @r!   r	   r	      sQ   ø€ € € € € ðð ð=ð =ð =ð =ð =ð
ð 
ð 
ð 
ð 
ð 
ð 
r"   r	   c            	      óæ  — t           j        dk    ot          j        ¦   «          } t           j        dk    ot          j        ¦   «          }g }g d„ dD ¦   «         ¢d„ dD ¦   «         ¢d„ dD ¦   «         ¢dgdd	if‘d
gdd
if‘d
gddif‘dgddif‘D �]â\  }}d }d„ |D ¦   «         }|r)d                     d                     |¦  «        ¦  «        }n×|r*|d         d	k    s|d                              d
¦  «        rd}n«| rd}n¦|d         dk    r"t          j	         
                    d¦  «        rd}nx|d                              d¦  «        r]	 dd l}|j                             ¦   «         }|                     d¦  «        }	n# t          $ r g }	Y nw xY w|d         d         }
|
› d�|	vrd}g }|r:|                     t"          j                             d|› d|› �¬¦  «        ¦  «         n^|d                              d
¦  «        rCt           j        dk    r3|                     t"          j                             d¬¦  «        ¦  «         |                     i |¥d d!                     |¦  «        i¥|f¦  «         �Œä|S )"NÚlinuxc                 ó   — g | ]
}|gd |dœf‘ŒS )Úqtagg©r   ÚQT_API© ©Ú.0Úqt_apis     r!   ú
<listcomp>z7_get_available_interactive_backends.<locals>.<listcomp>@   s@   € ð Fð Fð Fàð ˆxØ%°Ð8Ð8ð:ð Fð Fð Fr"   )ÚPyQt6ÚPySide6ÚPyQt5ÚPySide2c                 ó    — g | ]}|d gd|dœf‘ŒS )Ú	cairocffiÚqtcairor6   r8   r9   s     r!   r<   z7_get_available_interactive_backends.<locals>.<listcomp>C   sC   € ð Fð Fð Fàð ˜Ð$Ø'°6Ð:Ð:ð<ð Fð Fð Fr"   c                 ó2   — g | ]}d D ]}ddgdd|› |› �if‘ŒŒS ))ÚaggÚcairorF   Úgir   Úgtkr8   )r:   ÚversionÚrenderers      r!   r<   z7_get_available_interactive_backends.<locals>.<listcomp>F   sb   € ð Fð Fð FØÐ4DðFð FØ(0ð ˜ˆ Ð/H°WÐ/H¸hÐ/HÐ/HÐ IÐJð Fð Fð Fð Fr"   )é   é   Útkinterr   ÚtkaggÚwxÚwxaggzmatplotlib.backends._macosxÚmacosxc                 óP   — g | ]#}t           j                             |¦  «        °!|‘Œ$S r8   ©Ú	importlibÚutilÚ	find_spec©r:   Údeps     r!   r<   z7_get_available_interactive_backends.<locals>.<listcomp>N   s-   € ÐLÐLÐL˜3­i¬n×.FÒ.FÀsÑ.KÔ.KÐL�3ÐLÐLÐLr"   z{} cannot be importedú, z$DISPLAY is unsetú'$DISPLAY and $WAYLAND_DISPLAY are unsetÚTF_BUILDzmacosx backend fails on AzurerH   r   ÚGtkrK   z.0zno usable GTK bindingsz	Skipping z	 because ©ÚreasonÚdarwinzgithub #16849ÚBACKEND_DEPSú,)r   r   r   Údisplay_is_validÚxdisplay_is_validÚformatÚjoinÚ
startswithr   r   ÚgetrG   Ú
RepositoryÚget_defaultÚenumerate_versionsÚImportErrorÚappendÚpytestÚmarkÚskipÚxfail)Ú_is_linux_and_display_invalidÚ_is_linux_and_xdisplay_invalidÚenvsÚdepsr   r^   ÚmissingrG   Úgi_repoÚavailable_gtk_versionsrI   Úmarkss               r!   Ú#_get_available_interactive_backendsry   8   s_  € å%(¤\°WÒ%<ð &NÝ):Ô)KÑ)MÔ)MÐ%Mð "å&)¤l°gÒ&=ð 'PÝ*;Ô*MÑ*OÔ*OÐ&Oð #à€DððFð FàDðFñ Fô FððFð FàDðFñ Fô Fð	ðFð FØ#ðFñ Fô Fðð ˆ[˜<¨Ð1Ð2ðð ˆV�l DÐ)Ð*ðð ˆV�l GÐ,Ð-ðð ,Ð,¨|¸XÐ.FÐGðð 0Fñ 0F‰	ˆˆcð ˆØLÐL $ÐLÑLÔLˆØð 	2Ø,×3Ò3°D·I²I¸gÑ4FÔ4FÑGÔGˆFˆFØ+ð 	2Ø�LÔ! WÒ,Ð,à�|Ô$×/Ò/°Ñ5Ô5ð -ð )ˆFˆFØ*ð 	2Ø>ˆFˆFØ�Ô (Ò*Ð*­r¬z¯~ª~¸jÑ/IÔ/IÐ*Ø4ˆFˆFØ�Ô×)Ò)¨%Ñ0Ô0ð 	2ð	KØ�	�	�	ð œ-×3Ò3Ñ5Ô5�Ø)0×)CÒ)CÀEÑ)JÔ)JÐ&Ð&øõ ð ,ð ,ð ,ð *,Ð&Ð&Ð&ð	,øøøð ˜,Ô'¨Ô*ˆGØˆ~ˆ~ˆ~Ð%;Ð;Ð;Ø1�ØˆØð 	DØ�LŠL�œ×)Ò)Ð1S¸SÐ1SÐ1SÈ6Ð1SÐ1SÐ)ÑTÔTÑUÔUÐUÐUØ�Ô×)Ò)¨$Ñ/Ô/ð 	DµC´LÀHÒ4LÐ4Là�LŠL�œ×*Ò*°/Ð*ÑBÔBÑCÔCÐCà�ŠÐ<˜Ð<˜^¨S¯XªX°d©^¬^Ð<Ð<¸eÐDÑEÔEÐEÑEØ€Ks   ÅE:Å:F	ÆF	c                  ó2   — d„ t          ¦   «         D ¦   «         S )Nc                 ó¨   — g | ]O\  }}t          j        i |¥g |¢d                      d„ |                     ¦   «         D ¦   «         ¦  «        ¬¦  «        ‘ŒPS )ú-c              3   ó*   K  — | ]\  }}|› d |› �V — ŒdS )ú=Nr8   )r:   ÚkÚvs      r!   ú	<genexpr>z@_get_testable_interactive_backends.<locals>.<listcomp>.<genexpr>v   s0   è è € Ð$HÐ$H±D°A°q¨ Z Z¨A Z ZÐ$HÐ$HÐ$HÐ$HÐ$HÐ$Hr"   )rx   Úid)rm   Úparamre   Úitems)r:   r   rx   s      r!   r<   z6_get_testable_interactive_backends.<locals>.<listcomp>u   sx   € ð Eð Eð Eá��Uõ ŒL˜˜C˜¨¨%¨ØŸHšHÐ$HÐ$H¸C¿IºI¹K¼KÐ$HÑ$HÔ$HÑHÔHðJñ Jô Jð Eð Eð Er"   )ry   r8   r"   r!   Ú"_get_testable_interactive_backendsr…   s   s/   € ðEð EåAÑCÔCðEñ Eô Eð Er"   é   rK   c                 óº  ‡— t          j        ¦   «         5 }t          j        dd¦  «        }t          j                             |d¦  «        Š|                     ‰¦  «          G ˆfd„dt          ¦  «        }| j	        j
        j        }| j	        j
        j        }|                     d|¦  «         |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚLA)é   r‰   ztest_la_icon.pngc                   ó   •— e Zd Z” ZdZdS )ú5_test_toolbar_button_la_mode_icon.<locals>.CustomToolr$   N)r-   r.   r/   ÚimageÚdescription)Útmp_img_paths   €r!   Ú
CustomToolr‹   ˆ   s   ø€ € € € € Ø ˆEØˆKˆKˆKr"   r�   ÚtestÚgroup)ÚtempfileÚTemporaryDirectoryr   Únewr   Úpathre   Úsaver   ÚcanvasÚmanagerÚtoolmanagerÚtoolbarÚadd_tool)ÚfigÚtempdirÚimgr�   r™   rš   rŽ   s         @r!   Ú!_test_toolbar_button_la_mode_iconrŸ   €   s*  ø€ õ 
Ô	$Ñ	&Ô	&ð *¨'ÝŒi˜˜hÑ'Ô'ˆÝ”w—|’| GÐ-?Ñ@Ô@ˆØ�Š�ÑÔÐð	ð 	ð 	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð ”jÔ(Ô4ˆØ”*Ô$Ô,ˆØ×Ò˜V ZÑ0Ô0Ð0Ø×Ò˜ Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   •B.CÃCÃCc                  ó  ‡‡‡— dd l } dd l}dd l}dd l}dd l}dd lŠddlmŠ ddlm}m	} ‰j
                             ddi¦  «         ‰j
                              |j        |j        d         ¦  «        ¦  «         ‰j
        d                              ¦   «         }|                     d¦  «        rÉ|                     d	¦  «        s´‰                     ¦   «         }‰                     |¦  «         |d
k    rD |j        t(          ¦  «        5  ‰                     d
d¬¦  «         d d d ¦  «         n# 1 swxY w Y   ˆˆfd„}	| j                             d¦  «        r |	|d d…         dz   ¦  «          |	d¦  «         ‰                     |d¬¦  «         ‰                     ¦   «         \  }}
t3          |j        ¦  «        j        d|› �k    sJ ‚|j        j                             ¦   «         dk    sJ ‚‰j
        d         dk    rt=          |¦  «         |
                     ddgddg¦  «         |j        j         r#|j        j          !                    d dddd¦  «         |dk    r6|j"        dk    r+dd l#}| $                    | %                    ¦   «         ¦  «         |j         &                    d¦  «        Š‰ '                     |d|j        d¦  «        j(        ¦  «         |j         )                    dˆfd„¦  «         |j         )                    d tT          ¦  «         | +                    ¦   «         }| ,                    |d!d"¬#¦  «         ‰ -                    ¦   «          ‰ .                    d$¦  «         t3          |j        ¦  «        |k    sJ t_          |j        ¦  «        ¦   «         ‚| +                    ¦   «         }| ,                    |d!d"¬#¦  «         |                     d¦  «        r,| 0                    ¦   «         | 0                    ¦   «         k    sJ ‚d S d S )%Nr   ©Úpyplot)ÚKeyEventÚFigureCanvasBaseúwebagg.open_in_browserFr%   ÚbackendrE   )rH   ÚwebrN   T©Úforcec                 óÌ   •— ‰                      | d¬¦  «         ‰                     ¦   «         }t          |j        ¦  «        j        d| › �k    sJ ‚‰                     d¦  «         d S )NTr¨   úmatplotlib.backends.backend_Úall)ÚuseÚfigureÚtyper—   r.   Úclose)Úalt_backendrœ   ÚmplÚplts     €€r!   Úcheck_alt_backendz1_test_interactive_impl.<locals>.check_alt_backendº   sq   ø€ Ø�GŠG�K tˆGÑ,Ô,Ð,Ø—*’*‘,”,ˆCÝ˜œÑ$Ô$Ô/Ø@°;Ð@Ð@òAð Að Að Aà�IŠI�eÑÔÐÐÐr"   rB   éýÿÿÿrF   Úsvgr«   zFigure 1rš   r™   é   rK   g      ð?g       @Úwebagg)rK   é   Úkey_press_eventÚqÚ
draw_eventc                 ó,   •— ‰                      ¦   «         S ©N©Ústart)ÚeventÚtimers    €r!   ú<lambda>z(_test_interactive_impl.<locals>.<lambda>Ú   s   ø€ °u·{²{±}´}€ r"   Úclose_eventÚpngéd   )rd   Údpiç      à?)1Úimportlib.utilÚioÚjsonr   rm   Ú
matplotlibr¢   Úmatplotlib.backend_basesr£   r¤   ÚrcParamsÚupdateÚloadsÚargvÚlowerr(   rf   r®   r°   Úraisesrk   r­   rU   rV   Úsubplotsr¯   r—   r.   r˜   Úget_window_titlerŸ   Úplotrš   Údraw_rubberbandÚversion_infoÚasyncioÚset_event_loopÚnew_event_loopÚ	new_timerÚadd_callbackÚ_processÚmpl_connectÚprintÚBytesIOÚsavefigÚshowÚpauseÚstrÚgetvalue)rT   rÊ   rË   r   rm   r£   r¤   r¦   rœ   r´   ÚaxrÙ   ÚresultÚresult_afterr²   r³   rÂ   s                 @@@r!   Ú_test_interactive_implrê   —   s‚  øøø€ ØÐÐÐØ€I€I€IØ€K€K€KØ€J€J€Jà€M€M€MàÐÐÐØ(Ð(Ð(Ð(Ð(Ð(ØCÐCÐCÐCÐCÐCÐCÐCØ„L×ÒØ  %ðñ ô ð ð „L×Ò˜
˜œ
 3¤8¨A¤;Ñ/Ô/Ñ0Ô0Ð0ØŒl˜9Ô%×+Ò+Ñ-Ô-€Gà×Ò˜ÑÔð ! w×'9Ò'9¸.Ñ'IÔ'Ið !à�jŠj‰lŒlˆØ�	Š	�#‰Œˆð �gÒÐØ�”�{Ñ+Ô+ð -ð -Ø—’˜ t�Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð	ð 	ð 	ð 	ð 	ð 	ð Œ>×#Ò# KÑ0Ô0ð 	6ØÐ˜g c r cœl¨WÑ4Ñ5Ô5Ð5ØÐ˜%Ñ Ô Ð Ø‡G‚GˆG˜4€GÑ Ô Ð à�lŠl‰nŒn�G€CˆÝ�”
ÑÔÔ&Ð*RÈÐ*RÐ*RÒRÐRÐRÐRàŒ:Ô×.Ò.Ñ0Ô0°JÒ>Ð>Ð>Ð>à
„|�IÔ -Ò/Ð/å)¨#Ñ.Ô.Ð.à‡G‚GˆQ�ˆF�Q˜�FÑÔÐØ
„zÔð ?ØŒ
Ô×*Ò*¨4°°Q¸¸AÑ>Ô>Ð>à�(ÒÐ˜sÔ/°7Ò:Ð:ØˆˆˆØ×Ò˜w×5Ò5Ñ7Ô7Ñ8Ô8Ð8àŒJ× Ò  Ñ$Ô$€EØ	×Ò�x�xÐ 1°3´:¸sÑCÔCÔLÑMÔMÐMà„J×Ò˜<Ð)DÐ)DÐ)DÐ)DÑEÔEÐEØ„J×Ò˜=­%Ñ0Ô0Ð0à�ZŠZ‰\Œ\€FØ‡K‚K�˜u¨#€KÑ.Ô.Ð.à‡H‚H�J„J€Jð ‡I‚Iˆc�N„N€Nõ �”
ÑÔÐ/Ò/Ð/Ð/µ°S´Z±´Ñ/Ô/Ð/Ø—:’:‘<”<€LØ‡K‚K� U°€KÑ4Ô4Ð4à×Ò˜ÑÔð <ð �ŠÑ Ô  L×$9Ò$9Ñ$;Ô$;Ò;Ð;Ð;Ð;ð<ð <ð <Ð;s   ÄD*Ä*D.Ä1D.r   rš   Útoolbar2r™   )Úrerunsc                 ó  — | d         dk    r|dk    rt          j        d¦  «         | d         dk    rt          j        d¦  «         | d         dk    r|dk    rt          j        d¦  «         	 t          t          t	          j        d	|i¦  «        t          | ¬
¦  «        }nE# t          j        $ r3}t          j	        dt          |j        ¦  «        z   ¦  «         Y d }~nd }~ww xY w|j                             d¦  «        dk    sJ ‚d S )Nr   rQ   r™   z*toolmanager is not implemented for macosx.rO   ú2wx backend is deprecated; tests failed on appveyorrP   zMTemporarily deactivated: show() changes figure height and thus fails the testrš   ©ÚtimeoutÚ	extra_envz,Subprocess failed to test intended behavior
Ú
CloseEventr%   )rm   ro   Ú_run_helperrê   rË   ÚdumpsÚ_test_timeoutr   ÚCalledProcessErrorÚfailrå   Ústderrr   Úcount)r   rš   ÚprocÚerrs       r!   Útest_interactive_backendrü   ñ   sG  € ð ˆ<Ô˜HÒ$Ð$Ø�mÒ#Ð#ÝŒKÐDÑEÔEÐEØ
ˆ<Ô˜DÒ Ð ÝŒÐHÑIÔIÐIØ
ˆ<Ô˜GÒ#Ð#¨°=Ò(@Ð(@ÝŒð .ñ 	/ô 	/ð 	/ð
ÝÝ"ÝŒJ˜	 7Ð+Ñ,Ô,Ý!Øð	
ñ 
ô 
ˆˆøõ Ô(ð ð ð ÝŒØ;Ý�#”*‰oŒoññ	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøøðøøøð Œ;×Ò˜\Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ð/Ð/s   Á.1B  Â C"Â/)CÃC"c                  óÐ  — ddl m}  dd l}ddlm} |j                             dddœ¦  «         |                     ¦   «         \  }}|                     d¦  «          | ¦   «                              |j	        g d¢¦  «        }| 
                    ¦   «          |j                             d	t          ¦  «          | ¦   «                              |j        j        ¦  «        }|                     d¦  «         | 
                    ¦   «          |j        }|                     ¦   «          |j        d
                              ¦   «                              d¦  «        r|                     ¦   «          d S d S )Nr   )ÚThreadPoolExecutorr¡   Fr%   )r¥   zwebagg.port_retriesrÈ   )r%   rK   é   rÄ   r¦   rO   )Úconcurrent.futuresrþ   rÌ   r¢   rÎ   rÏ   rÔ   rä   ÚsubmitrÖ   rè   r—   rß   rà   Údrawr°   rÒ   rf   Úflush_events)rþ   r²   r³   rœ   rç   Úfuturer—   s          r!   Ú_test_thread_implr    sd  € Ø5Ð5Ð5Ð5Ð5Ð5àÐÐÐØ(Ð(Ð(Ð(Ð(Ð(à„L×ÒØ"'Ø ðð ñ ô ð ð �lŠl‰nŒn�G€Cˆà‡I‚Iˆc�N„N€NàÐÑ!Ô!×(Ò(¨¬°)°)°)Ñ<Ô<€FØ
‡M‚M�O„O€Oà„J×Ò˜=­%Ñ0Ô0Ð0ØÐÑ!Ô!×(Ò(¨¬¬Ñ9Ô9€FØ‡I‚Iˆc�N„N€NØ
‡M‚M�O„O€Oð ŒZ€FØ‡I‚I�K„K€KØ
„|�IÔ×$Ò$Ñ&Ô&×1Ò1°$Ñ7Ô7ð à×ÒÑÔÐÐÐðð r"   r   rF   )rÓ   rO   rQ   )Úparsez10.16T)rÓ   Ústrictr7   r@   rN   ÚCPythonzZPyPy does not support Tkinter threading: https://foss.heptapod.net/pypy/pypy/-/issues/1929)r^   r  r[   ÚGITHUB_ACTIONr_   r·   )rK   é   z%Tk version mismatch on Azure macOS CIc                 ó~   — t          t          t          | ¬¦  «        }|j                             d¦  «        dk    sJ ‚d S )Nrï   rò   r%   )ró   r  rõ   r   rù   ©r   rú   s     r!   Útest_interactive_thread_safetyr  Q  s@   € õ Õ(µ-È3ÐOÑOÔO€DØŒ;×Ò˜\Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ð/Ð/r"   c                  ó,  — dd l } dd lm} | j                             d¦  «        }t          |t          ¦  «        rJ ‚|j        �J ‚|                     d¦  «         |j        €J ‚| j                             d¦  «        }t          |t          ¦  «        sJ ‚d S )Nr   r¦   é   )	rÌ   Úmatplotlib.pyplotr¢   rÎ   Ú_getÚ
isinstancerå   Ú_backend_modrÖ   )rÌ   r³   Úbks      r!   Ú&_impl_test_lazy_auto_backend_selectionr  X  s«   € ØÐÐÐØ#Ð#Ð#Ð#Ð#Ð#à	Ô	×	!Ò	! )Ñ	,Ô	,€BÝ˜"�cÑ"Ô"Ð"Ð"Ð"ØÔÐ#Ð#Ð#à‡H‚HˆQ�K„K€KØÔÐ'Ð'Ð'Ø	Ô	×	!Ò	! )Ñ	,Ô	,€BÝ�b�#ÑÔÐÐÐÐÐr"   c                  ó<   — t          t          t          ¬¦  «         d S ©N©rð   )ró   r  rõ   r8   r"   r!   Ú test_lazy_auto_backend_selectionr  f  s)   € ÝÕ6Ý%ð'ñ 'ô 'ð 'ð 'ð 'r"   c                  ón   — dd l } dd l}d|j        vsJ ‚d|j        vsJ ‚d|j        v sd|j        v sJ ‚d S d S ©Nr   r=   Úpyside6r?   Úpyside2)Ú"matplotlib.backends.backend_qt5aggr   Úmodules©rÌ   r   s     r!   Ú_implqt5aggr!  k  sh   € Ø-Ð-Ð-Ð-Ø€J€J€Jà˜#œ+Ð%Ð%Ð%Ð%Ø˜CœKÐ'Ð'Ð'Ð'Ø�c”kÐ!Ð! Y°#´+Ð%=Ð%=Ð%=Ð=Ð!Ð!Ð%=Ð%=r"   c                  ón   — dd l } dd l}d|j        vsJ ‚d|j        vsJ ‚d|j        v sd|j        v sJ ‚d S d S r  )Ú$matplotlib.backends.backend_qt5cairor   r  r   s     r!   Ú
_implcairor$  t  sh   € Ø/Ð/Ð/Ð/Ø€J€J€Jà˜#œ+Ð%Ð%Ð%Ð%Ø˜CœKÐ'Ð'Ð'Ð'Ø�c”kÐ!Ð! Y°#´+Ð%=Ð%=Ð%=Ð=Ð!Ð!Ð%=Ð%=r"   c                  ón   — dd l } dd l}d|j        vsJ ‚d|j        vsJ ‚d|j        v sd|j        v sJ ‚d S d S r  )Úmatplotlib.backends.backend_qt5r   r  r   s     r!   Ú	_implcorer'  }  sh   € Ø*Ð*Ð*Ð*Ø€J€J€Jà˜#œ+Ð%Ð%Ð%Ð%Ø˜CœKÐ'Ð'Ð'Ð'Ø�c”kÐ!Ð! Y°#´+Ð%=Ð%=Ð%=Ð=Ð!Ð!Ð%=Ð%=r"   c                  óŠ  — d„ dD ¦   «         } d„ dD ¦   «         }t          | ¦  «        dk    st          |¦  «        dk    rt          j        d¦  «         t          t          t
          ¬¦  «         t          j                             d¦  «        �t          t          t
          ¬¦  «         t          t          t
          ¬¦  «         d S )	Nc                 óP   — g | ]#}t           j                             |¦  «        ®!|‘Œ$S r¾   rS   rW   s     r!   r<   z-test_qt5backends_uses_qt5.<locals>.<listcomp>‡  ó8   € ð ð ð ØÝŒ>×#Ò# CÑ(Ô(Ð4ð 	Ø4Ð4Ð4r"   )r?   r  c                 óP   — g | ]#}t           j                             |¦  «        ®!|‘Œ$S r¾   rS   rW   s     r!   r<   z-test_qt5backends_uses_qt5.<locals>.<listcomp>‹  r*  r"   )r=   r  r   úneed both QT6 and QT5 bindingsr  Úpycairo)Úlenrm   ro   ró   r!  rõ   rT   rU   rV   r$  r'  )Úqt5_bindingsÚqt6_bindingss     r!   Útest_qt5backends_uses_qt5r1  †  sË   € ðð Ø+ðñ ô €Lðð Ø+ðñ ô €Lõ ˆ<ÑÔ˜AÒÐ¥ \Ñ!2Ô!2°aÒ!7Ð!7ÝŒÐ4Ñ5Ô5Ð5Ý•¥]Ð3Ñ3Ô3Ð3Ý„~×Ò 	Ñ*Ô*Ð6Ý•J­Ð6Ñ6Ô6Ð6Ý•	¥=Ð1Ñ1Ô1Ð1Ð1Ð1r"   c                  óŒ  — dd l } d | j        d<   d | j        d<   d | j        d<   d | j        d<   dd lm} t	          j        t          d¬¦  «        5  |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        t          d	¬¦  «        5  |                     d
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r=   r?   r@   r>   z(Failed to import any of the following Qt)Úmatchr5   z^(?:(?!(PySide6|PyQt6)).)*$Úqt5agg)r   r  r  r¢   rm   rÓ   rk   Úswitch_backend)r   r³   s     r!   Ú_impl_missingr6  —  s\  € Ø€J€J€Jà€C„K�ÑØ€C„K�ÑØ!€C„K�	ÑØ!€C„K�	Ñà#Ð#Ð#Ð#Ð#Ð#Ý	Œ•{Ð*TÐ	UÑ	UÔ	Uð $ð $Ø×Ò˜7Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ 
Œ•{Ð*GÐ	HÑ	HÔ	Hð %ð %Ø×Ò˜8Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s$   ÁA0Á0A4Á7A4ÂB9Â9B=Ã B=c                  ó<   — t          t          t          ¬¦  «         d S r  )ró   r6  rõ   r8   r"   r!   Útest_qt_missingr8  §  s   € Ý•¥}Ð5Ñ5Ô5Ð5Ð5Ð5r"   c                  óP  — dd l } dd l}dd l}|j        \  }}} | j        |› d�¦  «          | j        |› d�¦  «        }dd l} | j        |› d�¦  «        }|                     dg¦  «        }	|                     ddt          ¬¦  «         |j	        j
                             ¦   «          d S )Nr   z.QtCorez
.QtWidgetszmpl testingÚerrorz.*Mixing Qt major.*)ÚmessageÚcategory)rT   r   ÚwarningsrÑ   Úimport_moduleÚmatplotlib.backends.backend_qtÚQApplicationÚfilterwarningsÚUserWarningÚbackendsÚ
backend_qtÚ_create_qApp)
rT   r   r=  Ú_Úhost_bindingÚmpl_bindingÚmpl_binding_qwidgetsrÌ   Úhost_qwidgetsÚhost_apps
             r!   Ú_impl_test_cross_Qt_importsrL  «  så   € ØÐÐÐØ€J€J€JØ€O€O€Oà#&¤8Ñ €A€|�[à€IÔ˜{Ð3Ð3Ð3Ñ4Ô4Ð4Ø2˜9Ô2°kÐ3MÐ3MÐ3MÑNÔNÐØ)Ð)Ð)Ð)Ø+�IÔ+¨|Ð,GÐ,GÐ,GÑHÔH€Mà×)Ò)¨=¨/Ñ:Ô:€HØ×Ò˜GÐ-CÝ%0ð ñ 2ô 2ð 2àÔÔ"×/Ò/Ñ1Ô1Ð1Ð1Ð1r"   c               #   ó(  K  — d„ dD ¦   «         } d„ dD ¦   «         }t          | ¦  «        dk    st          |¦  «        dk    r9t          j        d d t          j                             d¦  «        g¬¦  «        V — d S | D ]}|D ]}||g||gfE d {V —† ŒŒd S )Nc                 óP   — g | ]#}t           j                             |¦  «        ®!|‘Œ$S r¾   rS   rW   s     r!   r<   z%qt5_and_qt6_pairs.<locals>.<listcomp>¾  r*  r"   )r?   r@   c                 óP   — g | ]#}t           j                             |¦  «        ®!|‘Œ$S r¾   rS   rW   s     r!   r<   z%qt5_and_qt6_pairs.<locals>.<listcomp>Â  r*  r"   )r=   r>   r   r,  )rx   )r.  rm   rƒ   rn   ro   )r/  r0  Úqt5Úqt6s       r!   Úqt5_and_qt6_pairsrR  ½  s  è è € ðð Ø+ðñ ô €Lðð Ø+ðñ ô €Lõ ˆ<ÑÔ˜AÒÐ¥ \Ñ!2Ô!2°aÒ!7Ð!7ÝŒl˜4 Ý"(¤+×"2Ò"2Ð3SÑ"TÔ"TÐ!UðWñ Wô Wð 	Wð 	Wð 	Wàˆàð 0ð 0ˆØð 	0ð 	0ˆCØ˜c˜
 S¨# JÐ/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð	0ð0ð 0r"   r3   rZ   r]   z	host, mplc                 ó¤   — 	 t          t          | |t          ¬¦  «        }|j        }n## t          j        $ r}|j        }Y d }~nd }~ww xY wd|v sJ ‚d S )Nr  z2Mixing Qt major versions may not work as expected.)ró   rL  rõ   rø   r   rö   )Úhostr²   rú   rø   Úexs        r!   Útest_cross_Qt_importsrV  Ð  s�   € ð
	ÝÕ6¸¸cÝ#0ð2ñ 2ô 2ˆð ”ˆˆøõ Ô(ð ð ð ð ”ˆˆˆˆˆˆøøøøð	øøøð @À6ÐIÐIÐIÐIÐIÐIs   ‚' §A¶AÁAz,this test fails an azure for unknown reasonsr   zCannot send SIGINT on Windows.c                  óð  — t          j        d¦  «         t          j        t          ¦  «        dz   } d}t          t          j        d| |g¦  «        5 }	 |                     d¦  «        }t          j
        d|¦  «                             d¦  «        }t          j        ¦   «         t          z   }	 	 |                     ¦   «         }|�J ‚t           j                             |¦  «        5  	 d d d ¦  «         nU# 1 swxY w Y   nH# t           j        j        $ r1 t          j        ¦   «         |k    rt          j        d	¦  «         nY Œ•Y nw xY wŒ›|                     t.          j        ¦  «         |                     t          ¬
¦  «        dk    sJ ‚	 |                     ¦   «         €|                     ¦   «          n.# |                     ¦   «         €|                     ¦   «          w w xY wd d d ¦  «         d S # 1 swxY w Y   d S )NÚtornadoz
_test_interactive_impl()z{"backend": "webagg"}ú-czPress Ctrl+Czvisit (https?:\/\/\S+)r%   Tz'Failed to connect to the webagg server.r  r   )rm   ÚimportorskipÚinspectÚ	getsourcerê   r	   r   Ú
executabler,   ÚreÚsearchr‘   ÚtimeÚperf_counterrõ   ÚpollÚurllibÚrequestÚurlopenr:  ÚURLErrorr÷   Úsend_signalÚsignalÚSIGINTÚwaitÚkill)ÚsourceÚrcrú   r*   Úurlrð   Úretcodes          r!   Útest_webaggrp  â  sd  € õ Ô˜	Ñ"Ô"Ð"ÝÔÕ 6Ñ7Ô7Ø*ñ+€Fà	 €BÝ	�cœn¨d°F¸BÐ?Ñ	@Ô	@ð ÀDð	Ø—-’- Ñ/Ô/ˆCÝ”)Ð5°sÑ;Ô;×AÒAÀ!ÑDÔDˆCÝÔ'Ñ)Ô)­MÑ9ˆGð!ð!Ø"Ÿiši™kœk�Gà"˜?˜?˜?Ýœ×/Ò/°Ñ4Ô4ð ð àðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð øõ ”|Ô,ð !ð !ð !ÝÔ(Ñ*Ô*¨WÒ4Ð4ÝœÐ$MÑNÔNÐNÐNà ˜ð OÐNð!øøøð!ð ×Ò�Vœ]Ñ+Ô+Ð+Ø—9’9¥]�9Ñ3Ô3°qÒ8Ð8Ð8Ð8Ð8à�yŠy‰{Œ{Ð"Ø—	’	‘”�øøð �yŠy‰{Œ{Ð"Ø—	’	‘”��ð #øøøð+ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s{   ÁG+ÁAF0Â,7C=Ã#C1Ã%C=Ã0F0Ã1C5	Ã5C=Ã8C5	Ã9C=Ã<F0Ã=A EÄ=F0ÅEÅAF0Æ)G+Æ0+GÇG+Ç+G/Ç2G/c                  ó  — dd l } dd l}|j        dd …         \  }}|                     d¦  «        }| j                             dd ¦  «         | j                             dd ¦  «         |D ]}||j        vsJ ‚Œdd lm} | 	                    ¦   «         dk    sJ ‚|D ]}||j        vsJ ‚Œ|D ]!}t          j        |¦  «         ||j        v sJ ‚Œ"	 |                     |¦  «          |j        d¦  «         d S # t          $ r Y d S w xY w)Nr   r%   ra   ÚDISPLAYÚWAYLAND_DISPLAYrE   )r   r   rÑ   Úsplitr   Úpopr  r  r¢   Úget_backendrT   r>  r5  Úexitrk   )r   r   r¦   rt   rX   r³   s         r!   Ú_lazy_headlessrx    sh  € Ø€I€I€IØ€J€J€Jà”H˜Q˜R˜R”L�M€GˆTØ�:Š:�c‰?Œ?€Dð „J‡N‚N�9˜dÑ#Ô#Ð#Ø„J‡N‚NÐ$ dÑ+Ô+Ð+Øð &ð &ˆØ˜#œ+Ð%Ð%Ð%Ð%Ð%ð $Ð#Ð#Ð#Ð#Ð#Ø�?Š?ÑÔ Ò%Ð%Ð%Ð%Øð &ð &ˆØ˜#œ+Ð%Ð%Ð%Ð%Ð%ð ð "ð "ˆÝÔ Ñ$Ô$Ð$Ø�c”kÐ!Ð!Ð!Ð!Ð!ðØ×Ò˜7Ñ#Ô#Ð#ð 	ˆŒ�‰Œˆˆˆøõ ð ð ð Øˆˆðøøøs   ÃC2 Ã2
D Ã?D zthis a linux-only testc           
      óœ   — t          t          |                      d¦  «        |                      d¦  «        t          i | ¥dddœ¥¬¦  «        }d S )Nr   r`   r$   )rr  rs  rï   )ró   rx  ru  rõ   r  s     r!   Útest_lazy_linux_headlessrz  $  sT   € õ ÝØ�Š�ÑÔ˜sŸwšw ~Ñ6Ô6ÝØ?�SÐ? R¸BÐ?Ð?Ð?ð	ñ ô €D€D€Dr"   c                  ó  — dd l m}  |                      ¦   «         \  }}|                     ddgddgd¬¦  «        \  }|                      d¬¦  «         |                      d¦  «         |j                             d	t          ¦  «         |j         	                    |j
        ¦  «        }|                     |¦  «         |j                             |j
        ¦  «         t          d
¦  «        D ]…}|j                             |¦  «         |                     ddgddg¦  «        \  }|                     |¦  «         |j                             |j
        ¦  «         |j                             ¦   «          Œ†|                      d¦  «         d S )Nr   r%   r·   T)ÚanimatedF)Úblockg333333Ó?r¼   é
   çš™™™™™¹?)r  r¢   rÔ   rÖ   rã   rä   r—   rß   rà   Úcopy_from_bboxÚbboxÚdraw_artistÚblitÚrangeÚrestore_regionr  )r³   rœ   rç   ÚlnÚbgÚjs         r!   Ú_test_number_of_draws_scriptr‰  /  sd  € Ø#Ð#Ð#Ð#Ð#Ð#à�lŠl‰nŒn�G€Cˆð �'Š'�1�a�&˜1˜a˜&¨4ˆ'Ñ
0Ô
0�C€Bð ‡H‚H�5€HÑÔÐØ‡I‚Iˆc�N„N€Nà„J×Ò˜<­Ñ/Ô/Ð/ð 
Œ×	"Ò	" 3¤8Ñ	,Ô	,€Bà‡N‚N�2ÑÔÐà„J‡O‚O�C”HÑÔÐå�2‰YŒYð "ð "ˆàŒ
×!Ò! "Ñ%Ô%Ð%ð �gŠg�q˜!�f˜q !˜fÑ%Ô%‰ˆà
�Š�rÑÔÐàŒ
�Š˜œÑ!Ô!Ð!àŒ
×ÒÑ!Ô!Ð!Ð!ð ‡I‚Iˆc�N„N€N€N€Nr"   Ú	gtk3cairoz#gtk3cairo does not support blittingÚ	gtk4cairoz#gtk4cairo does not support blittingzwx does not support blittingc                 ó”   — t          t          t          | ¬¦  «        }|j                             d¦  «        }d|cxk     rdk     sn J ‚d S )Nrï   Ú	DrawEventr   r  )ró   r‰  rõ   r   rù   )r   rú   Úndrawss      r!   Útest_blitting_eventsr�  p  sX   € õ Ý$­mÀsðLñ Lô L€Dð Œ[×Ò˜{Ñ+Ô+€FØˆvˆ>ˆ>Š>ˆ>˜Š>ˆ>ˆ>ˆ>ˆ>ˆ>ˆ>ˆ>r"   c                  ó„   — dd l mc m}  dd l}| j                             ¦   «          |j                             ¦   «          d S )Nr   )ÚIPython.core.interactiveshellÚcoreÚinteractiveshellr  ÚInteractiveShellÚinstancer¢   r®   )ÚipshrÌ   s     r!   Ú_fallback_checkr—  ~  sY   € Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÐÐÐØÔ×"Ò"Ñ$Ô$Ð$ØÔ×ÒÑÔÐÐÐr"   c                  ód   — t          j        d¦  «         t          t          t          ¬¦  «        } d S )NÚIPythonr  )rm   rZ  ró   r—  rõ   )Úresponses    r!   Ú"test_fallback_to_different_backendr›  …  s+   € Ý
Ô˜	Ñ"Ô"Ð"õ �?µMÐBÑBÔB€H€H€Hr"   c                  ó²  — ddl m}  dd lm} d}|                     ¦   «         }|                     |¦  «         |j                             d¦  «        } | ¦   «         }|                     |¦  «         | 	                    ¦   «          |                     |¦  «         | 
                    ¦   «          |j        dk    sJ ‚|                     ¦   «          d|_        | 	                    ¦   «          |                     |¦  «         |j        dk    sJ ‚| 	                    ¦   «          |                     |¦  «         |j        dk    sJ ‚|                     d¦  «         d S )	Nr   )ÚMockrÈ   r  r%   Tr·   r¬   )Úunittest.mockr�  r  r¢   r®   rä   r—   rÜ   rÝ   rÀ   ÚstopÚ
call_countÚ
reset_mockÚsingle_shotr°   )r�  r³   Ú
pause_timerœ   rÂ   Úmocks         r!   Ú_impl_test_interactive_timersr¥  �  sW  € ð
 #Ð"Ð"Ð"Ð"Ð"Ø#Ð#Ð#Ð#Ð#Ð#Ø€JØ
�*Š*‰,Œ,€CØ‡I‚IˆjÑÔÐØŒJ× Ò  Ñ%Ô%€EØˆ4‰6Œ6€DØ	×Ò�tÑÔÐØ	‡K‚K�M„M€MØ‡I‚IˆjÑÔÐØ	‡J‚J�L„L€LØŒ?˜QÒÐÐÐð 	‡O‚OÑÔÐØ€EÔØ	‡K‚K�M„M€MØ‡I‚IˆjÑÔÐØŒ?˜aÒÐÐÐð 
‡K‚K�M„M€MØ‡I‚IˆjÑÔÐØŒ?˜aÒÐÐÐØ‡I‚IˆeÑÔÐÐÐr"   c                 óæ   — | d         dk    r(t          j        d¦  «        rt          j        d¦  «         | d         dk    rt          j        d¦  «         t	          t
          t          | ¬¦  «         d S )Nr   rŠ  ÚCIz)gtk3cairo timers do not work in remote CIrO   rî   rï   )r   Úgetenvrm   ro   ró   r¥  rõ   )r   s    r!   Útest_interactive_timersr©  ­  sz   € à
ˆ<Ô˜KÒ'Ð'­B¬I°d©O¬OÐ'ÝŒÐ?Ñ@Ô@Ð@Ø
ˆ<Ô˜DÒ Ð ÝŒÐHÑIÔIÐIÝÕ-Ý%°ð6ñ 6ô 6ð 6ð 6ð 6r"   c                 ó¤  ‡‡	‡
— dd l Š	dd lm} dd lŠdd l}|                     | ¦  «         ˆˆ	fd„}t          ||¦  «        }|                     d|¦  «        Š
|                     ¦   «         }|j	         
                    dd„ ¦  «         |j	         
                    dˆ
fd„¦  «         	  |d
i |¤Ž d S # t          $ r t          dd¬	¦  «         Y d S w xY w)Nr   c                  óî   •— ‰j         dk    rAddlm} m} | j        j        }|j        |j        g|_        |j        |_	         |dd¦  «         d S dd l
} ‰j         ‰j        ¦   «         |j        ¦  «         d S )Nr   r   )ÚwindllÚwintypes)r   Úctypesr¬  r­  Úkernel32ÚGenerateConsoleCtrlEventÚDWORDÚargtypesÚBOOLÚrestyperh  rk  Úgetpidri  )r¬  r­  r°  rh  r   r   s       €€r!   Úinterrupterz&_test_sigint_impl.<locals>.interrupter¿  s–   ø€ ØŒ<˜7Ò"Ð"Ø/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø'-¤Ô'OÐ$Ø19´ÀÄÐ0PÐ$Ô-Ø/7¬}Ð$Ô,Ø$Ð$ Q¨Ñ*Ô*Ð*Ð*Ð*àˆMˆMˆMØˆBŒG�I�B”I‘K”K ¤Ñ/Ô/Ð/Ð/Ð/r"   r%   r¼   c                  ó$   — t          dd¬¦  «        S ©NÚDRAWT©Úflush©rà   ©r   s    r!   rÃ   z#_test_sigint_impl.<locals>.<lambda>Ï  s   € •e˜F¨$Ð/Ñ/Ô/€ r"   c                  ó,   •— ‰                      ¦   «         S r¾   r¿   )r   rÂ   s    €r!   rÃ   z#_test_sigint_impl.<locals>.<lambda>Ó  s   ø€ �e—k’k‘m”m€ r"   ÚSUCCESSTrº  r8   )r   r  r¢   r   Ú	threadingr5  ÚgetattrÚTimerr®   r—   rß   ÚKeyboardInterruptrà   )r¦   Útarget_namer   r³   rÀ  r¶  Útargetrœ   r   r   rÂ   s           @@@r!   Ú_test_sigint_implrÆ  ·  s>  øøø€ Ø€J€J€JØ#Ð#Ð#Ð#Ð#Ð#Ø€I€I€IØÐÐÐà×Ò�wÑÔÐð	0ð 	0ð 	0ð 	0ð 	0ð 	0õ �S˜+Ñ&Ô&€FØ�OŠO˜A˜{Ñ+Ô+€EØ
�*Š*‰,Œ,€CØ„J×ÒØØ/Ð/ñô ð ð „J×ÒØØ#Ð#Ð#Ð#ñô ð ð%ØˆÐÐ�ÐÐÐÐÐøÝð %ð %ð %Ýˆi˜tÐ$Ñ$Ô$Ð$Ð$Ð$Ð$ð%øøøs   Â&B0 Â0CÃCztarget, kwargsrã   r}  rä   Úintervalr~  c                 ó$  — |                       d¦  «        }|                     d¦  «        st          j        d¦  «         t	          j        t          ¦  «        d|›d|›d|›d�z   }t          t          j	        d|g¦  «        5 }	 | 
                    d¦  «         |                     t          ¬	¦  «        \  }}n:# t          $ r- |                     ¦   «          |                     ¦   «         \  }}‚ w xY wd
|v sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©ÚqtrQ   ú-SIGINT currently only tested on qt and macosxz
_test_sigint_impl(rY   ú)rY  r¹  r  r¿  )rg   rf   rm   ro   r[  r\  rÆ  r	   r   r]  r,   Úcommunicaterõ   Ú	Exceptionrk  )r   rÅ  r   r¦   rl  rú   r   rF  s           r!   Útest_sigintrÏ  Û  st  € ð �gŠg�lÑ#Ô#€GØ×ÒÐ.Ñ/Ô/ð EÝŒÐCÑDÔDÐDÝÔÕ 1Ñ2Ô2ØI WÐIÐI°&ÐIÐI¸fÐIÐIÐIñJ€Få	�cœn¨d°FÐ;Ñ	<Ô	<ð #Àð	Ø�MŠM˜&Ñ!Ô!Ð!Ø×(Ò(µÐ(Ñ?Ô?‰IˆF�A�AøÝð 	ð 	ð 	Ø�IŠI‰KŒKˆKØ×(Ò(Ñ*Ô*‰IˆF�AØð	øøøð ˜FÐ"Ð"Ð"Ð"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s*   ÂDÂ3B7Â6DÂ77C.Ã.	DÄD	ÄD	c                 óÐ  ‡— dd l }dd lm} |                     | ¦  «         t	          ||¦  «        }|                     ¦   «         }|j                             dd„ ¦  «         |j                             d¬¦  «        Šd‰_	        ‰ 
                    t          dd¬¦  «         ˆfd	„} |j         |j        |¦  «         	  |di |¤Ž d S # t          $ r t          d
d¬¦  «         Y d S w xY w)Nr   r¼   c                  ó$   — t          dd¬¦  «        S r¸  r¼  r½  s    r!   rÃ   z7_test_other_signal_before_sigint_impl.<locals>.<lambda>ú  s   € µu¸VÈ4Ð7PÑ7PÔ7P€ r"   r%   )rÇ  TÚSIGUSR1rº  c                 ó0   •— ‰                      ¦   «          d S r¾   r¿   )ÚsignumÚframerÂ   s     €r!   Úcustom_signal_handlerzD_test_other_signal_before_sigint_impl.<locals>.custom_signal_handler   s   ø€ Ø�Š‰Œˆˆˆr"   r¿  r8   )rh  r  r¢   r5  rÁ  r®   r—   rß   rÜ   r¢  rÝ   rà   rÒ  rÃ  )	r¦   rÄ  r   rh  r³   rÅ  rœ   rÖ  rÂ   s	           @r!   Ú%_test_other_signal_before_sigint_implr×  ñ  s-  ø€ Ø€M€M€MØ#Ð#Ð#Ð#Ð#Ð#à×Ò�wÑÔÐå�S˜+Ñ&Ô&€Fà
�*Š*‰,Œ,€CØ„J×Ò˜<Ð)PÐ)PÑQÔQÐQàŒJ× Ò ¨!Ð Ñ,Ô,€EØ€EÔØ	×Ò•u˜i¨tÐÑ4Ô4Ð4ðð ð ð ð à€F„M�&”.Ð"7Ñ8Ô8Ð8ð%ØˆÐÐ�ÐÐÐÐÐøÝð %ð %ð %Ýˆi˜tÐ$Ñ$Ô$Ð$Ð$Ð$Ð$ð%øøøs   Â<C ÃC%Ã$C%z,No other signal available to send on Windowsc                 ó  — |                       d¦  «        }|                     d¦  «        st          j        d¦  «         |dk    r8|j                             t          j                             d¬¦  «        ¦  «         t          j	        dk    r>|dk    r8|j                             t          j                             d	¬¦  «        ¦  «         t          j        t          ¦  «        d
|›d|›d|›d�z   }t          t          j        d|g¦  «        5 }	 |                     d¦  «         t!          j        |j        t&          j        ¦  «         |                     d¦  «         t!          j        |j        t&          j        ¦  «         |                     t.          ¬¦  «        \  }}n:# t0          $ r- |                     ¦   «          |                     ¦   «         \  }}‚ w xY w	 d d d ¦  «         n# 1 swxY w Y   t3          |¦  «         d|v sJ ‚d S )Nr   rÉ  rË  rQ   zmacosx backend is buggyr]   r_   rã   zQt backend is buggy on macOSz'
_test_other_signal_before_sigint_impl(rY   rÌ  rY  r¹  rÒ  r  r¿  )rg   rf   rm   ro   ÚnodeÚ
add_markerrn   rp   r   r   r[  r\  r×  r	   r]  r,   r   rk  Úpidrh  rÒ  ri  rÍ  rõ   rÎ  rà   )	r   rÅ  r   rd  r¦   rl  rú   r   rF  s	            r!   Útest_other_signal_before_sigintrÜ  
  sL  € ð �gŠg�lÑ#Ô#€GØ×ÒÐ.Ñ/Ô/ð EÝŒÐCÑDÔDÐDØ�(ÒÐØŒ×Ò¥¤× 1Ò 1Ð9RÐ 1Ñ SÔ SÑTÔTÐTÝ
„|�xÒÐ F¨fÒ$4Ð$4ð
 	Œ×ÒÝŒK×ÒÐ%CÐÑDÔDñ	Fô 	Fð 	FåÔÕ EÑFÔFð6Øð6ð 6Ø$ð6ð 6Ø*0ð6ð 6ð 6ñ6€Fõ 
�cœn¨d°FÐ;Ñ	<Ô	<ð 
Àð		Ø�MŠM˜&Ñ!Ô!Ð!ÝŒG�D”H�fœnÑ-Ô-Ð-Ø�MŠM˜)Ñ$Ô$Ð$ÝŒG�D”H�fœmÑ,Ô,Ð,Ø×(Ò(µÐ(Ñ?Ô?‰IˆF�A�AøÝð 	ð 	ð 	Ø�IŠI‰KŒKˆKØ×(Ò(Ñ*Ô*‰IˆF�AØð	øøøð ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
ˆ&�M„M€MØ˜ÐÐÐÐÐÐs+   ÄG'ÄBF ÆG'Æ 7GÇG'Ç'G+Ç.G+)UÚ	functoolsrT   rÉ   r[  rË   r   r   r^  rh  r   r   r’   r`  Úurllib.requestrc  ÚPILr   rm   rÌ   r   Úmatplotlib.backend_toolsr   Úmatplotlib.testingr   ró   r   ÚPopenr	   Ú	lru_cachery   r…   rõ   Ú_retry_countrŸ   rê   rn   ÚparametrizeÚflakyrü   r  Ú_thread_safe_backendsrƒ   Úvaluesr¦   rx   rl   rp   rö   Úpackaging.versionr  Úmac_verÚTimeoutExpiredrg   Úpython_implementationr   rØ   r  r  r  r!  r$  r'  r1  r6  r8  rL  rR  Úskipifrb   rV  rp  rx  rz  r‰  Ú_blit_backendsro   r�  r—  r›  r¥  r©  rÆ  rÏ  r×  rÜ  r8   r"   r!   ú<module>rï     sg
  ðØ Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð à €€€à (Ð (Ð (Ð (Ð (Ð (Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ Vðð ð ð ð ˜*Ô*ñ ô ð ð> Ôð7ð 7ñ Ôð7ðtEð Eð Eð €Ø%Ð%Ñ'Ô'Ð.ˆqˆq¨Q€ð*ð *ð *ð.W<ð W<ð W<ðt „×Ò˜Ð BÐ BÑ DÔ DÑEÔEØ„×Ò˜ Z°Ð$?Ñ@Ô@Ø„×Ò˜,ÐÑ'Ô'ð0ð 0ñ (Ô'ñ AÔ@ñ FÔEð0ð.ð ð ðB ;Ð:Ñ<Ô<Ð à"ð  Hñ  H€EØŒl˜1Œo˜lÔ+€GØ�'ÐÐð 	Œ×ÒØŒK×Ò ZÔ%BÐÑCÔCñ	Eô 	Eð 	Eð 	Eà	�DŠˆØŒ×ÒØŒK×Ò ZÔ%BÐÑCÔCñ	Eô 	Eð 	Eð 	Eà	�HÒ	Ð	Ø+Ð+Ð+Ð+Ð+Ð+Ø"�(Ô"Ñ$Ô$ QÔ'ˆð ð 	0�u�u˜W‘~”~¨¨¨g©¬Ò6Ð6ØŒK×ÒØ”×!Ò!¨Ô)BØ)-ð "ñ /ô /ñ0ô 0ð 0ùð 
Œ�aŒ×	Ò	˜XÑ	&Ô	&¨)Ò	3Ð	3ØŒ×ÒØŒK×Ò ZÔ%BÐÑCÔCñ	Eô 	Eð 	Eñ 	Eà	�GÒ	Ð	Ð > Ô >Ñ @Ô @ÀIÒ MÐ MØŒ×ÒØŒK×ÒðKàð ñ ô ñ	ô 	ð 	ñ 	ð
 �WÒ
Ð
Ø˜œÐ#Ð# ¸"¼*Ð'DÐ'DØ
Œ,˜(Ò
"Ð
" sÔ'7¸¸¸Ô';¸gÒ'EÐ'EØŒ×ÒØŒK×ÒÐEÑFÔFñ	Hô 	Hð 	Hùð „×Ò˜Ð 5Ñ6Ô6Ø„×Ò˜,ÐÑ'Ô'ð0ð 0ñ (Ô'ñ 7Ô6ð0ð
ð ð ð'ð 'ð 'ð
>ð >ð >ð>ð >ð >ð>ð >ð >ð2ð 2ð 2ð"%ð %ð %ð 6ð 6ð 6ð2ð 2ð 2ð$0ð 0ð 0ð& „×ÒØ„L�GÒÐHÐ$FÐ$5Ô$FÑ$HÔ$HÐ HØ4ð ñ 6ô 6ð „×Ò˜Ð&<Ð(9Ð(9Ñ(;Ô(;Ð&<Ñ=Ô=ðJð Jñ >Ô=ñ6ô 6ðJð „×Ò�J "¤*Ð,ØIð ñ Kô Kà„×Ò�C”L GÒ+Ð4TÐÑUÔUðð ñ VÔUñKô Kðð<ð ð ðB „×Ò�C”L GÒ+Ð4LÐÑMÔMØ„×Ò˜Ð BÐ BÑ DÔ DÑEÔEðð ñ FÔEñ NÔMðð&ð &ð &ðR 4Ð3Ñ5Ô5€Øð 
ñ 
€EØŒl˜1Œo˜lÔ+€GØ�+ÒÐàŒ×ÒØŒK×ÒÐBÑCÔCñ	Eô 	Eð 	Eð 	Eà	�KÒ	Ð	àŒ×ÒØŒK×ÒÐBÑCÔCñ	Eô 	Eð 	Eð 	Eà	�DŠˆØŒ×ÒØŒK×ÒÐ;Ñ<Ô<ñ	>ô 	>ð 	>ð 	>à
�WÒ
Ð
Ø˜œÐ#Ð# ¸"¼*Ð'DÐ'DØ
Œ,˜(Ò
"Ð
"Ø
Ô
˜2˜A˜2Ô
 Ò
(Ð
(àŒ×ÒØŒK×ÒÐEÑFÔFñ	
ô 	
ð 	
ùð
 „×Ò˜ Ñ/Ô/à„×Ò˜,ÐÑ'Ô'ðð ñ (Ô'ñ 0Ô/ððð ð ðCð Cð Cðð ð ð@ „×Ò˜Ð BÐ BÑ DÔ DÑEÔEð6ð 6ñ FÔEð6ð!%ð !%ð !%ðH „×Ò˜Ð BÐ BÑ DÔ DÑEÔEØ„×ÒÐ)Øˆg�tˆ_ÐØˆz˜2ÐÐð,ñ ô ð#ð #ñ	ô ñ FÔEð
#ð"%ð %ð %ð2 „×Ò�C”L GÒ+ØIð ñ Kô Kà„×Ò˜Ð BÐ BÑ DÔ DÑEÔEØ„×ÒÐ)Øˆg�tˆ_ÐØˆz˜2ÐÐð,ñ ô ðð ñ	ô ñ FÔEñKô Kðð ð r"   