ó
    “’¤jÃ ã                   ó°  • S SK Jr  S SKrS SKrS SKrS SKJr  S SKrS SKrS SK	r
S SKrS SKJrJr  S SKJr  S SKrS SKJrJrJrJrJrJr  S SK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'J(r(  S SK)J*r*J+r+J,r,J-r-  S SK.J/r0  S SK1r1\1Rd                  S 5       r3\(" S/SSS9S 5       r4\(" S/SSS/SSS9S 5       r5\1Rl                  Ro                  SSS/5      \(" S/SS/SS9S 5       5       r8S r9\1Rl                  Ro                  S / S!Q5      \'" 5       S" 5       5       r:\'" 5       S# 5       r;\'" 5       S$ 5       r<S% r=S& r>\1Rl                  Ro                  S'/ S(Q5      S) 5       r?S* r@\1Rl                  Ro                  S+S,S-/5      S. 5       rA\1Rl                  Ro                  S'/ S/Q5      S0 5       rBS1 rCS2 rDS3 rE\(" S4/SSS9S5 5       rF\R4                  R�                  S5      \'" 5       S6 5       5       rH\1Rl                  Ro                  S7/ S8Q5      S9 5       rIS: rJ\1Rl                  Ro                  S;S<S</S /S<S=/S>/S?S</S@/SAS</S@/SBSC/SD/SES</S/S<SE/S//5      SF 5       rK\1Rl                  Ro                  SGSHSI//SJ4SKSL//SM4\R˜                  S>SN//SO4S>SP//SQ4SESE//SR4S S //SS4/5      ST 5       rMSU rN\1Rl                  Ro                  SGSHSI//S S ///SV4SKSL//SWS ///SX4\R˜                  S>SN/// SYQ//SO4/5      SZ 5       rO\(" S[/SS\9S] 5       rP\(" S^/SS\9S_ 5       rQ\'" 5       S` 5       rRSa rSSb rT\(" Sc/SSS9Sd 5       rU\(" Se/SS/SSSf9Sg 5       rVSh rW\(" Si/SSS9Sj 5       rX\(" Sk/SSSlSm9Sn 5       rY\'" S/So9Sp 5       rZ\(" Sq/SS/SSSf9Sr 5       r[\(" Ss/SSS9St 5       r\Su r]\(" Sv/SSS9Sw 5       r^Sx r_Sy r`Sz raS{ rbS| rcS} rd\1Rl                  Ro                  S~\"\RÊ                  " S5      \RÊ                  " S€5      \RÊ                  " S�5      RÍ                  S‚5      4\#\RÊ                  " S5      \RÊ                  " S€5      \RÊ                  " Sƒ5      RÍ                  S„5      4/5      S… 5       rgS† rhS‡ ri\(" Sˆ/SSS9S‰ 5       rj\(" SŠ/SSS9S‹ 5       rkSŒ rlS� rm\(" SŽ/SSS�Sm9S� 5       rn\(" S‘/SSS9S’ 5       roS“ rp\(" S”/SSS9S• 5       rq\(" S–/\Rä                  " 5       S—:X  a  S OS˜SSS™9Sš 5       rsS› rt\1Rl                  Ro                  SœS�Rë                  5        V s/ s H  n \Rí                  U 5      PM     sn 5      Sž 5       rw\(" SŸ/SSS9S  5       rx\(" S¡/SSS9S¢ 5       ry\(" S£/SSS9S¤ 5       rz\1Rl                  Ro                  S¥\Rö                  \Rø                  S¦ S§ /5      S¨ 5       r}S© r~Sª rS« r€S¬ r�\1Rl                  Ro                  S­S®S¯/5      \1Rl                  Ro                  S°S±S²/5      S³ 5       5       r‚S´ rƒSµ r„S¶ r…\'" / S·QSo9S¸ 5       r†S¹ r‡\R4                  R�                  S5      Sº 5       rˆ\(" S»/SS/SSSf9S¼ 5       r‰ " S½ S¾\GR                  5      r‹S¿ rŒSÀ r�\'" 5       SÁ 5       rŽ\1Rl                  Ro                  SÂSES>/5      \'" 5       SÃ 5       5       r�\'" 5       SÄ 5       r�\(" SÅ/SS\9SÆ 5       r‘\(" SÇ/SS\9SÈ 5       r’\(" SÉ/SSSÊ9SË 5       r“\'" 5       SÌ 5       r”\'" 5       SÍ 5       r•SÎ r–\1Rl                  GR/                  SÏ5      \1Rl                  Ro                  S+S,S-/5      \1Rl                  Ro                  SÐ/ SÑQ/ SÒQ/5      \'" 5       SÓ 5       5       5       5       r˜\'" 5       SÔ 5       r™SÕ ršSÖ r›\1Rl                  Ro                  S×\GR8                  " / SØQ/5      \GR:                  \GR8                  " / SÙQ/5      4\GR8                  " / SÚQ/5      \GR:                  \GR8                  " / SÛQ/5      4\GR8                  " / SØQ/5      \GR<                  \GR8                  " / SÜQ/5      4\GR8                  " SWSÝ//5      \GR<                  \GR8                  " / SÞQ/5      4\GR8                  " SWSW//5      \GR<                  \GR>                  " SßSW5      4\GR8                  " SWSÝ//5      \GR:                  \GR@                  " \GR>                  " SàSW5      \GR>                  " SàSÝ5      /5      RÍ                  S>SE5      4\GR8                  " SWSÝ//5      \GR<                  \GR@                  " \GR>                  " SáSW5      \GRB                  " S<SáSà5      GRE                  \£5      Sá-  Sâ-  SW-   \GR>                  " SáSÝ5      /5      RÍ                  S>SE5      4/5      Sã 5       r¤Sä r¥Så r¦\(" Sæ/SS\Rä                  " 5       S—:X  a  S OSlSç9Sè 5       r§\(" Sé/SSSÊ9Sê 5       r¨\(" Së/SSSÊ9Sì 5       r©\1Rl                  Ro                  SœSí5      \1Rl                  Ro                  SîSï5      Sð 5       5       rª\1Rl                  Ro                  Sñ/ SòQ5      Só 5       r«\1Rl                  Ro                  SôSõ5      \'" / S·QSo9Sö 5       5       r¬\(" S÷/SS\9Sø 5       r­\(" Sù/SS\9Sú 5       r®\(" Sû/SSüSý9Sþ 5       r¯\(" Sÿ/SGS Sý9GS 5       r°\(" GS/SS\9GS 5       r±gs  sn f (  é    )Ú	ExitStackN)ÚPath)Úassert_allcloseÚassert_array_equal)ÚImage)ÚcolorsÚimageÚpatchesÚpyplotÚstyleÚrcParams)Ú
MouseEvent)Ú	AxesImageÚ	BboxImageÚFigureImageÚNonUniformImageÚPcolorImage)Ú	Rectangle)Úcheck_figures_equalÚimage_comparison)ÚBboxÚAffine2DÚ	TransformÚTransformedBboxc                  ó.   •  " S S[         5      n U " 5       $ )zGNon-affine identity transform for compositing with any affine transformc                   ó"   • \ rS rSrSrSrS rSrg)Ú6nonaffine_identity.<locals>.NonAffineIdentityTransformé   é   c                 ó   • U $ ©N© ©Úselfs    Ú©C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\matplotlib/tests/test_image.pyÚinvertedÚ?nonaffine_identity.<locals>.NonAffineIdentityTransform.inverted#   ó   € ØˆKó    r"   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú
input_dimsÚoutput_dimsr&   Ú__static_attributes__r"   r)   r%   ÚNonAffineIdentityTransformr      s   † Øˆ
Øˆõ	r)   r1   )r   )r1   s    r%   Únonaffine_identityr2      s   € ô¤Yô ñ &Ó'Ð'r)   zinterp_alpha.pngTÚ_classic_test)Úremove_textr   c                  óN  • [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  " S5      US'   [        R
                  " [        R                  " S[        R                  S95      US'   UR                  USS	9  UR                  US
S	9  g)z:Test the interpolation of the alpha channel on RGBA imagesé   r   )é   r7   é   ©r7   r7   ).r6   ©Údtype©.é   Únone©ÚinterpolationÚbilinearN)ÚpltÚsubplotsÚnpÚzerosÚonesÚtrilÚuint8Úimshow)ÚfigÚaxlÚaxrÚimgs       r%   Útest_alpha_interprN   (   sz   € ô —l’l 1 aÓ(�O€C‰ˆ#ä
�(Š(�9Ó
€CÜ—'’'˜&“/€Cˆ�Kä—'’'œ"Ÿ'š' &´·±Ñ9Ó:€Cˆ�KØ‡J�Jˆs &€JÑ)Ø‡J�Jˆs *€JÒ-r)   Úinterp_nearest_vs_nonegš™™™™™@ÚpdfÚsvgÚmpl20)ÚtolÚ
extensionsr4   r   c                  ó4  • S[         S'   [        R                  " / SQ/ SQ// SQ/ SQ//[        R                  S9n [        R
                  " SS	5      u  nu  p#UR                  U S
S9  UR                  S5        UR                  U SS9  UR                  S5        g)z5Test the effect of "nearest" and "none" interpolationr=   úsavefig.dpi)éÚ   é¥   é    )éz   ég   éî   )é   éÿ   r   )r^   éc   éG   r:   r6   r   r>   r?   zinterpolation noneÚnearestzinterpolation nearestN)r   rD   ÚarrayrH   rB   rC   rI   Ú	set_title)ÚXrJ   Úax1Úax2s       r%   Útest_interp_nearest_vs_nonerg   5   sˆ   € ð  „Hˆ]ÑÜ
�Š’>¢?Ð3Ú ¢-Ð0ð2Ü9;¿¹ñ	C€Aä—l’l 1 aÓ(�O€C‰ˆ#Ø‡J�Jˆq €JÑ'Ø‡M�MÐ&Ô'Ø‡J�Jˆq 	€JÑ*Ø‡M�MÐ)Õ*r)   ÚsuppressCompositeFÚfigimageÚpng)rT   r   c                 ó6  • [         R                  " SSS9nXl        [        R                  " [        R
                  " S5      S-  [        R
                  " S5      S-  5      u  p#[        R                  " US-  US-  -   X#-  -
  5      n[        R                  " SUS-  -  SUS-  -  -   5      nXES-  -   nUR                  US	S	S
S9  UR                  US S S2S S 24   S	SS
S9  UR                  US S 2S S S24   SS	S
S9  UR                  US S S2S S S24   SSS
S9  g )N©r   r   éd   ©ÚfigsizeÚdpig      Y@r   é   é2   r7   r   Úlower)ÚxoÚyoÚoriginéÿÿÿÿ)rB   Úfigurerh   rD   Úix_ÚarangeÚsinri   )rh   rJ   ÚxÚyÚzÚcrM   s          r%   Útest_figimager€   G   s  € ô �*Š*˜V¨Ñ
-€CØ-ÔÜ�6Š6”"—)’)˜C“. 5Ñ(¬"¯)ª)°C«.¸3Ñ*>Ó?�D€AÜ
�Šˆq�!‰t�a˜‘d‰{˜Q™SÑ Ó!€AÜ
�Šˆr�!�Q‘$‰w˜˜A˜q™D™Ñ Ó!€AØ
�‰c‰'€Cà‡L�L�˜˜q¨€LÑ1Ø‡L�L�‘T�r�Tš1�W‘ !¨°G€LÑ<Ø‡L�L�’Q™˜"˜�W‘ #¨!°G€LÑ<Ø‡L�L�‘T�r�T™4˜R˜4�Z‘ S¨S¸€LÒAr)   c                  óò   • [         R                  " 5       u  pUR                  / SQ5        [        R                  " 5       nU R                  U5        UR                  S5        [         R                  " U5        g )N)r6   r   r=   r   )rB   rC   ÚplotÚioÚBytesIOÚsavefigÚseekÚimread)rJ   ÚaxÚbuffers      r%   Útest_image_python_iorŠ   W   sI   € Ü�lŠl‹n�G€CØ‡G�GŠIÔÜ�ZŠZ‹\€FØ‡K�K�ÔØ
‡K�K�„NÜ‡J‚JˆvÕr)   z!img_size, fig_size, interpolation))r7   r   Úhanning)r7   r7   ra   )r7   é
   ra   )r=   ç333333@r‹   )r=   g333333"@ra   c                 óÔ  • [         R                  R                  S5        [        R                  S   n[         R                  R                  [        XR-  5      [        XR-  5      5      nX4 H  nUR                  X35        M     U R                  5       nUR                  / SQ5        UR                  USS9  UR                  5       nUR                  / SQ5        UR                  XdS9  g )Né!N,rV   ©r   r   r6   r6   Úautor?   )rD   ÚrandomÚseedrB   r   ÚrandÚintÚset_size_inchesrC   Úset_positionrI   )	Úfig_testÚfig_refÚimg_sizeÚfig_sizer@   rp   ÚArJ   rˆ   s	            r%   Útest_imshow_antialiasedr�   `   s±   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3™>Ó*¬C°±Ó,?Ó@€AØÓ"ˆØ×Ñ˜HÖ/ñ #à	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa˜v€IÑ&Ø	×	Ñ	Ó	€BØ‡O�O’LÔ!Ø‡I�Iˆa€IÒ-r)   c                 ó   • [         R                  R                  S5        [        R                  S   n[         R                  R                  [        US-  5      [        US-  5      5      nX4 H  nUR                  SS5        M     U R                  5       nUR                  USS9  UR                  SS5        UR                  SS5        UR                  5       nUR                  US	S9  UR                  SS5        UR                  SS5        g )
Nr�   rV   r=   r�   r‘   r?   rŒ   rq   ra   )rD   r’   r“   rB   r   r”   r•   r–   rC   rI   Úset_xlimÚset_ylim)r˜   r™   rp   rœ   rJ   rˆ   s         r%   Útest_imshow_zoomr¡   x   s×   € ô ‡I�I‡N�N�8ÔÜ
�,‰,�}Ñ
%€CÜ
�	‰	�‰”s˜3 ™7“|¤S¨¨q©£\Ó2€AØÓ"ˆØ×Ñ˜C Ö%ñ #à	×	Ñ	Ó	€BØ‡I�Iˆa˜v€IÑ&Ø‡K�K��BÔØ‡K�K��BÔØ	×	Ñ	Ó	€BØ‡I�Iˆa˜y€IÑ)Ø‡K�K��BÔØ‡K�K��BÕr)   c                 ó$  • [         R                  " S5        [        [        5      R                  S-  n[        [        5      R                  S-  nU R                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        UR                  S5      nUS   R                  [        R                  " U5      5        US   R                  [        R                  " U5      5        g )NÚdefaultú%baseline_images/pngsuite/basn3p04.pngú%baseline_images/test_image/uint16.tifr   r   r6   )r   Úuser   Ú__file__ÚparentrC   rI   r   ÚopenrB   r‡   )r˜   r™   Úpng_pathÚ	tiff_pathÚaxss        r%   Útest_imshow_pilr­   Š   s¼   € ä	‡I‚IˆiÔÜ”H‹~×$Ñ$Ð'NÑN€HÜ”X“×%Ñ%Ð(OÑO€IØ
×
Ñ
˜AÓ
€CØˆ�F‡M�M”%—*’*˜XÓ&Ô'Øˆ�F‡M�M”%—*’*˜YÓ'Ô(Ø
×
Ñ
˜1Ó
€CØˆ�F‡M�M”#—*’*˜XÓ&Ô'Øˆ�F‡M�M”#—*’*˜YÓ'Õ(r)   c                  ó*  • [         R                  " [        R                  R	                  [        R                  R                  [        5      SSS5      5      n U R                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )NÚbaseline_imagesÚ
test_imagez
uint16.tifé €ÿ)rB   r‡   ÚosÚpathÚjoinÚdirnamer§   r;   rD   Úuint16Úsum©rM   s    r%   Útest_imread_pil_uint16r¹   —   sc   € Ü
�*Š*”R—W‘W—\‘\¤"§'¡'§/¡/´(Ó";Ø&¨°lóDó E€Cà�9‰9œŸ	™	Ó!Ð!Ð!Ü�6Š6�#‹;˜)Ó#Ð#Ñ#r)   c                  óÜ   • [         R                  " [        [        5      R                  S-  5      n U R
                  [        R                  :X  d   e[        R                  " U 5      S:X  d   eg )Nr¥   r±   )	rB   r‡   r   r§   r¨   r;   rD   r¶   r·   r¸   s    r%   Útest_imread_fspathr»   ž   sP   € Ü
�*Š*ÜŒX‹×ÑÐ GÑGóI€Cà�9‰9œŸ	™	Ó!Ð!Ð!Ü�6Š6�#‹;˜)Ó#Ð#Ñ#r)   Úfmt)rj   ÚjpgÚjpegÚtiffc                 óB  • U S;  n[         R                  R                  S5        [         R                  R                  SS5      n[        R
                  " 5       n[        R                  " X2U SS9  [        R
                  " 5       n[        R                  " XBU SS9  UR                  S5        [        R                  " X0S9nUR                  S5        [        R                  " X@S9nUR                  SSS	U-   4:X  d   eUR                  SSS	U-   4:X  d   e[        XV5        g )
N)r½   r¾   r6   i@  r   )Úformatrp   rm   r   ©rÁ   r=   )rD   r’   r“   r”   rƒ   r„   rB   Úimsaver†   r‡   Úshaper   )r¼   Ú	has_alphaÚdataÚ	buff_dpi1Úbuff_dpi100Úarr_dpi1Ú
arr_dpi100s          r%   Útest_imsaverË   ¥   sä   € à˜?Ñ*€Iô ‡I�I‡N�N�1Ôô �9‰9�>‰>˜$ Ó"€Dä—
’
“€IÜ‡J‚Jˆy s°Ò2ä—*’*“,€KÜ‡J‚Jˆ{¨°#Ò6à‡N�N�1ÔÜ�zŠz˜)Ñ0€Hà×Ñ�QÔÜ—’˜KÑ4€Jà�>‰>˜d A q¨9¡}Ð5Ó5Ð5Ð5Ø×Ñ  a¨¨Y©Ð7Ó7Ð7Ð7ä�xÕ,r)   c                  ó  • SS/SS/SS//n [         R                  " 5       n[        R                  " XSS9  UR	                  S	5        [        R
                  " U5      n[        [        R                  " U 5      US S 2S S 2S S
24   5        g )N)ç      ð?ç        rÎ   )rÎ   rÍ   rÎ   )rÎ   rÎ   rÍ   )rÍ   rÍ   rÎ   )rÎ   rÍ   rÍ   )rÍ   rÎ   rÍ   rj   rÂ   r   r=   )	rƒ   r„   rB   rÃ   r†   r‡   r   rD   rb   )Úimg_dataÚbuffÚread_imgs      r%   Útest_imsave_python_sequencesrÒ   È   s}   € ð 
˜/Ð*Ø	˜/Ð*Ø	˜/Ð*ð€Hô �:Š:‹<€DÜ‡J‚Jˆt eÒ,Ø‡I�Iˆa„LÜ�zŠz˜$Ó€HäÜ
�Š�ÓØ’’A�r˜�r�Ñõr)   rv   Úupperrs   c                 ó„   • [         R                  " 5       n[        R                  " SSS9n[        R
                  " XSU S9  g )N)rŒ   rŒ   r8   rH   r:   rj   )ÚarrrÁ   rv   )rƒ   r„   rD   rE   ÚmimagerÃ   )rv   ÚbufÚresults      r%   Útest_imsave_rgba_originrÙ   Þ   s/   € ô �*Š*‹,€CÜ�XŠX�k¨Ñ1€FÜ
‡M‚M�#¨%¸Ó?r)   )rj   rP   ÚpsÚepsrQ   c                 ój   • [         R                  " USU  3-  [        R                  " SS//5      U S9  g )Nzunused.r   r6   rÂ   )rB   rÃ   rD   rb   )r¼   Útmp_paths     r%   Útest_imsave_fspathrÞ   æ   s,   € ä‡J‚Jˆx˜G C 5˜/Ñ)¬2¯8ª8°a¸°V°HÓ+=ÀcÓJr)   c                  ó¼  • [         R                  R                  S5        S H·  n [         R                  R                  SSS5      n[        R
                  " 5       n[        R                  " X!U SS9  UR                  S5        [        R                  " U5      nSU-  R                  S	5      nU S
:X  a  US S S2   nSU-  R                  S	5      n[        X5        M¹     g )Nr6   )rs   rÓ   é   r8   rj   )rv   rÁ   r   r^   rH   rs   rw   )rD   r’   r“   r”   rƒ   r„   rB   rÃ   r†   r‡   Úastyper   )rv   rÆ   rÐ   Úarr_bufs       r%   Útest_imsave_color_alpharã   ë   s¯   € ô ‡I�I‡N�N�1Ôã$ˆÜ�y‰y�~‰~˜b " aÓ(ˆÜ�zŠz‹|ˆÜ�
Š
�4 f°UÒ;à�	‰	�!ŒÜ—*’*˜TÓ"ˆð
 �D‘× Ñ  Ó)ˆØ�WÓØ™˜"˜‘:ˆDØ�w‘;×&Ñ& wÓ/ˆä˜4Ö)ò! %r)   c                  ó   • SSK Jn   [        R                  " 5       nU " 5       nUR	                  SS5        [
        R                  " USS/SS//SS	U0S
9  [        R                  " U5      nUR                  S   S:X  d   eg )Nr   )ÚPngInfoÚSoftwareÚtestr6   r   r=   rj   Úpnginfo©rÁ   Ú
pil_kwargs)
ÚPIL.PngImagePluginrå   rƒ   r„   Úadd_textrB   rÃ   r   r©   Úinfo)rå   r×   rè   Úims       r%   Útest_imsave_pil_kwargs_pngrï     sr   € Ý*Ü
�*Š*‹,€CÙ‹i€GØ×Ñ�Z Ô(Ü‡J‚Jˆs�a˜�V˜a ˜VÐ$Ø¨°GÐ(<ò>ä	�Š�C‹€BØ�7‰7�:Ñ &Ó(Ð(Ñ(r)   c                  ób  • SSK Jn   [        R                  " 5       nSS0n[        R
                  " USS/SS//SUS	9  [        U5      S:X  d   e[        R                  " U5      nUR                  R                  5        VVs0 s H  u  pEX   R                  U_M     nnnUS
   S:X  d   eg s  snnf )Nr   )ÚTAGS_V2Údescriptionz
test imager6   r   r=   r¿   ré   ÚImageDescription)ÚPIL.TiffTagsrñ   rƒ   r„   rB   rÃ   Úlenr   r©   Útag_v2ÚitemsÚname)ÚTAGSr×   rê   rî   ÚkÚvÚtagss          r%   Útest_imsave_pil_kwargs_tiffrý     sž   € Ý,Ü
�*Š*‹,€CØ Ð.€JÜ‡J‚Jˆs�a˜�V˜a ˜VÐ$¨VÀ
ÒKÜˆz‹?˜aÓÐÐÜ	�Š�C‹€BØ(*¯	©	¯©Ô(9Ô:Ò(9¡ ˆD‰G�L‰L˜!ŠOÑ(9€DÑ:ØÐ"Ñ# |Ó3Ð3Ñ3ùó ;s   ÂB+Úimage_alphac                  ó"  • [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SS5      u  nu  p#nUR                  U SSS9  UR                  U SSS9  UR                  U SS	S9  g )
Nr   é   r6   r=   rÍ   r>   )Úalphar@   ç      à?ra   )rD   r’   r“   r”   rB   rC   rI   )ÚZrJ   re   rf   Úax3s        r%   Útest_image_alphar    su   € ä‡I�I‡N�N�1ÔÜ
�	‰	�‰�q˜!Ó€AäŸ<š<¨¨1Ó-Ñ€C‰ˆ#�CØ‡J�Jˆq˜¨6€JÑ2Ø‡J�Jˆq˜¨6€JÑ2Ø‡J�Jˆq˜¨9€JÒ5r)   c                 óÂ  • [         R                  R                  S5        [         R                  R                  SSS5      R	                  [         R
                  5      n[         R                  " US-  5      nU R                  SS5      u  u  pEu  pgUR                  USS9  UR                  USS9  UR                  US	S9  UR                  US
S9  [         R                  " U[         R                  " S5      4SS9R	                  [         R
                  5      n[         R                  " U[         R                  " SS[         R                  5      4SS9n	UR                  SS5      u  u  pEu  pgSUS S 2S S 2S4'   UR                  U5        SUS S 2S S 2S4'   UR                  U5        SU	S S 2S S 2S4'   UR                  U	5        SU	S S 2S S 2S4'   UR                  U	5        g )Nr�   r   r=   r^   r   r  ©r  ç      è?gàßßßßßß?gø÷÷÷÷÷ç?)r   r   r6   ©Úaxisr]   é¿   )rD   r’   r“   r”   rá   Úfloat32rH   rC   rI   ÚconcatenaterF   Úfull)
r˜   r™   ÚrgbfÚrgbuÚax0re   rf   r  ÚrgbafÚrgbaus
             r%   Útest_imshow_alphar  %  s€  € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜!˜Q Ó"×)Ñ)¬"¯*©*Ó5€DÜ�8Š8�D˜3‘JÓ€DØ'×0Ñ0°°AÓ6Ñ�Z€c‘�#Ø‡J�Jˆt˜3€JÑØ‡J�Jˆt˜4€JÑ Ø‡J�Jˆt˜7€JÑ#Ø‡J�Jˆt˜7€JÑ#ä�NŠN˜D¤"§'¢'¨)Ó"4Ð5¸AÑ>×EÑEÄbÇjÁjÓQ€EÜ�NŠN˜D¤"§'¢'¨)°S¼"¿(¹(Ó"CÐDÈ1ÑM€EØ&×/Ñ/°°1Ó5Ñ�Z€c‘�#Ø€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÔØ€EŠ!ŠQ�ˆ'�NØ‡J�JˆuÕr)   z%n_channels, is_int, alpha_arr, opaque))r=   FFF)r8   FFF)r8   FTF)r8   FFT)r8   TFFc                 óÐ  • U(       a%  [         R                  R                  SSSSU 45      nO5[         R                  R                  SSU 45      nU(       a  SUS S 2S S 2S4'   U(       a  [         R                  " SS/SS//5      nOS n[        R
                  " 5       u  pgUR                  XES	9nUR                  5         [         R                  R                  XHR                  5        g )
Nr   é   r   r6   r=   ç333333Ó?r  çš™™™™™é?r  )rD   r’   Úrandintrb   rB   rC   rI   Údraw_without_renderingÚtestingr   Ú_A)	Ú
n_channelsÚis_intÚ	alpha_arrÚopaquerb   r  rJ   rˆ   rî   s	            r%   Útest_imshow_multi_drawr!  ?  s·   € ö Ü—	‘	×!Ñ! ! S¨1¨a°Ð*<Ó=‰ä—	‘	× Ñ  ! Q¨
Ð!3Ó4ˆÞØˆE’!’Q˜�'‰NæÜ—’˜3 ˜* q¨# hÐ/Ó0‰àˆä�lŠl‹n�G€CØ	�‰�5ˆÐ	&€BØ×ÑÔ ô ‡J�J×!Ñ! %¯©Õ/r)   c                  óÚ  • [         R                  " 5       u  pUR                  [        R                  " S5      R                  SS5      SS9nSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      S:X  d   eSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      b   eUR                  5         UR                  [        R                  " S5      R                  SS5      S	S9nSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      S:X  d   e[         R                  " 5       u  pUR                  [        R                  " S5      R                  SS5      / S
QS9nSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      S:X  d   eSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      b   eSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      b   e[        5       R                  S5      R                  S5      nUR                  [        R                  " S5      R                  SS5      X�R                  -   S9nSu  p4UR                  R                  X4/5      u  pV[        SU R                  XV5      nUR                  U5      S:X  d   eg )Nrm   rŒ   rÓ   )rv   )r8   r8   Úmotion_notify_eventé,   )g333333$@r8   rs   )r   r  r   r  ©Úextent)ç      Ð?r'  é7   )r  r'  )ç{®Gáz„?g{®Gáz„¿r   r  ©Ú	transform)r=   rŒ   )rB   rC   rI   rD   rz   ÚreshapeÚ	transDatar+  r   ÚcanvasÚget_cursor_dataÚclearr   ÚscaleÚrotate)	rJ   rˆ   rî   r|   r}   ÚxdispÚydispÚeventÚtranss	            r%   Útest_cursor_datar7  Z  sû  € Ü�lŠl‹n�G€CØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÐ	B€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ð �D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,ð ‡H�H„Jà	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1¸'ˆÐ	B€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ä�lŠl‹n�G€CØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1Ò:JˆÐ	K€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ð*ð �D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,à�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EäÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$Ñ,Ð,Ð,ô ‹J×Ñ˜QÓ×&Ñ& sÓ+€EØ	�‰”2—9’9˜S“>×)Ñ)¨"¨bÓ1Ø"§\¡\Ñ1ð 
ð 
3€Bà�D€AØ—<‘<×)Ñ)¨1¨&Ó1�L€EÜÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó*Ð*Ñ*r)   zxy, datar  ç      ø?r6   g      @rà   g      !@ç      #@g      @éU   rw   c                 óR  • [         R                  " / SQ5      n[         R                  " / SQ5      nU[         R                  S S 24   S-  US S 2[         R                  4   S-  -   n[        R                  " 5       u  pV[        XbR                  5       UR                  5       UR                  5       UR                  5       4S9nUR                  X#U5        UR                  U5        UR                  UR                  5       S-
  UR                  5       5        UR                  UR                  5       S-
  UR                  5       5        UR                  R                  U 5      u  p‰[        SUR                  X‰5      n
UR!                  U
5      U:X  d   UR!                  U
5      U45       eg )N)r   r6   r8   é	   rà   )r   r6   r   r=   r8   r   r%  r#  )rD   rb   ÚnewaxisrB   rC   r   ÚminÚmaxÚset_dataÚ	add_imagerŸ   r    r-  r+  r   r.  r/  )ÚxyrÆ   r|   r}   r~   rJ   rˆ   rî   r3  r4  r5  s              r%   Útest_cursor_data_nonuniformrC  Ÿ  s4  € ô 	�ŠÒ!Ó"€AÜ
�Š’Ó!€AØ	Œ"�*‰*’aˆ-Ñ˜!Ñ˜a¢¤2§:¡: Ñ.°Ñ1Ñ1€Aä�lŠl‹n�G€CÜ	˜§U¡U£W¨a¯e©e«g°q·u±u³wÀÇÁÃÐ$HÑ	I€BØ‡K�K��aÔØ‡L�L�Ôà‡K�K�—‘“˜!‘˜QŸU™U›WÔ%Ø‡K�K�—‘“˜!‘˜QŸU™U›WÔ%à—<‘<×)Ñ)¨"Ó-�L€EÜÐ,¨c¯j©j¸%ÓG€EØ×Ñ˜eÓ$¨Ó,ÐO¨r×/AÑ/AÀ%Ó/HÈ$Ð.OÓOÑ,r)   z
data, texti'  i'  z[10001.000]g°rh‘í|¿?g/Ý$�•ï?z[0.123]r   z[]g     ð?z[1.0000000000000000]z[-1.0]z[0.00]c                 ó  • [         R                  " 5       u  p#UR                  U 5      nUR                  R	                  SS/5      u  pV[        SUR                  XV5      nUR                  UR                  U5      5      U:X  d   eg )Nr   r#  )	rB   rC   rI   r-  r+  r   r.  Úformat_cursor_datar/  )rÆ   ÚtextrJ   rˆ   rî   r3  r4  r5  s           r%   Útest_format_cursor_datarG  ½  so   € ô �lŠl‹n�G€CØ	�‰�4‹€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€EÜÐ,¨c¯j©j¸%ÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÓCÐCÑCr)   c                  ó|  • [         R                  " SS//[         R                  S9n [        R                  " 5       u  pUR                  U [        R                  " 5       S9nUR                  R                  SS/5      u  pE[        SUR                  XE5      nUR                  UR                  U5      5      S:X  d   eg )Nr   r$  r:   ©Únormr6   r#  z[44.000])rD   rb   rH   rB   rC   rI   r   ÚNoNormr-  r+  r   r.  rE  r/  )rÆ   rJ   rˆ   rî   r3  r4  r5  s          r%   Ú%test_format_cursor_data_uint8_no_normrL  Ï  s’   € Ü�8Š8�a˜�W�I¤R§X¡XÑ.€DÜ�lŠl‹n�G€CØ	�‰�4œfŸmšm›oˆÐ	.€Bà—<‘<×)Ñ)¨1¨a¨&Ó1�L€EÜÐ,¨c¯j©j¸%ÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸zÓIÐIÑIr)   z[10001.000, 0.000]çš™™™™™¹?z[0.123, 0.100]©r   r   r   c                 óà  • [         R                  " 5       u  p#[        R                  S   n[        R                  S   nUR                  SS//5      nXFR                  l        [        R                  " UR                  UR                  /5      UR                  l        [        R                  R                  R                  X`5        UR                  R                  SS/5      u  px[!        SUR"                  Xx5      n	UR%                  UR'                  U	5      5      U:X  d   eXVR                  l        [!        SUR"                  Xx5      n	UR%                  UR'                  U	5      5      U:X  d   eg )NÚBiOrangeBlueÚ2VarAddAr   r6   r#  )rB   rC   ÚmplÚbivar_colormapsÚmultivar_colormapsrI   Ú	colorizerÚ_cmapr   Ú	MultiNormrJ  Ú_normÚColorizingArtistÚ	set_arrayr-  r+  r   r.  rE  r/  )
rÆ   rF  rJ   rˆ   Ú
cmap_bivarÚcmap_multivarrî   r3  r4  r5  s
             r%   Ú!test_format_cursor_data_multinormr]  Ù  s  € ô �lŠl‹n�G€CÜ×$Ñ$ ^Ñ4€JÜ×*Ñ*¨:Ñ6€Mð 
�‰�Q˜�F�8Ó	€BØ#‡L�LÔÜ×)Ò)¨2¯7©7°B·G±GÐ*<Ó=€B‡L�LÔÜ‡M�M×"Ñ"×,Ñ,¨RÔ6à—<‘<×)Ñ)¨1¨a¨&Ó1�L€EÜÐ,¨c¯j©j¸%ÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÓCÐCÐCà&‡L�LÔÜÐ,¨c¯j©j¸%ÓG€EØ× Ñ  ×!3Ñ!3°EÓ!:Ó;¸tÓCÐCÑCr)   Ú
image_clip)r   c                  óÆ   • SS/SS//n [         R                  " 5       u  pUR                  U 5      n[        R                  " SSUR
                  S9nUR                  U5        g )Nr6   r   r=   r8   ©r   r   )Úradiusr+  )rB   rC   rI   r
   ÚCircler-  Úset_clip_path)ÚdrJ   rˆ   rî   Úpatchs        r%   Útest_image_cliprf  ý  sR   € à
ˆQˆ�!�Q�Ð€Aä�lŠl‹n�G€CØ	�‰�1‹€BÜ�NŠN˜6¨!°r·|±|ÑD€EØ×Ñ�UÕr)   Úimage_cliprectc                  óÚ   • [         R                  " 5       u  pSS/SS//nUR                  USS9n[        R                  " SSSUR
                  R                  S9nUR                  U5        g )	Nr6   r   r=   r8   ©r   r7   r   r7   r%  ©r6   r6   )rB  ÚwidthÚheightr+  )rB   rC   rI   r
   r   Úaxesr-  rc  )rJ   rˆ   rd  rî   Úrects        r%   Útest_image_cliprectro    se   € ä�lŠl‹n�G€CØ
ˆQˆ�!�Q�Ð€Aà	�‰�1˜\ˆÐ	*€Bä×ÒØ˜ 1°·±×0AÑ0AñC€Dà×Ñ�TÕr)   c                 óv  • [         R                  " S5      R                  S5      nUR                  5       nUR	                  US S 2S S 2S4   SSS9  UR                  SS5        UR                  SS5        U R                  5       nUR	                  USSS9  UR                  SS5        UR                  SS5        g )Nrm   )rŒ   rŒ   r6   r   rA   )r6   r   r6   r   )r@   r&  r=   )rD   rz   r,  rC   rI   rŸ   r    )r˜   r™   rÕ   rˆ   s       r%   Útest_imshow_10_10_1rq    sž   € ô �)Š)�C‹.×
 Ñ
  Ó
-€CØ	×	Ñ	Ó	€BØ‡I�Iˆc’!’Q˜�'‰l¨*¸\€IÑJØ‡K�K��1ÔØ‡K�K��1Ôà	×	Ñ	Ó	€BØ‡I�Iˆc °L€IÑAØ‡K�K��1ÔØ‡K�K��1Õr)   c                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)NéÈ   )rŒ   rŒ   r   ©	rB   rC   rD   rz   r,  ÚpytestÚraisesÚ	TypeErrorrI   ©rJ   rˆ   rÕ   s      r%   Útest_imshow_10_10_2ry  "  óJ   € Ü�lŠl‹n�G€CÜ
�)Š)�C‹.×
 Ñ
  Ó
-€CÜ	�Š”yÕ	!Ø
�	‰	�#Œ÷ 
"×	!Ö	!úó   ÁA2Á2
B c                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  S5      n[
        R                  " [        5         UR                  U5        S S S 5        g ! , (       d  f       g = f)Niô  )rŒ   rŒ   r7   rt  rx  s      r%   Útest_imshow_10_10_5r}  )  rz  r{  Úno_interpolation_originc                  ó  • [         R                  " S5      u  pUS   R                  [        R                  " S5      R                  S5      SSS9  US   R                  [        R                  " S5      R                  S5      SS	9  g )
Nr   r   rm   )r   rr   rs   r>   )rv   r@   r6   r?   )rB   rC   rI   rD   rz   r,  )rJ   r¬   s     r%   Útest_no_interpolation_originr€  0  sg   € ä�|Š|˜A‹�H€CØˆ�F‡M�M”"—)’)˜C“.×(Ñ(¨Ó1¸'Ø &ð ñ (àˆ�F‡M�M”"—)’)˜C“.×(Ñ(¨Ó1À€MÒHr)   Úimage_shift)rT   r4   r   c            
      óF  • [        SS5       V Vs/ s H)  n [        SS5       Vs/ s H  nSU-  SU -  -   PM     snPM+     nn nSnSn[        R                  " 5       u  pVUR                  U[        R
                  " 5       SX4SS4S9  UR                  S5        g s  snf s  snn f )Nr6   rm   g�Mòãûk&Ag˜Šäûk&Ar>   )rJ  r@   r&  r‘   )ÚrangerB   rC   rI   r   ÚLogNormÚ
set_aspect)r}   r|   ÚimgDataÚtMinÚtMaxrJ   rˆ   s          r%   Útest_image_shiftr‰  8  s”   € ô @EÀQÈ¼}ÔMº}¸!¤u¨Q°¤}Ó5¢} !��A‘˜˜A™”¡}Ô5¹}€GÑMØ€DØ€Dä�lŠl‹n�G€CØ‡I�IˆgœFŸNšNÓ,¸FØ ! SÐ)ð ñ +à‡M�M�&Õùò 6ùÓMs   �B¤B¹BÂBc                  óŒ  • [         R                  " SS/S9n U R                  SSS9n[        R                  " [        R
                  " S5      S5      R                  SS	5      nUR                  US
/ SQSSS9nS=pEUR                  U* U5        UR                  U* U5        UR                  / 5        UR                  / 5        [        R                  " 5       nU R                  USS9  UR                  S5        [         R                   " U5      n[#        US S 2S4   5      u  pxpš[#        US S 2S4   5      u  pxpšUS:w  d   S5       eg )Nr6   ©ro   r�   F)Úframeoné   é   rq   r<  rÓ   ©éöÿÿÿrŒ   r�  rŒ   r>   Úgray)rv   r&  r@   Úcmapr   )r   r6   r   )Ú	facecolorr   rw   rm   z.Expected a non-green edge - but sadly, it was.)rB   rx   Úadd_axesrD   Útilerz   r,  rI   rŸ   r    Ú
set_xticksÚ
set_yticksrƒ   r„   r…   r†   r‡   r·   )rJ   rˆ   rÆ   rî   r|   r}   r×   ÚrÚgÚbÚas              r%   Útest_image_edgesrœ  E  s  € Ü
�*Š*˜a ˜VÑ
$€CØ	�‰�l¨EˆÐ	2€Bä�7Š7”2—9’9˜R“= "Ó%×-Ñ-¨b°!Ó4€Dà	�‰�4 Ò0BØ!'¨fð 
ð 
6€Bð €I€AØ‡K�K���AÔØ‡K�K���AÔà‡M�M�"ÔØ‡M�M�"Ôä
�*Š*‹,€CØ‡K�K�˜y€KÑ)à‡H�HˆQ„Kä	�Š�C‹€BÜ�Rš˜1˜‘X“�J€Aˆ!Ü�Rš˜2˜‘Y“�J€Aˆ!à�‹8ÐEÐEÓE‰8r)   Úimage_composite_backgroundc                  ó  • [         R                  " 5       u  p[        R                  " S5      R	                  SS5      nUR                  U/ SQS9  UR                  U/ SQS9  UR                  S5        UR                  SS5        g )	Nr�  r8   r=   )r   r   rŽ  r   r%  )r8   r   rŽ  r   )r6   r   r   r  r   )rB   rC   rD   rz   r,  rI   Úset_facecolorrŸ   rx  s      r%   Útest_image_composite_backgroundr   a  sg   € ô �lŠl‹n�G€CÜ
�)Š)�B‹-×
Ñ
  1Ó
%€CØ‡I�Iˆcš-€IÑ(Ø‡I�Iˆcš-€IÑ(Ø×Ñ�^Ô$Ø‡K�K��2Õr)   Úimage_composite_alphagìQ¸…ë±?)r4   r   rS   c                  ó–  • [         R                  " 5       u  p[        R                  " S5      nSUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      USS2SS2S4'   [        R                  " S	5      nSUSS2SS2S4'   SUSS2SS2S4'   [        R                  " [        R
                  " SSS5      [        R
                  " SSS5      SSS2   45      SS2[        R                  4   USS2SS2S4'   UR                  U/ S
QSS9  UR                  U/ SQSS9  UR                  U/ SQS9  UR                  U/ SQS9  UR                  U/ SQSS9  UR                  U/ SQSS9  UR                  S5        UR                  SS5        UR                  SS5        g)zo
Tests that the alpha value is recognized and correctly applied in the
process of compositing images together.
)é   é   r8   r6   Nr   çš™™™™™ñ?rM  rw   r=   )r¤  r£  r8   )r6   r   r7   r   r  )r&  r  )r   r=   r7   r   ç333333ã?)r=   r8   r7   r   r%  )r   r7   r6   r   )r   r7   r   r=   )r   r7   r=   r8   )r   r  r   r6   r7   )rB   rC   rD   rE   r  rz   r=  rI   rŸ  rŸ   r    )rJ   rˆ   rÕ   Úarr2s       r%   Útest_image_composite_alphar¨  l  sƒ  € ô �lŠl‹n�G€CÜ
�(Š(�;Ó
€CØ€CŠŠ1ˆaˆ�LÜ—>’>Ü	�Š�1�c˜3Ó	¤§¢¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>€CŠŠ1ˆaˆ�Lä�8Š8�KÓ €DØ€DŠŠAˆqˆ�MØ€DŠŠAˆqˆ�MÜ—N’NÜ	�Š�1�c˜3Ó	¤§¢¨1¨a°Ó!5±d¸°dÑ!;Ð<ó>Ú>?ÄÇÁ¸mñM€DŠŠAˆqˆ�Mà‡I�Iˆcš,¨c€IÑ2Ø‡I�Iˆcš,¨c€IÑ2Ø‡I�Iˆcš,€IÑ'Ø‡I�Iˆdš<€IÑ(Ø‡I�Iˆdš<¨s€IÑ3Ø‡I�Iˆdš<¨s€IÑ3Ø×Ñ�^Ô$Ø‡K�K��1ÔØ‡K�K��1Õr)   )rT   c                 ó|  • [         R                  " S5      R                  S5      nX4 H‰  nUR                  5       nUR	                  U[
        R                  R                  / SQ5      UR                  4S9  UR	                  U[
        R                  R                  / SQ5      UR                  4S9  M‹     SUl	        g )Nr<  ©r=   r=   )r`  ©r   r6   )r6   r   )Ú	clip_path)rj  ©r6   r   )r   r6   T)
rD   rz   r,  Úadd_subplotrI   rR  r³   r   r-  rh   )r˜   r™   ÚtrJ   rˆ   s        r%   Ú#test_clip_path_disables_compositingr°  ˆ  s•   € ä
�	Š	�!‹×Ñ˜VÓ$€AØÓ"ˆØ�_‰_ÓˆØ
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ñ 	/à
�	‰	�!¤§¡§¡Ò.FÓ GØ "§¡ð .ˆ	ó 	/ñ	 #ð !%€GÕr)   Úrasterize_10dpic                  óæ  • [         R                  " SS/SS//5      n [        R                  " SSSS9u  pUS   R	                  U 5        US   R                  SS/SS/SS	S
9  US   R                  SSS9  US   R                  SS/SS/SS9  US   R                  SSS9  U HC  nUR                  / 5        UR                  / 5        UR                  S S  R                  S5        ME     S[        S'   g )Nr6   r   r=   r8   )r=   r6   r‹  r   g      4@T)Ú	linewidthÚ
rasterizedr«  )rw   r   ©ÚxlimÚylim)r³  FrŒ   rV   )rD   ÚasarrayrB   rC   rI   r‚   Úsetr–  r—  ÚspinesÚset_visibler   )rM   rJ   r¬   rˆ   s       r%   Útest_rasterize_dpir¼  ”  sï   € ô �*Š*�q˜!�f˜q !˜fÐ%Ó
&€Cä�|Š|˜A˜q¨&Ñ1�H€Càˆ�F‡M�M�#Ôàˆ�F‡K�K��A�˜˜A˜¨#¸$€KÑ?Øˆ�F‡J�J�F €JÑ)àˆ�F‡K�K��A�˜˜A˜¨#€KÑ.Øˆ�F‡J�J�F €JÑ)ó ˆØ
�‰�bÔØ
�‰�bÔØ
�	‰	‘!ˆ× Ñ  Ö'ñ ð
 !„Hˆ]Òr)   Úbbox_image_invertedc            	      óŒ  • [         R                  " S5      R                  S5      n [        R                  " 5       u  p[        [        [        SS/SS//5      UR                  5      SS9nUR                  U 5        UR                  S5        UR                  SS5        UR                  SS5        UR                  U5        [         R                  " S5      n [        [        [        SS	/S
S//5      UR                  5       R                   5      SS9nUR                  U 5        UR                  S5        UR                  U5        g )Nrm   ©rŒ   rŒ   r   ra   r?   FrŒ   rM  çš™™™™™É?r  r'  )rD   rz   r,  rB   rC   r   r   r   r-  r@  Úset_clip_onrŸ   r    Ú
add_artistÚidentityÚ
get_figureÚtransFigure)r	   rJ   rˆ   Úbbox_ims       r%   Útest_bbox_image_invertedrÇ  ³  s  € ô �IŠI�c‹N×"Ñ" 8Ó,€Eä�lŠl‹n�G€CÜÜœ˜s C˜j¨1¨a¨&Ð1Ó2°B·L±LÓAØñ!€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡K�K��3ÔØ‡K�K��3ÔØ‡M�M�'Ôä�KŠK˜‹O€Eäœ¬¨s°C¨j¸3À¸+Ð-FÓ(GØ(*¯©«×(CÑ(CóEà&/ñ1€Gð ×Ñ�UÔØ×Ñ˜ÔØ‡M�M�'Õr)   c                  óf  • [         R                  " / SQ/ SQ/ SQ/ SQ/5      n [        R                  " SSS9u  pUR	                  / SQ5        UR                  S	S
5        UR                  S	S
5        UR                  U / SQSS9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        [        R                  " SSS9u  pUR	                  / SQ5        UR                  S
S5        UR                  S	S
5        UR                  U / SQSUR                  S9nUR                  R                  5         UR                  R                  nUR                  U5      n[        UR                  5       SS/SS//5        g )N)r'  r  rÍ   r  )rM  gÍÌÌÌÌÌä?r  çš™™™™™Ù?)r¦  r  rÎ   rÀ  )çffffffæ?çÍÌÌÌÌÌì?rÉ  r¦  r¿  rm   rn   r�   r   r6   )rÉ  rÊ  rÀ  rË  ra   )r&  r@   é�  rs  i¼  i„  r   )r&  r@   r+  )rD   rb   rB   rC   r—   rŸ   r    rI   r.  ÚdrawÚrendererÚget_window_extentr   Ú
get_pointsÚ	transAxes)rî   rJ   rˆ   Úim_objrÎ  Úim_bboxs         r%   Ú$test_get_window_extent_for_AxisImagerÔ  Ì  st  € ô
 
�ŠÒ*Ò,AÚ'Ò)=ð?ó 
@€Bä�lŠl 8°Ñ5�G€CØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yð ð B€Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÔFä�lŠl 8°Ñ5�G€CØ‡O�O’LÔ!Ø‡K�K��1ÔØ‡K�K��1ÔØ�Y‰YØ
Ò'°yØ—,‘,ð ð  €Fð ‡J�J‡O�OÔØ�z‰z×"Ñ"€HØ×&Ñ& xÓ0€Gä�w×)Ñ)Ó+¨s°C¨j¸3À¸*Ð-EÕFr)   zzoom_and_clip_upper_origin.pngc                  óê   • [         R                  " S5      n U R                  S5      n [        R                  " 5       u  pUR                  U 5        UR                  SS5        UR                  SS5        g )Nrm   r¿  ç       @ç      à¿)rD   rz   r,  rB   rC   rI   r    rŸ   )r	   rJ   rˆ   s      r%   Útest_zoom_and_clip_upper_originrØ  ï  sT   € ô �IŠI�c‹N€EØ�M‰M˜(Ó#€Eä�lŠl‹n�G€CØ‡I�IˆeÔØ‡K�K��TÔØ‡K�K��cÕr)   c                  óf   • [         R                  " 5       n [        U 5      nUR                  S5        g )NÚBlues)rB   Úgcar   Úset_cmap©rˆ   rî   s     r%   Útest_nonuniformimage_setcmaprÞ  û  s#   € Ü	�Š‹€BÜ	˜Ó	€BØ‡K�K�Õr)   c                  óŒ   • [         R                  " 5       n [        U 5      nUR                  [         R                  " 5       5        g r!   )rB   rÛ  r   Úset_normÚ	NormalizerÝ  s     r%   Útest_nonuniformimage_setnormrâ    s)   € Ü	�Š‹€BÜ	˜Ó	€BØ‡K�K”—’“Õ r)   c                  óP  • [         R                  " SSS9n [        S5       H$  n[         R                  " SSS5      S-  XS S 24'   M&     [        R
                  " SS5      nUR                  U R                  5       5        [        R                  " 5       u  p4UR                  U5        g )	Nr¿  rH   r:   rŒ   rÎ   rÍ   r^   ÚL)rD   rF   rƒ  Úlinspacer   ÚnewÚputdataÚflattenrB   rC   rI   )ÚimdÚirî   rJ   rˆ   s        r%   Útest_jpeg_2drë    sw   € ä
�'Š'�( 'Ñ
*€CÜ�2ŽYˆÜ—K’K  S¨"Ó-°Ñ3ˆŠqˆD‹	ñ ä	�Š�3˜Ó	!€BØ‡J�Jˆs�{‰{‹}ÔÜ�lŠl‹n�G€CØ‡I�Iˆb…Mr)   c                  óò  • [         R                  " SSS9  [        R                  " S[        S9n [        R
                  " SSS5      U S'   [         R                  " U 5        [        R                  " 5       n[         R                  " US	S
SS9  UR                  S5        [        R                  " U5      n[        UR                  S5      5      nSUs=::  a  S::  d   e   eUR                  S5      nUS:X  d   eg )Nrj  é,  rn   )rí  rí  r8   r:   rÎ   rÍ   r<   Úredr½   )r“  rÁ   rp   r   r  é¯   éæ   r`  )éþ   r   r   )rB   rx   rD   rE   Úfloatrå  ri   rƒ   r„   r…   r†   r   r©   rõ   Ú	getcolorsÚgetpixel)rî   rÐ   r	   Ú
num_colorsÚcorner_pixels        r%   Útest_jpeg_alphar÷    sÄ   € Ü‡J‚J�v 3Ò'ô 
�Š�-¤uÑ	-€BÜ—’˜S # sÓ+€B€v�Jä‡L‚L�Ôä�:Š:‹<€DÜ‡K‚K� ¨e¸Ò=à‡I�Iˆa„LÜ�JŠJ�tÓ€Eô �U—_‘_ SÓ)Ó*€JØ�*Õ# Ó#Ð#Ñ#Ð#Ð#à—>‘> &Ó)€LØ˜;Ó&Ð&Ñ&r)   c                  óô   • [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg ©Nr�  r:   ©r8   r=   çÍÌÌÌÌÌ#@r`  r   úvalue changed)	rB   rÛ  r   rD   rz   rò  r,  r@  r  ©rˆ   rî   r~   s      r%   Útest_axesimage_setdatarþ  *  s`   € Ü	�Š‹€BÜ	�2‹€BÜ
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÓÐ,˜_Ó,Ñr)   c                  óô   • [         R                  " 5       n [        U 5      n[        R                  " S[
        S9R                  S5      nUR                  U5        SUS'   UR                  S   S:X  d   S5       eg rù  )	rB   Úgcfr   rD   rz   rò  r,  r@  r  )rJ   rî   r~   s      r%   Útest_figureimage_setdatar  3  sa   € Ü
�'Š'‹)€CÜ	�SÓ	€BÜ
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ€A€d�GØ�5‰5�‰;˜!ÓÐ,˜_Ó,Ñr)   zimage_cls,x,y,aç      @ç      @g      (@rú  g      @)r=   r   c                 ót  • [         R                  " 5       nU " U5      nUR                  XU5        S=US'   =US'   US'   UR                  S   UR                  S   s=:X  a   UR
                  S   s=:X  a  S:X  d   S5       e   S5       eUR                  XUR                  / UR                  QSP75      5        g )Nrû  r   r`  rü  rw   )rB   rÛ  r@  r  Ú_AxÚ_Ayr,  rÄ   )Ú	image_clsr|   r}   r›  rˆ   rî   s         r%   Útest_setdata_xyar  <  s¤   € ô 
�Š‹€BÙ	�2‹€BØ‡K�K��aÔØÐ€A€a�DÐˆ1ˆQ‰4�!�D‘'Ø�5‰5�‰;˜"Ÿ&™& ™)Õ5 r§v¡v¨a¡yÕ5°AÓ5ÐF°ÓFÑ5ÐF°ÓFÐ5Ø‡K�K��a—i‘i  !§'¡' ¨2¡Ó/Õ0r)   c                  óˆ  • SSK Jn   [        R                  R	                  S5        [        R                  R                  SS5      n[        R                  " SS5      u  p#US   R                  U5      nUS   R                  U5      n[        R                  " XCS   S9  [        R                  " XSS   S9  [        R                  " 5       n[        R                  " USS9  [        R                  " UR                  5       5      nU R                  U5      nS nUR                  S	5       H  n	Uc  U	S
   nM  U	S
   U:w  d  M   e   g )Nr   )ÚElementTreerŒ   r6   r   )rˆ   rQ   rÂ   r	   rk  )Ú	xml.etreer
  rD   r’   r“   r”   rB   rC   Ú
pcolormeshÚcolorbarrƒ   r„   r…   ÚgetvalueÚparseÚiter)
r
  rÆ   rJ   rˆ   Úp1Úp2rÐ   Útreerk  r	   s
             r%   Útest_minimized_rasterizedr  L  sù   € õ &ä‡I�I‡N�N�1ÔÜ�9‰9�>‰>˜"˜bÓ!€Dä�lŠl˜1˜aÓ �G€CØ	ˆA‰×	Ñ	˜$Ó	€BØ	ˆA‰×	Ñ	˜$Ó	€Bä‡L‚L�˜1™ÒÜ‡L‚L�˜1™Òä�:Š:‹<€DÜ‡K‚K�˜UÒ#ä�:Š:�d—m‘m“oÓ&€DØ×Ñ˜TÓ"€DØ€EØ—‘˜7Ö#ˆØ‰=Ø˜'‘NŠEà�W‰~ Õ&Ø�uò $r)   c                  óà  • [        [        5      R                  S-  n S[        R                  S:X  a  SOS-   U R                  5       R                  5       -   n[        R                  " [        SS9   [        R                  " U5        S S S 5        [        R                  R                  U5       n[        R                  " U5        S S S 5        g ! , (       d  f       NM= f! , (       d  f       g = f)Nr¤   zfile:Úwin32z///Ú zPlease open the URL©Úmatch)r   r§   r¨   ÚsysÚplatformÚresolveÚas_posixru  rv  Ú
ValueErrorrB   r‡   ÚurllibÚrequestÚurlopen)r³   ÚurlÚfiles      r%   Útest_load_from_urlr$  m  s£   € Ü”‹>× Ñ Ð#JÑJ€DØÜ—|‘| wÓ.‰e°Bñ8à�\‰\‹^×$Ñ$Ó&ñ'€Cô 
�Š”zÐ)>Ó	?Ü�
Š
�3Œ÷ 
@ä	�‰×	Ñ	 Ô	$¨Ü�
Š
�4Ô÷ 
%Ð	$÷ 
@Õ	?úç	$Õ	$ús   Á0CÂ.CÃ
CÃ
C-Úlog_scale_imagec            	      ó¸   • [         R                  " S5      n SU S S S2'   [        R                  " 5       u  pUR	                  U / SQSSSSS9  UR                  S	S
9  g )Nr¿  r6   r   )r6   rm   r6   rm   Úviridisrw   r‘   )r&  r’  ÚvmaxÚvminÚaspectÚlog)Úyscale)rD   rE   rB   rC   rI   r¹  )r  rJ   rˆ   s      r%   Útest_log_scale_imager-  x  sW   € ä
�Š�Ó€AØ€A�cˆ€c�Fä�lŠl‹n�G€CØ‡I�IˆaÒ(¨y¸qÀrØð ñ à‡F�F�%€FÒr)   Úrotate_imagec            	      óÞ  • Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nXe-
  n[
        R                  " SS5      u  p‰U	R                  USS	S
/ SQSS9n
[        5       R                  S5      U	R                  -   nU
R                  U5        U
R                  5       u  pÍpïU	R                  XÍXÜU/XîXÿU/SSUS9  U	R                  SS5        U	R                  SS5        g )Nr'  ç      Àr  r   r6   r8  r  r>   r'  rs   )éþÿÿÿr8   éýÿÿÿr   T)r@   r’  rv   r&  Úclip_oné   zr--r=   )Úlwr+  r7   r   r8   )rD   rz   ÚmeshgridÚexpÚpirB   rC   rI   r   Ú
rotate_degr-  Úset_transformÚ
get_extentr‚   rŸ   r    )Údeltar|   r}   rd   ÚYÚZ1ÚZ2r  rJ   re   Úim1Útrans_data2Úx1Úx2Úy1Úy2s                   r%   Útest_rotate_imagerF  ƒ  sg  € à€EÜ�IŠI�d˜C Ó'Ð'€AÜ�;Š;�qÓ�D€AÜ	�Š�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&Š&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
‰€Aä�|Š|˜A˜qÓ!�H€CØ
�*‰*�Q f°9Ø#Ú*°Dð ð :€Cô “*×'Ñ'¨Ó+¨c¯m©mÑ;€KØ×Ñ�kÔ"ð —^‘^Ó%�N€BˆBà‡H�Hˆb�b˜bÐ! B¨B°BÐ#7¸À1Ø"ð ñ $ð ‡L�L��AÔØ‡L�L��AÕr)   c                  ó  • [         R                  " 5       n [        R                  " S5      n[        R
                  " XSS9  U R                  S5        [        R                  " U 5      nUR                  S S UR                  :X  d   eg )N)iá  iA  rj   rÂ   r   r   )	rƒ   r„   rD   rE   rB   rÃ   r†   r‡   rÄ   )rÐ   rî   rM   s      r%   Útest_image_preserve_sizerH  Ÿ  s^   € Ü�:Š:‹<€Dä	�Š�*Ó	€BÜ‡J‚Jˆt Ò&à‡I�Iˆa„LÜ
�*Š*�TÓ
€Cà�9‰9�R�aˆ=˜BŸH™HÓ$Ð$Ñ$r)   c                  ó(  • Sn [         R                  " U [        5      n[        R                  " X 4SS9nUR                  S5      nUR                  5         UR                  USSSS9  [        R                  " 5       nUR                  US	S
9  UR                  S5        [        R                  " U5      nUR                  S:X  d   e[        [         R                  " US S 2S S 2S4   [         5      [         R                  " U [         5      S S S2   5        g )Né   F)ro   rŒ  )rÎ   rÎ   rÍ   rÍ   ra   rs   r‘   )r@   rv   r*  r6   )rp   r   )rJ  rJ  r8   rw   )rD   rÃ  rò  rB   rx   r”  Úset_axis_offrI   rƒ   r„   r…   r†   r‡   rÄ   r   r¸  Úbool)ÚnrÆ   rJ   rˆ   rÐ   rM   s         r%   Útest_image_preserve_size2rN  «  sÒ   € Ø	€AÜ�;Š;�qœ%Ó €Dä
�*Š*˜a˜V¨UÑ
3€CØ	�‰Ð*Ó	+€BØ‡O�OÔØ‡I�Iˆd )°GÀF€IÑKÜ�:Š:‹<€DØ‡K�K�˜!€KÑà‡I�Iˆa„LÜ
�*Š*�TÓ
€Cà�9‰9˜	Ó!Ð!Ð!ä”r—z’z #¢aª¨A g¡,´Ó5Ü—{’{ 1¤dÓ+©D¨b¨DÑ1õ3r)   zmask_image_over_under.pngrÍ   c                  óx  • Sn [         R                  " SSU 5      =p[         R                  " X5      u  p4[         R                  " US-  US-  -   * S-  5      S[         R                  -  -  n[         R                  " US-
  S-  S-  US-
  S-  S-  -   * S-  5      S[         R                  -  S-  S-  -  nSXe-
  -  n[
        R                  S	   R                  S
SSS9n[         R                  R                  US:„  U5      n	[
        R                  " SS5      u  n
u  p¼UR                  U	SU[        R                  " SSSS9S/ SQS9nUR                  S5        U
R                  USSUSS9  UR                  U	SU[        R                   " / SQSSS9S/ SQS9nUR                  S5        U
R                  USS SUSS!9  g )"Ngš™™™™™™?r0  r  r   r6   r8  r  rŒ   r‘  r˜  r™  rš  ©ÚoverÚunderÚbadç333333ó?rA   g      ð¿rÍ   F)r)  r(  Úcliprs   )r2  r=   r2  r=   )r@   r’  rJ  rv   r&  zGreen=low, Red=high, Blue=badÚbothÚ
horizontal)ÚextendÚorientationrˆ   r*  ra   )rw   r×  gš™™™™™É¿r   rÀ  r  r6   r  )ÚncolorsrU  zWith BoundaryNormÚproportional)rX  ÚspacingrY  rˆ   r*  )rD   rz   r6  r7  r8  rB   Ú	colormapsÚwith_extremesÚmaÚmasked_whererC   rI   r   rá  rc   r  ÚBoundaryNorm)r<  r|   r}   rd   r=  r>  r?  r  ÚpaletteÚZmrJ   re   rf   rî   s                 r%   Útest_mask_image_over_underrd  ¿  sÆ  € ð €EÜ�IŠI�d˜C Ó'Ð'€AÜ�;Š;�qÓ�D€AÜ	�Š�!�Q‘$˜˜A™‘+� Ñ"Ó	# q¬2¯5©5¡yÑ	1€BÜ
�&Š&�Q˜‘U˜c‘M AÑ%¨!¨a©%°3©¸Ñ(:Ñ:Ð;¸aÑ?Ó
@ØŒr�u‰u‰9�s‰?˜SÑ ñ"€Bà
ˆB‰G‰€Aä�m‰m˜FÑ#×1Ñ1°sÀ#È3Ð1ÐO€GÜ	�‰×	Ñ	˜A ™G QÓ	'€BÜ—l’l 1 aÓ(�O€C‰ˆ#Ø	�‰�B jØ Ü×)Ò)¨t¸#ÀEÑJØ"ª>ð 
ð 
;€Bð ‡M�MÐ1Ô2Ø‡L�L�˜F°Ø ð ñ $ð 
�‰�B iØ Ü×,Ò,Ò-MØ58¸uñFà"ª>ð	 
ð 
;€Bð
 ‡M�MÐ%Ô&Ø‡L�L�˜F¨NØ)¨c¸"ð ò >r)   Ú
mask_imagec                  ó¤  • [         R                  " SS5      u  n u  p[        R                  " S5      n[        R                  USS2SS24'   UR                  USS9  [        R                  " S[        S9nSUSS2SS24'   [        R                  R                  [        R                  " S[        R                  S9U5      nUR                  USS9  g )Nr6   r   r9   ra   r?   r:   T)rB   rC   rD   rF   ÚnanrI   rE   rL  r_  Úmasked_arrayr¶   )rJ   re   rf   rœ   s       r%   Útest_mask_imageri  à  sª   € ô —l’l 1 aÓ(�O€C‰ˆ#ä
�Š�‹€AÜ—&‘&€A€aˆ€cˆ1ˆQˆ3€h�Kà‡J�Jˆq 	€JÑ*ä
�Š�œtÑ$€AØ€A€aˆ€cˆ1ˆQˆ3€h�KÜ
�‰×Ñœ2Ÿ7š7 6´·±Ñ;¸QÓ?€Aà‡J�Jˆq 	€JÒ*r)   c                  óÒ   • [         R                  " S[         R                  5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )Nrl   )rD   r  rg  rB   rC   rI   r.  Ú	draw_idle)rÆ   rJ   rˆ   s      r%   Útest_mask_image_allrl  ò  s>   € ä�7Š7�6œ2Ÿ6™6Ó"€DÜ�lŠl‹n�G€CØ‡I�Iˆd„OØ‡J�J×ÑÕr)   zimshow_endianess.pngc                  óp  • [         R                  " S5      n [         R                  " X 5      u  p[         R                  " US-
  US-
  5      n[        R
                  " SS5      u  nu  pV[        SSSS9nUR                  " UR                  S	5      40 UD6  UR                  " UR                  S
5      40 UD6  g )NrŒ   r7   r6   r   rs   ra   r'  )rv   r@   r’  z<f8z>f8)	rD   rz   r6  ÚhypotrB   rC   ÚdictrI   rá   )r|   rd   r=  r  rJ   re   rf   Úkwargss           r%   Útest_imshow_endianessrq  ú  s�   € ä
�	Š	�"‹€AÜ�;Š;�qÓ�D€AÜ
�Š��Q‘˜˜A™Ó€Aä—l’l 1 aÓ(�O€C‰ˆ#ä˜°	À	ÑJ€Fà‡J‚Jˆq�x‰x˜‹Ñ) &Ò)Ø‡J‚Jˆq�x‰x˜‹Ñ) &Ó)r)   Úimshow_masked_interpolationÚx86_64r)  )rS   r4   r   c                  óð  • [         R                  S   R                  SSSS9n Sn[        R                  " SX-  S-
  S	9n[
        R                  " X-  [        S
9R                  X5      nSUS'   SUS'   [
        R                  US'   [
        R                  " U5      R                  S5      nSUS'   [
        R                  R                  X45      n[        R                  " SS5      u  pV[!        ["        R$                  5      nUR'                  S5        UR'                  S5        [)        XvR+                  5       5       H7  u  p‰U	R-                  U5        U	R/                  X2XS9  U	R1                  S5        M9     g )Nr'  r˜  rš  rú   rP  rq   r   r6   ©r)  r(  r:   rw   r9   g     jø@)rŽ  r7   )rŽ  rŽ  rL  T)r7   rŽ  r=   r   r‘   Úantialiased)rJ  r’  r@   Úoff)rR  r]  r^  r   rá  rD   rz   rò  r,  ÚinfÚ
zeros_likerá   r_  rh  rB   rC   ÚsortedrÖ   Ú	_interpd_ÚremoveÚzipÚravelrc   rI   r
  )
r’  ÚNrM  rÆ   ÚmaskrJ   Úax_gridÚinterpsÚinterprˆ   s
             r%   Ú test_imshow_masked_interpolationr„    s/  € ô
 �=‰=˜Ñ#×1Ñ1°sÀ#È3Ð1ÐO€Dà
€AÜ×Ò˜a a¡c¨!¡eÑ,€Aä�9Š9�Q‘S¤Ñ&×.Ñ.¨qÓ4€Dà€Dˆ�Jð €Dˆ�Kô —6‘6€Dˆ�Lä�=Š=˜Ó×%Ñ% fÓ-€DØ€Dˆ�Kä�5‰5×Ñ˜dÓ)€Dä—<’<  1Ó%�L€CÜ”V×%Ñ%Ó&€GØ‡N�N�6ÔØ‡N�N�=Ô!ä˜'§=¡=£?Ö3‰
ˆØ
�‰�VÔØ
�	‰	�$ Tˆ	Ñ@Ø
�‰�Žò 4r)   c                  óX   • [         R                  " SS/S[        R                  //5        g )Nr6   r   r=   )rB   rI   rD   rg  r"   r)   r%   Útest_imshow_no_warn_invalidr†  -  s   € Ü‡J‚J��A�˜œBŸF™F˜Ð$Õ%r)   r;   zu2 u4 i2 i4 i8 f4 f8c                 ób  • [         R                  " SU S9R                  S5      nU R                  S:w  a  US-  nUS:  nUS:„  nU R                  S:X  a  US-  n[        R
                  " 5       u  pEUR                  U5      R                  5       nXb   S:H  R                  5       (       d   eU R                  S:X  a9  Xc   S	:H  R                  5       (       d   eUR                  R                  S:X  d   eg Xc   S:H  R                  5       (       d   eUR                  [         R                  :X  d   eg )
Nrí  r:   )rŒ   rŒ   r=   ÚurŒ   r   r^   Úfr6   )rD   rz   r,  ÚkindrB   rC   rI   Ú	get_arrayÚallr;   rH   )r;   rÕ   Útoo_lowÚtoo_highÚ_rˆ   Úouts          r%   Ú$test_imshow_clips_rgb_to_valid_ranger‘  1  s
  € ô �)Š)�C˜uÑ
%×
-Ñ
-¨kÓ
:€CØ‡z�z�SÓØˆr‰	ˆØ�A‰g€GØ�S‰y€HØ‡z�z�SÓØ�C‰iˆÜ�LŠL‹N�E€AØ
�)‰)�C‹.×
"Ñ
"Ó
$€CØ‰L˜AÑ×"Ñ"×$Ñ$Ð$Ð$Ø‡z�z�SÓØ‘ Ñ"×'Ñ'×)Ñ)Ð)Ð)Ø�y‰y�~‰~ Ó$Ð$Ñ$à‘ Ñ$×)Ñ)×+Ñ+Ð+Ð+Ø�y‰yœBŸH™HÓ$Ð$Ñ$r)   zimshow_flatfield.pngc                  óž   • [         R                  " 5       u  pUR                  [        R                  " S5      SS9nUR                  SS5        g )Nr9   ra   r?   r  r8  )rB   rC   rI   rD   rF   Úset_clim©rJ   rˆ   rî   s      r%   Útest_imshow_flatfieldr•  F  s7   € ä�lŠl‹n�G€CØ	�‰”2—7’7˜6“?°)ˆÐ	<€BØ‡K�K��CÕr)   zimshow_bignumbers.pngc                  óÜ   • S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/[        R
                  S9nUR                  U5      nUR                  SS5        g )Nra   úimage.interpolation)r6   r   g   ¢”mB)r=   r6   r8   r:   r   r7   )r   rB   rC   rD   rb   Úuint64rI   r“  ©rJ   rˆ   rM   Úpcs       r%   Útest_imshow_bignumbersr›  M  sP   € à&/„HÐ"Ñ#ô �lŠl‹n�G€CÜ
�(Š(’L¢)Ð,´B·I±IÑ
>€CØ	�‰�3‹€BØ‡K�K��1Õr)   zimshow_bignumbers_real.pngc                  óÂ   • S[         S'   [        R                  " 5       u  p[        R                  " / SQ/ SQ/5      nUR                  U5      nUR                  SS5        g )Nra   r—  )rÖ  rÍ   g’ÕMÏð€D)r  rÍ   r  r   r7   )r   rB   rC   rD   rb   rI   r“  r™  s       r%   Útest_imshow_bignumbers_realr�  X  sL   € ð '0„HÐ"Ñ#ô �lŠl‹n�G€CÜ
�(Š(’O¢\Ð2Ó
3€CØ	�‰�3‹€BØ‡K�K��1Õr)   Ú	make_normc                  ó.   • [         R                  " S5      $ ©Nr6   )r   Ú
SymLogNormr"   r)   r%   Ú<lambda>r¢  h  s   € ŒV×Ò˜qÔ!r)   c                  ó.   • [         R                  " S5      $ r   )r   Ú	PowerNormr"   r)   r%   r¢  r¢  i  s   € ŒV×Ò˜aÔ r)   c                 óØ  • [         R                  " 5       u  p[        R                  " [        SS9   UR                  / /U " 5       S9nS S S 5        WR                  / SQ5        UR                  R                  5         [        R                  " [        5         UR                  UR                  R                  5       5        S S S 5        g ! , (       d  f       Nˆ= f! , (       d  f       g = f)Nz.Attempting to set identical low and high xlimsr  rI  )éûÿÿÿr7   r¦  r7   )rB   rC   ru  ÚwarnsÚUserWarningrI   Ú
set_extentr.  rÍ  rv  ÚRuntimeErrorÚ
make_imageÚget_renderer)rž  rJ   rˆ   rî   s       r%   Útest_empty_imshowr­  d  sž   € ô �lŠl‹n�G€CÜ	�Š”kØLó
Nà�Y‰Y˜�t¡)£+ˆYÐ.ˆ÷
Nð ‡M�M’.Ô!Ø‡J�J‡O�OÔä	�Š”|Õ	$Ø
�‰�c—j‘j×-Ñ-Ó/Ô0÷ 
%Ð	$÷
Nõ 
Nú÷ 
%Õ	$ús   ±C
Â*CÃ

CÃ
C)c                  óÊ   • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        U R                  R                  5         g )Nrª  r:   )rB   rC   rI   rD   rE   Úfloat16r.  rÍ  ©rJ   rˆ   s     r%   Útest_imshow_float16r±  v  s8   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh�v¤R§Z¡ZÑ0Ô1à‡J�J‡O�OÕr)   c                  ó¸  • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  S95        [        R                  " [        R
                  [        R                  S5      (       a
  [        5       O[        R                  " [        5         U R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nrª  r:   Úequiv)rB   rC   rI   rD   rE   Ú
longdoubleÚcan_castÚfloat64r   ru  r§  r¨  r.  rÍ  r°  s     r%   Útest_imshow_float128r·  }  sz   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh�v¤R§]¡]Ñ3Ô4ÜŸš¤R§]¡]´B·J±JÀ×HÑHŒ)Œ+Ü�|Š|œKÓ(ñ)ð 	�
‰
�‰Ô÷)÷ )ö )ús   Â'CÃ
Cc                  óŽ   • [         R                  " 5       u  pUR                  [        R                  " SS/SS//[
        S95        g )NTFr:   )rB   rC   rI   rD   rb   rL  r°  s     r%   Útest_imshow_boolr¹  †  s3   € Ü�lŠl‹n�G€CØ‡I�IŒb�hŠh˜˜u˜¨¨t }Ð5¼TÑBÕCr)   c                  óÎ   • [         R                  " 5       u  pUR                  [        R                  " S[        R
                  5      5        U R                  R                  5         g )Nr¿  )rB   rC   rI   rD   r  rg  r.  rÍ  r°  s     r%   Útest_full_invalidr»  ‹  s8   € Ü�lŠl‹n�G€CØ‡I�IŒb�gŠg�h¤§¡Ó'Ô(à‡J�J‡O�OÕr)   zfmt,counted)rÚ   s    colorimage)rQ   s   <imagezcomposite_image,count)Tr6   )Fr   c                 ó  • [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  pE[         R                  " US-  5      n[        R
                  " 5       u  pxUR                  SS5        UR                  U/ SQS9  UR                  US S S	2   / S
QS9  U[        R                  S'   [        R                  " 5       n	UR                  X�S9  U	R                  5       R                  U5      U:X  d   eg )Nr¦  r7   r6   r   r   r=   ©r   r6   r   r6   r%  rw   )r   r=   r   r6   zimage.composite_imagerÂ   )rD   r6  rz   r{   rB   rC   rŸ   rI   r   rƒ   r„   r…   r  Úcount)
r¼   ÚcountedÚcomposite_imager¾  rd   r=  r  rJ   rˆ   r×   s
             r%   Útest_compositerÁ  ’  sË   € ô �;Š;”r—y’y  Q¨Ó*¬B¯IªI°b¸!¸QÓ,?Ó@�D€AÜ
�Šˆq�A‰v‹€Aä�lŠl‹n�G€CØ‡K�K��1ÔØ‡I�Iˆaš€IÑ%Ø‡I�Iˆa‘�"�‰gšl€IÑ+Ø,;„C‡L�LÐ(Ñ)Ü
�*Š*‹,€CØ‡K�K�€KÑ Ø�<‰<‹>×Ñ Ó(¨EÓ1Ð1Ñ1r)   c                  óò   • [         R                  " 5       u  pUR                  S//SS9  UR                  5         UR	                  5         UR                  5       UR                  5       s=:X  a  S:X  d   e   eg )Nr   r½  r%  r«  )rB   rC   rI   ÚrelimÚ	autoscaleÚget_xlimÚget_ylimr°  s     r%   Ú
test_relimrÇ  ¥  sZ   € Ü�lŠl‹n�G€CØ‡I�I�ˆsˆe˜L€IÑ)Ø‡H�H„JØ‡L�L„NØ�;‰;‹=˜BŸK™K›MÕ3¨VÓ3Ð3Ñ3Ð3Ñ3r)   c                  ór  • [         R                  " 5       u  pUR                  5         UR                  SS/SS//SSSSS9nUR	                  SSS9  U R
                  R                  5         [        R                  " U R
                  R                  5       5      S	S S
24   S:H  R                  5       (       d   eg )Nr   r‘   r�  r‘  F)r*  r&  r’  r3  r«  rµ  .r=   )rB   rC   rK  rI   r¹  r.  rÍ  rD   rb   Úbuffer_rgbarŒ  r”  s      r%   Útest_unclippedrÊ  ­  s¢   € Ü�lŠl‹n�G€CØ‡O�OÔØ	�‰�Q˜�F˜Q ˜FÐ#¨FÐ;MØ¨ð 
ð 
/€Bà‡F�F�˜V€FÑ$Ø‡J�J‡O�OÔô �HŠH�S—Z‘Z×+Ñ+Ó-Ó.¨s°B°Q°B¨wÑ7¸1Ñ<×AÑA×CÑCÐCÑCr)   c                  ó*  • [         R                  " S5      u  pU H  nUR                  5         M     US   R                  SS/SS//SSS9nUR	                  S 5        UR                  US   R                  5        [        R                  " 5       nU R                  USS	9  1 UR                  5       kS
1:X  d   eUS   R                  SS9  [        R                  " 5       nU R                  USS	9  UR                  5       UR                  5       :w  d   eg )Nr   r6   r   r=   r‘   r½  )r*  r&  ÚrgbarÂ   r^   )rw   r   )r·  )rB   rC   rK  rI   rc  Úset_clip_boxÚbboxrƒ   r„   r…   r  r¹  )rJ   r¬   rˆ   rî   Ú
buf_beforeÚ	buf_afters         r%   Útest_respects_bboxrÑ  ¹  sô   € Ü�|Š|˜A‹�H€CÛˆØ
�‰Öñ à	ˆQ‰�‰˜˜A˜  A Ð'°¸|ˆÐ	L€BØ×Ñ�TÔð ‡O�O�C˜‘F—K‘KÔ Ü—’“€JØ‡K�K�
 6€KÑ*Ø#ˆZ× Ñ Ó"Ð#¨ vÓ-Ð-Ð-Øˆ�F‡J�J�G€JÑÜ—
’
“€IØ‡K�K�	 &€KÑ)Ø×ÑÓ  I×$6Ñ$6Ó$8Ó8Ð8Ñ8r)   )rj   rP   rQ   c                 óÂ  • [         R                  " SS5      n[         R                  " X"5      u  p4[         R                  " SUS-
  S-  -  US-
  -   5      nXUR	                  5       -  n[
        R                  S   nU R                  5       nUR                  XVUSS	9  UR                  5       nU" [        R                  " 5       " U5      5      n	XiS
'   UR                  U	SS9  g)zPer-pixel alpha channel test.r   r6   r2  r  r   g[�Âõ(\ß?r'  ra   )r  r’  r@   ).rw   r?   N)rD   rå  r6  r7  r?  rR  r]  r®  rI   r   rá  )
r˜   r™   r|   ÚxxÚyyÚzzr  r’  rˆ   rÌ  s
             r%   Útest_image_array_alpharÖ  Ë  sÀ   € ô 	�Š�A�qÓ€AÜ�[Š[˜Ó�F€Bä	�Š�˜˜S™ Q‘Ñ'¨2°©=Ñ9Ó	:€BØ—‘“‰M€Eä�=‰=˜Ñ#€DØ	×	Ñ	Ó	€BØ‡I�Iˆb D¸	€IÑBà	×	Ñ	Ó	€BÙ”× Ò Ô" 2Ó&Ó'€DØˆ�MØ‡I�Iˆd )€IÒ,r)   c                  óÀ   • [         R                  " [        SS9   [        R                  " [
        R                  " S5      SS/S9  S S S 5        g ! , (       d  f       g = f)Nzalpha must be a float, two-dr  rl   r6   r  )ru  rv  rw  rB   rI   rD   rE   r"   r)   r%   Ú!test_image_array_alpha_validationrØ  Þ  s9   € Ü	�Š”yÐ(FÓ	GÜ�
Š
”2—8’8˜FÓ#¨A¨q¨6Ò2÷ 
H×	GÖ	Gús   š,AÁ
Ac                  ó„  • [         R                  S   R                  SS9n [        R                  " SSS9nUR                  S5      n[        R                  " / SQ/[        S	9nUR                  US
U SSS9nUR                  S5        UR                  R                  5         UR                  UR                  R                  5      S   S   nUR                  UR!                  US//S-  -  R"                  R%                  5       5      5      S-  R'                  [(        5      n[        R*                  " XV:H  5      (       d   eg )NÚautumn_rÚ	lightgrey©rR  )gffffffþ?rM  rm   rn   r�   )rw   rw   rw   r   r   r   r   é+   éO   é_   éB   r6   rw   rw   rw   r   r   r   é"   r:   r‘   r   )r*  r’  r)  r(  rw  r6   rŒ   r^   )rR  r]  r^  rB   rx   r”  rD   rb   rò  rI   r
  r.  rÍ  r«  rÎ  r’  rJ  ÚTr~  rá   r•   rŒ  )r’  rJ   rˆ   rÆ   rî   Ú
from_imageÚdirect_computations          r%   Útest_exact_vminrå  ã  s  € ä�=‰=˜Ñ$×2Ñ2¸Ð2ÐE€Dô �*Š*˜Z¨SÑ
1€CØ	�‰�lÓ	#€Bä�8Š8Ú	MÐNÜñ€Dð
 
�‰�4 ¨T¸ÀˆÐ	D€BØ‡G�GˆE„NØ‡J�J‡O�OÔð —‘˜sŸz™z×2Ñ2Ó3°AÑ6°qÑ9€Jð 	�‰�—‘˜ 1 # ¨¡Ñ,×/Ñ/×5Ñ5Ó7Ó8Ó9¸CÑ?ß�fŒSƒkð ô
 �6Š6�*Ñ2×3Ñ3Ð3Ñ3r)   Úimage_placementc            	      óH  • [         R                  " 5       u  pUR                  / SQ/ SQSSS9  [        R                  R                  S5        UR                  [        R                  R                  SS5      SS	S
SSS9  UR                  SS5        UR                  SS5        g)zC
The red box should line up exactly with the outside of the image.
)r   r   r6   r6   r   )r   r6   r6   r   r   r˜  rM  )Úcolorr5  r�   rà   rÚ  r½  r>   rw   r6   )r’  r&  r@   r)  r(  gš™™™™™¹¿r¥  N)
rB   rC   r‚   rD   r’   r“   rI   ÚrandnrŸ   r    r°  s     r%   Útest_image_placementrê  ÿ  s~   € ô �lŠl‹n�G€CØ‡G�GŠOš_°C¸C€GÑ@Ü‡I�I‡N�N�8ÔØ‡I�IŒb�i‰i�o‰o˜b "Ó%¨G¸LØ"¨°!ð ñ 5à‡K�K��eÔØ‡K�K��eÕr)   c                   óJ   ^ • \ rS rSrS rS rU 4S jrS r\S 5       r	Sr
U =r$ )Ú
QuantityNDi  c                 ó\   • [         R                  " U5      R                  U 5      nX#l        U$ r!   )rD   r¸  ÚviewÚunits)ÚclsÚinput_arrayrï  Úobjs       r%   Ú__new__ÚQuantityND.__new__  s%   € Ü�jŠj˜Ó%×*Ñ*¨3Ó/ˆØŒ	Øˆ
r)   c                 ó(   • [        USS 5      U l        g ©Nrï  )Úgetattrrï  )r$   rò  s     r%   Ú__array_finalize__ÚQuantityND.__array_finalize__  s   € Ü˜S '¨4Ó0ˆ�
r)   c                 ó†   >• [        U SS 5      n[        TU ]	  U5      n[        U[        5      (       d  Ub  [	        X25      nU$ rö  )r÷  ÚsuperÚ__getitem__Ú
isinstancerì  )r$   Úitemrï  ÚretÚ	__class__s       €r%   rü  ÚQuantityND.__getitem__  sA   ø€ Ü˜˜g tÓ,ˆÜ‰gÑ! $Ó'ˆÜ�cœ:×&Ñ&¨%Ñ*;Ü˜SÓ(ˆCØˆ
r)   c                 óÂ  • [        X5      nSU;   a  [        $ [        U5      S:X  a1  US   n[        USS5      nU" [        R                  " U5      40 UD6nGOa[        U5      S:X  GaK  US   nUS   n	[        USS5      n
[        U	SS5      nU
c  UOU
n
Uc  U
OUnU[        R
                  [        R                  4;   a  X«:w  a  [        eU
nO¢U[        R                  :X  a  U
 SU 3nO†U[        R                  :X  a	  U
 SU S	3nOiU[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  4;   a  S nO[        $ U" UR!                  [        R"                  5      U	R!                  [        R"                  5      40 UD6nO[        $ Uc  [        R$                  " U5      nU$ ['        X‡5      nU$ )
Nr�  r6   r   rï  Údimensionlessr   Ú*z/(Ú))r÷  ÚNotImplementedrõ   rD   r¸  ÚaddÚsubtractr  ÚmultiplyÚdivideÚgreaterÚgreater_equalÚequalÚ	not_equalÚlessÚ
less_equalrî  Úndarrayrb   rì  )r$   ÚufuncÚmethodÚinputsrp  ÚfuncÚi0ÚunitÚout_arrÚi1Úu0Úu1s               r%   Ú__array_ufunc__ÚQuantityND.__array_ufunc__"  sž  € Ü�uÓ%ˆØ�F‹?Ü!Ð!Üˆv‹;˜!ÓØ˜‘ˆBÜ˜2˜w¨Ó8ˆDÙœ2Ÿ:š: b›>Ñ4¨VÑ4ŠGÜ�‹[˜AÔØ˜‘ˆBØ˜‘ˆBÜ˜˜W oÓ6ˆBÜ˜˜W oÓ6ˆBØ‘z‘ rˆBØ‘z‘ rˆBØœŸ™¤§¡Ð-Ó-Ø“8Ü$Ð$Ø‘Øœ"Ÿ+™+Ó%Ø˜˜Q˜r˜d�|‘Øœ"Ÿ)™)Ó#Ø˜˜R ˜t 1�~‘Øœ2Ÿ:™:¤r×'7Ñ'7ÜŸ8™8¤R§\¡\ÜŸ7™7¤B§M¡Mð3ó 3ð ‘ä%Ð%Ù˜2Ÿ7™7¤2§:¡:Ó.°·±¼¿
¹
Ó0CÑNÀvÑN‰Gä!Ð!Ø‰<Ü—h’h˜wÓ'ˆGð ˆô ! Ó/ˆGØˆr)   c                 ó@   • U R                  [        R                  5      $ r!   )rî  rD   r  r#   s    r%   rû   ÚQuantityND.vI  s   € à�y‰yœŸ™Ó$Ð$r)   )rï  )r*   r+   r,   r-   ró  rø  rü  r  Úpropertyrû   r0   Ú__classcell__)r   s   @r%   rì  rì    s,   ø† òò
1õò%ðN ñ%ó ö%r)   rì  c                  ó*  • [        SS/S5      n U S S  u  p[        R                  " U R                  [        R                  " SS/5      :H  5      (       d   eU R
                  S:X  d   e[        R                  " X-   R                  [        R                  " S/5      :H  5      (       d   eX-  R
                  S:X  d   eX!-  R
                  S:X  d   e[        R                  " [        5         U[        SS5      -     S S S 5        g ! , (       d  f       g = f)Nr6   r   Úmr=   zm*mzm/(m)Ús)	rì  rD   rŒ  rû   r¸  rï  ru  rv  r  )ÚqÚq0Úq1s      r%   Útest_quantityndr(  N  sÑ   € Ü�A�q�6˜3Ó€AØ‰qˆT�F€BÜ�6Š6�!—#‘#œŸš Q¨ FÓ+Ñ+×,Ñ,Ð,Ð,Ø�7‰7�c‹>Ðˆ>Ü�6Š6�2‘7—+‘+¤§¢¨Q¨C£Ñ0×1Ñ1Ð1Ð1Ø‰G�?‰?˜eÓ#Ð#Ð#Ø‰G�?‰?˜gÓ%Ð%Ð%Ü	�Š”zÕ	"Ø
ŒZ˜˜3ÓÒ÷ 
#×	"Ö	"ús   Ã+DÄ
Dc                  óÈ   • [        [        R                  " S5      S5      n [        R                  " 5       u  pUR                  U 5        UR                  R                  5         g )Nrl   r#  )rì  rD   rF   rB   rC   rI   r.  rÍ  )rÕ   rJ   rˆ   s      r%   Útest_imshow_quantityndr*  Z  s<   € ä
”R—W’W˜V“_ cÓ
*€CÜ�lŠl‹n�G€CØ‡I�Iˆc„Nà‡J�J‡O�OÕr)   c                 óH  • [         R                  " SS[         R                  S9nSUSS2S S 24'   [         R                  R	                  USS9nS	UR
                  SS2SS24'   [        R                  S
   R                  SS9nU R                  5       nUR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  U[        R                  " SSS9SSUS9nUR                  [        R                  " SSS95        UR                  SSS9  UR                  5       nUR                  U[        R                  " SSS9SSUS9  UR                  U[        R                  " SSS9SSUS9  UR                  SSS9  g )Nr9   r6   r:   rw   r   r   F)r€  Tr'  ÚwrÜ  r  ru  ri  ra   )rJ  r&  r@   r’  r1  )r7   rŒ   r7   rŒ   ©r   rŒ   rµ  )rD   r  r¶  r_  rb   r€  rR  r]  r^  rC   rI   r   r„  rà  rá  r¹  )r˜   r™   rÆ   Úmasked_datar’  rˆ   rî   s          r%   Útest_norm_changer/  c  s�  € ô �7Š7�6˜1¤B§J¡JÑ/€DØ€Dˆˆ1ˆŠaˆ�Lä—%‘%—+‘+˜d¨�+Ð/€KØ!%€K×Ñ�Q�q�S˜!˜A˜#�XÑä�=‰=˜Ñ#×1Ñ1¸Ð1Ð<€Dà	×	Ñ	Ó	€BØ	�‰�4œfŸnšn°#¸AÑ>Ø&°iÀdð 
ð 
L€Bà‡K�K”× Ò  b¨qÑ1Ô2Ø	�‰�;¤V§^¢^¸À1Ñ%EØ(¸	Èð 
ð 
N€Bà‡K�K”× Ò  b¨qÑ1Ô2Ø‡F�F�˜g€FÑ&à	×	Ñ	Ó	€BØ‡I�Iˆdœ×)Ò)¨r¸Ñ:Ø!°Àð ñ Gà‡I�Iˆk¤× 0Ò 0°b¸qÑ AØ#°9À4ð ñ Ià‡F�F�˜g€FÒ&r)   r|   c                 ó  • [         R                  " SU[         R                  S9nSUSS2S S 24'   U R                  5       nUR	                  U[
        R                  " SUR                  5       S9SS	S
9  [         R                  " SU[         R                  S9nSUSS2S S 24'   UR                  5       n[        R                  S	   R                  SS9nUR	                  U[
        R                  " SUR                  5       S9SUS
9  g )Nr9   r:   g@Œµx¯Dr   r   r6   ru  ra   r'  )rJ  r@   r’  iè  r,  rÜ  )rD   r  r¶  rC   rI   r   r„  r?  rR  r]  r^  rá  )r˜   r™   r|   rÆ   rˆ   r’  s         r%   Útest_huge_range_logr1    sä   € ô �7Š7�6˜1¤B§J¡JÑ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BØ‡I�IˆdœŸš¨Q°T·X±X³ZÑ@Ø%¨Ið ñ 7ô �7Š7�6˜1¤B§J¡JÑ/€DØ€Dˆˆ1ˆŠaˆ�Là	×	Ñ	Ó	€BÜ�=‰=˜Ñ#×1Ñ1¸Ð1Ð<€DØ‡I�Iˆdœ×)Ò)¨q°t·x±x³zÑBØ%¨Dð ò 2r)   c                 ó.  • U R                  SS5      nUR                  SS5      nSS/SS//SS/SS//SS/SS//4n/ SQn[        [        XE5      5       GH=  u  nu  pxX&   R                  U5        X&   R	                  U5        X6   R                  U5        X6   R                  USSSSSSS	9  X6   R                  S
S5        X6   R                  SS
5        X6   R                  R                  5         X6   R                  R                  S5        X6   R                  R                  S5        X6   R                  R                  [        R                  " S/ SQSS95        X6   R                   R                  [        R                  " S/ SQSS95        GM@     g )Nr6   r=   r   )rF   rE   Úmixedra   r  rÓ   ÚGreys)r@   r*  rv   r’  r)  r(  r×  r8  gÍÌÌÌÌÌð?rV  r<  )r6   r   r7   rŒ   T)ÚnbinsÚstepsÚinteger)rC   Ú	enumerater}  rc   ÚspyrI   rŸ   r    ÚxaxisÚtick_topÚtitleÚset_yÚset_ticks_positionÚset_major_locatorÚmtickerÚMaxNLocatorÚyaxis)	r˜   r™   Úax_testÚax_refÚ	plot_dataÚplot_titlesrê  r~   r<  s	            r%   Útest_spy_boxrG  “  s„  € ð ×Ñ  1Ó%€GØ×Ñ˜a Ó#€Fð ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�ÐØ
ˆQˆ�!�Q�Ðð€Iò
 -€Kä"¤3 yÓ#>×?‰ˆ‰:ˆAØ‰
×Ñ˜UÔ#Ø‰
�‰�qÔØ‰	×Ñ˜EÔ"Ø‰	×Ñ˜¨)Ø#*°7ÀØ!"¨ð 	ñ 	,ð 	‰	×Ñ˜4 Ô%Ø‰	×Ñ˜3 Ô%Ø‰	�‰× Ñ Ô"Ø‰	�‰×Ñ˜dÔ#Ø‰	�‰×*Ñ*¨6Ô2Ø‰	�‰×)Ñ)Ü×Ò aª}ÀdÑKô	
ð 	‰	�‰×)Ñ)Ü×Ò aª}ÀdÑK÷	
ò @r)   znonuniform_and_pcolor.pngc                  ó’  • [         R                  " SS9R                  SSSS9n [        U SS/5       Hƒ  u  p[	        XS9nUR                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        UR                  U5        M…     U S	   R                  [        R                  " S5      S	-  [        R                  " S5      S	-  [        R                  " S
5      R                  S5      5        U  H"  nUR                  5         UR                  SS9  M$     g )Nrª  r‹  r=   T)ÚsharexÚshareyra   rA   r?   r   r<  r8   r-  )r¶  )rB   rx   rC   r}  r   r@  rD   rz   r,  rA  Ú
pcolorfastrK  r¹  )r¬   rˆ   r@   rî   s       r%   Útest_nonuniform_and_pcolorrL  ´  sü   € ä
�*Š*˜VÑ
$×
-Ñ
-¨a¸ÀTÐ
-Ð
J€CÜ   y°*Ð&=Ö>ÑˆÜ˜RÑ=ˆØ
�‰”B—I’I˜a“L AÑ%¤r§y¢y°£|°qÑ'8Ü—I’I˜a“L×(Ñ(¨Ó0ô	2à
�‰�RÖñ	 ?ð
 ˆ�F×ÑÜ
�	Š	�!‹˜Ñœ2Ÿ9š9 Q›<¨1Ñ,¬b¯iªi¸«l×.BÑ.BÀ6Ó.JôLãˆØ
�‰Ôà
�‰�GˆÓò r)   znonuniform_logscale.pngc                  óh  • [         R                  " SSS9u  p[        S5       GH  nX   n[        U5      nUR	                  [
        R                  " SS5      S-  [
        R                  " SS5      S-  [
        R                  " S5      R                  S5      5        UR                  SS5        UR                  SS5        UR                  S5        US:X  a   UR                  S	SS
9  UR                  S	SS
9  US:X  a   UR                  S	SS
9  UR                  S	SS
9  UR                  U5        GM     g )Nr=   r6   )ÚncolsÚnrowsr8   r   r<  rª  rà   r+  )Úbase)rB   rC   rƒ  r   r@  rD   rz   r,  rŸ   r    Úset_box_aspectÚ
set_xscaleÚ
set_yscalerA  )r�  r¬   rê  rˆ   rî   s        r%   Útest_nonuniform_logscalerT  Ä  sû   € ä�\Š\ ¨Ñ+�F€Aä�1�XˆØ‰VˆÜ˜RÓ ˆØ
�‰”B—I’I˜a “O qÑ(¬"¯)ª)°A°q«/¸QÑ*>Ü—I’I˜a“L×(Ñ(¨Ó0ô	2à
�‰�A�rÔØ
�‰�A�rÔØ
×Ñ˜!ÔØ�‹6Ø�M‰M˜% aˆMÑ(Ø�M‰M˜% aˆMÑ(Ø�‹6Ø�M‰M˜% aˆMÑ(Ø�M‰M˜% aˆMÑ(Ø
�‰�R×ò r)   zrgba_antialias.png)r   r4   c            	      ó  • [         R                  " SSSSSSS9u  pSn[        R                  " X"45      nSUS S S2S S 24'   [        R                  " U5      U-  S-
  n[        R                  " U5      U-  S-
  n[        R
                  " XE5      u  pg[        R                  " US-  US-  -   5      nS	n	S
n
[        R                  " [        R                  S-  X˜-  X¨S-  -  S-  -   -  5      nSUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   SUS [        US-  5      2S S 24   US [        US-  5      2S S 24   S:  '   US S 2[        US-  5      S 24   US S 2[        US-  5      S 24'   [        R                  USS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   SUSS2SS24'   [         R                  S   R                  SSS9nUR                  5       nUS   R                  USUSSS9  US   R                  US-  S -
  US-  S -   5        US   R!                  US-  S-   US-  S	-
  5        US   R                  USUSSS9  US   R                  US!S"USSS#9  US$   R                  US!S%USSS#9  g )&Nr   )ç      @rV  FT)ro   rI  rJ  Úconstrained_layoutéú   rw   r  rŒ   éK   rÉ  r6   r  rq   rr   g    €„.AéF   éZ   g    €„.Ár4  éÃ   é×   ÚRdBu_rÚyellowÚcyan)rQ  rR  r   ra   g333333ó¿rT  )r@   r’  r)  r(  é   r‘   rÆ   )r@   Úinterpolation_stager’  r)  r(  r=   rÌ  )rB   rC   rD   rF   rz   r6  Úsqrtr{   r8  r•   rg  r]  r^  rè  rI   rŸ   r    )rJ   r¬   r  Úaar|   r}   rd   r=  ÚRÚf0rú   r›  r’  s                r%   Útest_rgba_antialiasrg  Ù  sÌ  € ä�|Š|˜A˜q¨*¸UØ#(¸TñC�H€Cà€AÜ	�Š�!�‹€BØ€B�sˆ€sŠA€v�Jä
�	Š	�!‹�qÑ˜3Ñ€AÜ
�	Š	�!‹�qÑ˜3Ñ€Aä�;Š;�qÓ�D€AÜ
�Š��1‘�q˜!‘t‘Ó€AØ	€BØ
€Aä
�ŠŒr�u‰u�q‰y˜B™F Q¨A©¡X°¡\Ñ1Ñ2Ó3€Að .0€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*Ø-.€A€i„sˆ1ˆQ‰3ƒx€i’€l�O�A�i”s˜1˜Q™3“x�i¢�l‘O cÑ)Ñ*ØšœC  !¡›H™I˜‘€B‚qŒ#ˆa�‰c‹(‰)€|Ñô —v‘v€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆb�ˆe€|ÑØ€B€rˆ"€uˆc�#ˆg€~ÑØ€B€rˆ"€uˆc�#ˆg€~Ñä�=‰=˜Ñ"×0Ñ0°hÀfÐ0ÐM€Dà
�+‰+‹-€Càˆ�F‡M�M�" I°D¸tÈ#€MÑNØˆ�F‡O�O�A�a‘C˜‘F˜A˜a™C ™FÔ#Øˆ�F‡O�O�A�a‘C˜‘F˜A˜a™C ™FÔ#ð ˆ�F‡M�M�" I°D¸tÈ#€MÑNð ˆ�F‡M�M�" FÀØ $¨Sð ñ 2ð
 ˆ�F‡M�M�" FÀØ $¨Sð ò 2r)   c                 ó
  • [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)	zO
Show that interpolation_stage='auto' gives the same as 'data'
for upsampling.
é*N,r8   rA   r'  rÆ   ©r@   r’  rb  r‘   N©rD   r’   r“   r”   rC   rI   ©r˜   r™   Úgridrˆ   s       r%   Ú!test_upsample_interpolation_stagern    sz   € ô ‡I�I‡N�N�:Ôä�9‰9�>‰>˜!˜QÓ€DØ	×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð ñ *ð 
×	Ñ	Ó	€BØ‡I�Iˆd *°9Ø"(ð ò *r)   c                 ó
  • [         R                  R                  S5        [         R                  R                  SS5      nUR	                  5       nUR                  USSSS9  U R	                  5       nUR                  USSSS9  g)zQ
Show that interpolation_stage='auto' gives the same as 'rgba'
for downsampling.
r�   rÌ  r‘   r'  rÌ  rj  Nrk  rl  s       r%   Ú#test_downsample_interpolation_stagerp  !  sz   € ô ‡I�I‡N�N�8Ôä�9‰9�>‰>˜#˜sÓ#€DØ	×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð ñ *ð 
×	Ñ	Ó	€BØ‡I�Iˆd &¨yØ"(ð ò *r)   c                  óz  • S HR  n [         R                  " SU 05         [        R                  " SS//5      R	                  5       U :X  d   e S S S 5        MT     S H9  n [
        R                  " [        5         U [         R                  S'   S S S 5        M;     g ! , (       d  f       M¥  = f! , (       d  f       M_  = f)N©rÆ   rÌ  zimage.interpolation_stager6   r   )ÚDATAÚfooN)	rR  Ú
rc_contextrB   rI   Úget_interpolation_stageru  rv  r  r   )Úvals    r%   Útest_rc_interpolation_stagerx  4  s�   € ÛˆÜ�^Š^Ð8¸#Ð>Õ?Ü—:’:  1˜v˜hÓ'×?Ñ?ÓAÀSÓHÐHÑH÷ @Ñ?ñ  ó %ˆÜ�]Š]œ:Õ&Ø8;ŒC�L‰LÐ4Ñ5÷ 'Ñ&ò %÷ @Ö?ú÷ 'Ö&ús   ž.BÁ8B+Â
B(	Â+
B:	z<ignore:Data with more than .* cannot be accurately displayedzdim, size, msg)Úrowi  € z2\*\*23 columns)Úcoli   z2\*\*24 rowsc           
      ó   • U R                  5       nUR                  5       n[        R                  " SUS-   45      n	SU	S S 2U	R                  S-  S 24'   US:X  a  U	R                  n	UR                  U	SSSSSUS9n
[        R                  " [        S	U S
3S9   [        R                  " 5        nU R                  U5        S S S 5        S S S 5        [        R                  " SUS-  S-   45      n	SU	S S 2U	R                  S-  S 24'   US:X  a  U	R                  n	UR                  U	SSSSSUS9n
g ! , (       d  f       Nt= f! , (       d  f       N}= f)Nr6   r   rz  r   r‘   r½  r>   )r)  r(  r*  r&  r@   rv   zData with more than z  cannot be accurately displayed.r  )rC   rD   rE   Úsizerâ  rI   ru  r§  r¨  rƒ   r„   r…   )r˜   r™   Údimr|  Úmsgrv   Úhigh_memoryrC  rD  rb   rî   r‰   s               r%   Útest_large_imager€  ?  sH  € ð ×ÑÓ!€GØ×ÑÓ€Fä�HŠH�a˜ ™�]Ó#€EØ!"€EŠ!ˆU�Z‰Z˜1‰_ÑÐ
ÑØ
ˆeƒ|Ø—‘ˆØ	�‰˜ A¨AØ%¨lØ&,Ø%ð 
ð 
'€Bô
 
�Š”kØ2°3°%ð 8.ð .ó
/ô �ZŠZŒ\˜Và×Ñ˜VÔ$÷ ÷
/ô �HŠH�a˜ ™ Q™Ð'Ó(€EØ!"€EŠ!ˆU�Z‰Z˜1‰_ÑÐ
ÑØ
ˆeƒ|Ø—‘ˆØ	�‰�u 1¨1°VØ*Ø%+Ø$ð 
ð 
&�B÷ �\ú÷
/õ 
/ús$   ÂD?Â.D.Ã D?Ä.
D<	Ä8D?Ä?
Ec           	      ó´  • [         R                  R                  SS5      S-  S-   nU R                  SS5      nUS   R	                  USS9  US   R	                  USS	S
9  US   R	                  USS9  US   R	                  USSSS9  US   R	                  USSSS9  UR                  SS5      nUS   R	                  U[
        R                  " 5       S9  US   R	                  U[
        R                  " S	S9S9  US   R	                  U[
        R                  " SS9S9  US   R	                  U[
        R                  " SSSS9S9  US   R	                  USSS9  [        US   R                  S   R                  5      [
        R                  L d   e[        R                  " [        5         US   R	                  USS9  S S S 5        g ! , (       d  f       g = f)NrŒ   r  rM  r6   r7   r   r+  rI  rÀ  )rJ  r)  r   Úsymlogr=   r  rÊ  )rJ  r)  r(  r8   Úlogit)r)  )Ú	linthresh)r„  r)  r(  )r  rÊ  )rJ  ÚclimÚfoobar)rD   r’   r”   rC   rI   r   r„  r¡  ÚtypeÚimagesrJ  ru  rv  r  )r˜   r™   r¯  ÚaxtsÚaxrss        r%   Útest_str_normsr‹  g  s˜  € ä
�	‰	�‰�r˜2Ó Ñ# bÑ(€AØ×Ñ˜Q Ó"€DØˆ�G‡N�N�1˜5€NÑ!Øˆ�G‡N�N�1˜5 r€NÑ*Øˆ�G‡N�N�1˜8€NÑ$Øˆ�G‡N�N�1˜8¨"°2€NÑ6Øˆ�G‡N�N�1˜7¨°"€NÑ5Ø×Ñ˜A˜qÓ!€DØˆ�G‡N�N�1œ6Ÿ>š>Ó+€NÑ,Øˆ�G‡N�N�1œ6Ÿ>š>¨rÑ2€NÑ3àˆ�G‡N�N�1œ6×,Ò,°qÑ9€NÑ:Øˆ�G‡N�N�1œ6×,Ò,°q¸rÈÑK€NÑLØˆ�G‡N�N�1˜7¨€NÑ2ä��Q‘—‘˜qÑ!×&Ñ&Ó'¬6¯>©>Ò9Ð9Ð9Ü	�Š”zÕ	"ØˆQ‰�‰�q˜xˆÑ(÷ 
#×	"Ö	"ús   Æ,G	Ç	
Gc                  óê  • [         R                  " [        R                  R                  [        5       S9n [        R                  " [        SS9   U " [        R                  " S5      S 5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S	S9   U " [        R                  " S5      [        R                  " S5      5        S S S 5        [        R                  " [        S
S9   U " [        R                  " S[        R                  5      [        R                  " S5      5        S S S 5        [        R                  " [        SS9   U " [        R                  " S5      [        R                  " S5      R                  5        S S S 5        [        R                  " S5      nSUR                  l        [        R                  " [        SS9   U " [        R                  " S5      U5        S S S 5        g ! , (       d  f       GN�= f! , (       d  f       GN@= f! , (       d  f       GNÿ= f! , (       d  f       GN¾= f! , (       d  f       GN}= f! , (       d  f       GN-= f! , (       d  f       Ná= f! , (       d  f       g = f)Nr*  zincompatible function argumentsr  ©r<  r<  zdifferent dimensionalities)r<  r<  r8   z3D input array must be RGBA)r<  r<  r=   z3D output array must be RGBAzmismatched typeszmust be C-contiguousFzOutput array must be writeable)Ú	functoolsÚpartialrR  Ú_imageÚresampler   ru  rv  rw  rD   rE   r  rH   râ  ÚflagsÚ	writeable)r‘  r�  s     r%   Útest__resample_valid_outputr”  }  sþ  € Ü× Ò ¤§¡×!4Ñ!4ÄÃ
ÑK€HÜ	�Š”yÐ(IÓ	JÙ”—’˜&Ó! 4Ô(÷ 
Kä	�Š”zÐ)EÓ	FÙ”—’˜&Ó!¤2§8¢8¨IÓ#6Ô7÷ 
Gä	�Š”zÐ)EÓ	FÙ”—’˜)Ó$¤b§h¢h¨vÓ&6Ô7÷ 
Gä	�Š”zÐ)FÓ	GÙ”—’˜)Ó$¤b§h¢h¨yÓ&9Ô:÷ 
Hä	�Š”zÐ)GÓ	HÙ”—’˜)Ó$¤b§h¢h¨yÓ&9Ô:÷ 
Iä	�Š”zÐ);Ó	<Ù”—’˜&¤"§(¡(Ó+¬R¯XªX°fÓ-=Ô>÷ 
=ä	�Š”zÐ)?Ó	@Ù”—’˜&Ó!¤2§8¢8¨FÓ#3×#5Ñ#5Ô6÷ 
Aô �(Š(�6Ó
€CØ€C‡I�IÔÜ	�Š”zÐ)IÓ	JÙ”—’˜&Ó! 3Ô'÷ 
KÐ	J÷# 
KÖ	Júç	FÖ	Fúç	FÖ	Fúç	GÖ	Gúç	HÖ	Húç	<Ö	<úç	@Õ	@ú÷
 
KÕ	Júsa   ÁK'Â2K9Ã!2LÄ42LÆ2L/ÇAMÈ<<MË M$Ë'
K6Ë9
LÌ
LÌ
L,Ì/
L>Í
MÍ
M!Í$
M2c                  ó$  •  " S S[         5      n [        R                  " [        SS9   [        R
                  R                  [        R                  " S5      [        R                  " S5      U " 5       5        S S S 5        g ! , (       d  f       g = f)Nc                   ó(   • \ rS rSrS=rrS rS rSrg)Ú=test__resample_nonaffine_mesh_shape.<locals>.BadMeshTransformi—  r   c                 ó   • U $ r!   r"   r#   s    r%   r&   ÚFtest__resample_nonaffine_mesh_shape.<locals>.BadMeshTransform.invertedš  r(   r)   c                 ó.   • [         R                  " S5      $ )Nr­  )rD   rE   )r$   Úvaluess     r%   r+  ÚGtest__resample_nonaffine_mesh_shape.<locals>.BadMeshTransform.transform�  s   € Ü—8’8˜FÓ#Ð#r)   r"   N)	r*   r+   r,   r-   r.   r/   r&   r+  r0   r"   r)   r%   ÚBadMeshTransformr—  —  s   † Ø#$Ð$ˆ
�[ò	õ	$r)   r�  zmesh array should have shaper  r�  )	r   ru  rv  rª  rR  r�  r‘  rD   rE   )r�  s    r%   Ú#test__resample_nonaffine_mesh_shaperž  ”  sZ   € ô$œ9ô $ô 
�Š”|Ð+IÓ	JÜ�
‰
×ÑœBŸHšH VÓ,¬b¯hªh°vÓ.>Ù,Ó.ô	0÷ 
K×	JÖ	Jús   ©ABÂ
Bzdata, interpolation, expected)rM  r  rÀ  )
rM  rM  rM  r  r  r  r  rÀ  rÀ  rÀ  )rM  rÀ  r  rÉ  r  r¦  )	rM  rÀ  rÀ  r  rÉ  rÉ  r  r¦  r¦  )
rM  rM  g333333Ã?gáz®GáÊ?gHáz®GÑ?g=
×£p=Ò?gR¸…ëQÐ?gÍÌÌÌÌÌÌ?rÀ  rÀ  rË  )rM  rM  rM  rM  rM  gìQ¸…ëÁ?g)\�Âõ(Ì?r  gR¸…ëQØ?gq=
×£pÝ?gHáz®Gá?g×£p=
×ã?rÊ  gö(\�Âõè?g…ëQ¸…ë?rË  rË  rË  rË  rË  )r6   rŒ   i   r  r  c                 ó°  • [         R                  " X R                  5       S   :H  5      (       a  SOSn[        5       R	                  UR
                  S   U R
                  S   -  SS9n[         R                  " U5      n[        R                  " XXQS9  [        XbUS9  X5-   n[         R                  " U5      n[        R                  " XUUS9  [        X‚US9  g )Nr   gü©ñÒMb`?r6   )ÚsxÚsyr?   )Úatol)
rD   rŒ  r~  r   r1  rÄ   Ú
empty_likerÖ   r‘  r   )	rÆ   r@   Úexpectedr2   r¢  Úaffine_transformÚaffine_resultÚnonaffine_transformÚnonaffine_results	            r%   Útest_resample_nonaffiner©  ¥  s·   € ô2 —’�tŸz™z›|¨A™Ñ.×/Ñ/‰1°T€Dô  “z×'Ñ'¨8¯>©>¸!Ñ+<¸t¿z¹zÈ!¹}Ñ+LÐQRÐ'ÐSÐä—M’M (Ó+€MÜ
‡O‚O�DÐ)9ÒWÜ�M°$Ò7ð -Ñ?Ðä—}’} XÓ.ÐÜ
‡O‚O�DÐ,?Ø"/ò1äÐ$°TÓ:r)   c                  ó°  • [         R                  " 5       n [        U 5      n[        R                  " [
        SS9   UR                  5         S S S 5        [        R                  " S[        S9R                  S5      nUR                  U5        UR                  5       S:X  d   eUR                  5       UR                  5       :X  d   eg ! , (       d  f       N‚= f)Nz"You must first set the image arrayr  r�  r:   rú  )rB   rÛ  r   ru  rv  rª  Ú	get_shaperD   rz   rò  r,  r@  Úget_sizerý  s      r%   Útest_axesimage_get_shaper­  Ñ  s’   € ä	�Š‹€BÜ	�2‹€BÜ	�Š”|Ð+OÓ	PØ
�‰Œ÷ 
Qä
�	Š	�"œEÑ"×*Ñ*¨6Ó2€AØ‡K�K�„NØ�<‰<‹>˜VÓ#Ð#Ð#Ø�;‰;‹=˜BŸL™L›NÓ*Ð*Ñ*÷ 
QÕ	Pús   ºCÃ
Cc                  óæ  • [         R                  " 5       R                  5       n [        R                  " S5      R                  S5      nU R                  XR                  S9  U R                  5       S:X  d   eU R                  U[        5       R                  S5      U R                  -   S9  U R                  5       S:X  d   eU R                  XR                  SS9  U R                  5       S:X  d   eg )Nr8   rl   r*  r‘   r   r6   )r+  r*  )rB   rx   r®  rD   rz   r,  rI   rÑ  Ú
get_aspectr   r1  r-  rÝ  s     r%   Ú.test_non_transdata_image_does_not_touch_aspectr°  Ý  s¶   € Ü	�Š‹×	!Ñ	!Ó	#€BÜ	�Š�1‹×	Ñ	˜fÓ	%€BØ‡I�IˆbŸL™L€IÑ)Ø�=‰=‹?˜fÓ$Ð$Ð$Ø‡I�IˆbœH›J×,Ñ,¨QÓ/°"·,±,Ñ>€IÑ?Ø�=‰=‹?˜aÓÐÐØ‡I�IˆbŸL™L°€IÑ3Ø�=‰=‹?˜aÓÐÑr)   zdownsampling.png)r   r4   rS   c                  ó@  • Sn [         R                  " U 5      U -  S-
  n[         R                  " U 5      U -  S-
  n[         R                  " X 45      nSUS S S2S S 24'   [         R                  " X5      u  pE[         R                  " US-  US-  -   5      nSnSn[         R
                  " [         R                  S-  Xv-  X†S-  -  S-  -   -  5      n	SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S:  '   SU	S [        U S-  5      2S S 24   US [        U S-  5      2S S 24   S	:  '   U	S S 2[        U S
-  5      S 24   US S 2[        U S
-  5      S 24'   Un	[        R                  " SS
SSS9u  p«US   R                  U	SSSS9  US   R                  SS5        US   R                  SS5        US   R                  S5        [        UR                  SS  / SQ/ SQ5       H/  u  pÍnUR                  X�USS9  UR                  SU SU S35        M1     g )NiÂ  r  rw   r   r7   rm   rÉ  r6   r  r=   )rJ  r   Ú
compressed©ro   Úlayoutr`  ra   rÌ  r^  )r@   rb  r’  é}   rï  rX  rs  ÚZoom)ra   ra   r‹   r‹   r‘   )rÆ   rÌ  rÆ   rÌ  r‘   zinterpolation='z	'
space='Ú')rD   rz   rF   r6  rc  r{   r8  r•   rB   rC   rI   rŸ   r    rc   r}  Úflat)r  r|   r}   rd  rd   r=  re  rf  rú   r›  rJ   r¬   rˆ   rƒ  Úspaces                  r%   Útest_downsamplingrº  è  s)  € ð 	€AÜ
�	Š	�!‹�qÑ˜3Ñ€AÜ
�	Š	�!‹�qÑ˜3Ñ€AÜ	�Š�!�‹€BØ€B�sˆ€sŠA€v�Jä�;Š;�qÓ�D€AÜ
�Š��1‘�q˜!‘t‘Ó€AØ	
€BØ€AÜ
�ŠŒr�u‰u�q‰y˜B™F Q¨A©¡X°¡\Ñ1Ñ2Ó3€Aà13€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Ø12€A€k„sˆ1ˆq‰5ƒz€k’1€nÑ�a˜œ˜Q ™U›˜¢Q˜Ñ'¨#Ñ-Ñ.Øš1œc ! a¡%›j™k˜>Ñ*€B‚qŒ#ˆa�!‰e‹*‰+€~ÑØ
€Aä�|Š|˜A˜q¨&¸ÑF�H€CØˆ�I×Ñ�Q iÀVØ"ð ñ $àˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ�s˜CÔ Øˆ�I×Ñ˜Ôä  §¡¨!¨" ò 0Câ!IöKÑˆ�Eð 	�	‰	�!¸uØð 	ñ 	!à
�‰� v h¨j¸¸¸qÐAÖBòKr)   zdownsampling_speckle.pngc            	      óL  • [         R                  " SSSSSSS9u  pUR                  5       n[        R                  " S5      R                  SS5      [        R                  " S	5      -  S
-  R                  n[         R                  " S5      R                  SS9n[        R                  " SSS9nUS   R                  S5        US   R                  [        R                  " U5      X4SS9  US   R                  S5        US   R                  [        R                  " U5      X4S9  g )Nr6   r   )r7   gš™™™™™@Tr²  )ro   rI  rJ  r´  i   rw   iÐ  rr   r'  r#  )rQ  r=   r£  ru  r   z"interpolation='auto', stage='rgba'rÌ  )r’  rJ  rb  z"interpolation='auto', stage='auto')r’  rJ  )rB   rC   rè  rD   rz   r,  rF   râ  Úget_cmapr^  r   r„  rc   rI   Útriu)rJ   r¬   rM   ÚcmrJ  s        r%   Útest_downsampling_speckler¿    sì   € ä�|Š|˜A˜q¨(¸4ÈØ#/ñ1�H€Cà
�+‰+‹-€CÜ�IŠI�d‹O×#Ñ# B¨Ó*¬R¯WªW°S«\Ñ9¸bÑ@×
CÑ
C€Cä	�Š�iÓ	 ×	.Ñ	.°CÐ	.Ð	8€BÜ�>Š>˜q rÑ*€Dð
 ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'’'˜#“, RÈ€MÑOð ˆ�F×ÑÐ9Ô:Øˆ�F‡M�M”"—'’'˜#“, R€MÒ3r)   zupsampling.pngc                  óÆ  • [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " SSSSS9u  pUS   R                  U S	S
9nUS   R                  S5        US   R                  U S	SS9  US   R                  S5        US   R                  U S	SSS9  US   R                  S5        UR                  X2SSS9  g )Nri  r8   r6   r=   )g      @r=   r²  r³  r   r'  )r’  zAinterpolation='auto'
stage='antialaised'
(default for upsampling)Úsinc©r’  r@   z:interpolation='sinc'
stage='auto'
(default for upsampling)r   rÌ  )r’  r@   rb  z!interpolation='sinc'
stage='rgba'rÊ  rV  )rˆ   ÚshrinkrX  )	rD   r’   r“   r”   rB   rC   rI   rc   r  )r›  rJ   r¬   rî   s       r%   Útest_upsamplingrÄ     s×   € ô ‡I�I‡N�N�:ÔÜ
�	‰	�‰�q˜!Ó€Aä�|Š|˜A˜q¨(¸<ÑH�H€CØ	ˆQ‰�‰�q˜yˆÐ	)€BØˆ�F×ÑØMôOð ˆ�F‡M�M�!˜)°6€MÑ:Øˆ�F×ÑØFôHð ˆ�F‡M�M�!˜)°6Èv€MÑVØˆ�F×ÑÐ9Ô:Ø‡L�L� C°€LÒ7r)   )r¶  r  Úint16r¶   Úint8rH   Úndim)r   r=   c                 ó0  • [         R                  R                  S5      nUS:X  a  SOSnUR                  US9R	                  [         R
                  " U SS95      n[        R                  " 5       u  pVUR                  U5      nUR                  S 5      S     g )	NiU  r   rl   )r   r   r=   )r|  T)Úcopyr   )
rD   r’   Údefault_rngÚuniformrá   r;   rB   rC   rI   r«  )r;   rÇ  ÚrngrÄ   rÆ   rJ   rˆ   Ú
axes_images           r%   Útest_resample_dtypesrÎ  7  sx   € ô �)‰)×
Ñ
 Ó
%€CØ˜a“i‰F Y€EØ�;‰;˜Eˆ;Ð"×)Ñ)¬"¯(ª(°5¸tÑ*DÓE€DÜ�lŠl‹n�G€CØ—‘˜4“€Jà×Ñ˜$Ó Ó"r)   r  )r   r'  r  r  r6   c                 óŒ  • / SQn[         R                  " S5      nXSS S24'   XS'   [        R                  " 5       u  p4UR	                  USSS9nUR                  S 5      S	   nU (       a  [         R                  " US
5      O/ SQn[        [         R                  " UR                  SS5      S	S9/ UQ[        U S
-  5      P/5        g )N)rÀ  rÉ  r¦  )r8   r8   r8   .r=   r<   ra   rÌ  )r@   rb  r   r^   rN  rw   r8   r	  )rD   ÚemptyrB   rC   rI   r«  r	  r   Úuniquer,  r•   )r  ÚrgbrÆ   rJ   rˆ   rÍ  r	   Úexpected_rgbs           r%   Ú,test_rgba_stage_demultiplies_resampled_alpharÔ  H  s°   € ò €CÜ�8Š8�IÓ€DØˆˆbˆqˆbˆ�MØˆ�LÜ�lŠl‹n�G€CØ—‘˜4¨yÈf�ÐU€JØ×!Ñ! $Ó'¨Ñ*€Eæ,1”2—;’;˜s CÔ(²y€Lä”r—y’y §¡¨r°1Ó!5¸AÑ>Ø9˜,Ð9¬¨E°C©KÓ(8Ð9Ð:õ<r)   Ú
intp_stagerr  c                 ó¼  • U R                  SS5      nUR                  SS5      nSu  pVSn[        R                  R                  XV5      n[        R                  R                  XVS5      n	[        R                  " XVS45      n
[        R
                  " X˜R                  XVS45      4SS9nUS   S   R                  U	5        US   S   R                  [        R
                  " Xš4SS95        US   S   R                  X’US	9  US   S   R                  [        R
                  " X—U
-  4SS9US
9  US   S   R                  X’US	9  US   S   R                  X²S
9  US   S   R                  U5        US   S   R                  X˜S9  US   S   R                  X²US	9  US   S   R                  [        R
                  " X—UR                  XVS45      -  4SS9US
9  [        R                  R                  XV5      nUS   S   R                  X²US	9  US   S   R                  [        R
                  " X˜R                  XVS45      UR                  XVS45      -  4SS9US
9  g )Nr   r=   rª  r  r6   rw   r	  r   )rb  r  )rb  r  )rC   rD   r’   r”   rF   r  r,  rI   )r˜   r™   rÕ  Úaxs_tstÚaxs_refÚnyÚnxÚscalar_alphaÚarray_alphaÚim_rgbÚim_concat_default_aÚim_rgbaÚnew_array_alphas                r%   Ú2test_interpolation_stage_rgba_respects_alpha_paramrá  \  sw  € ð ×Ñ  1Ó%€GØ×Ñ˜q !Ó$€GØ�F€BØ€LÜ—)‘)—.‘. Ó(€Kô �Y‰Y�^‰^˜B AÓ&€FÜŸ'š' 2¨1 +Ó.ÐÜ�nŠnØ	×$Ñ$ b¨a [Ó1Ð2¸ñ€Gð ˆA�Jˆq�M×Ñ˜Ô ØˆA�Jˆq�M×ÑœŸš¨Ð(EÈBÑOÔPØˆA�Jˆq�M×Ñ˜À|ÐÑTØˆA�Jˆq�M×ÑÜ
�ŠØÐ$7Ñ7Ð8¸rñ	
à)ð ñ ð
 ˆA�Jˆq�M×Ñ˜À{ÐÑSØˆA�Jˆq�M×Ñ˜ÐÑAð ˆA�Jˆq�M×Ñ˜Ô!ØˆA�Jˆq�M×Ñ˜ÐÑ3ØˆA�Jˆq�M×Ñ˜ÈÐÑUØˆA�Jˆq�M×ÑÜ
�ŠØ K×$7Ñ$7¸À¸Ó$DÑDÐEÈBñ	
à)ð ñ ô
 —i‘i—n‘n RÓ,€OØˆA�Jˆq�M×Ñ˜ÈÐÑXØˆA�Jˆq�M×ÑÜ
�ŠØ×(Ñ(¨"°!¨Ó5Ø×&Ñ&¨° {Ó3ñ4ð 5Ø;=ñ	
ð  *ð	 ò r)   znn_pixel_alignment.pngc                 ó  • [         R                  " SS5      u  p[        / SQ5       Hà  u  p4[        R                  " US-  5      R                  XD45      S-  n[        R                  " SU5      n[        S5       H‰  nUS:X  a  X'U4   R                  USSS	9  O&X'U4   R                  USSXXs4   R                  -   S
9  X'U4   R                  5         X'U4   R                  USUSSSS9  X'U4   R                  USUSSSS9  M‹     Mâ     g )Nr   r=   )r=   rJ  r£  r8   r×  r   ÚGraysra   rÂ  ©r’  r@   r+  rw   r  rî  Údashed©r5  rè  Úls)rB   rC   r8  rD   rz   r,  rƒ  rI   r-  rK  ÚvlinesÚhlines)r2   rJ   r¬   Újr  rÆ   Úsepsrê  s           r%   Útest_nn_pixel_alignmentrì  ‹  s  € ä�|Š|˜A˜qÓ!�H€Cäš*Ö%‰ˆä�yŠy˜˜A™‹×&Ñ&¨ vÓ.°Ñ2ˆÜ�yŠy˜˜qÓ!ˆä�q–ˆAØ�A‹và�q�D‘	× Ñ  ¨GÀ9Ð ÒMð �q�D‘	× Ñ  ¨GÀ9Ø+=ÀAÀDÁ	×@SÑ@SÑ+Sð !ñ Uð �1�‰I×"Ñ"Ô$Ø�1�‰I×Ñ˜T 2 q¨S¸À(ÐÑKØ�1�‰I×Ñ˜T 2 q¨S¸À(ÐÓKó ò &r)   z!alignment_half_display_pixels.pngc           
      óÜ  • [         R                  " SSS9nUR                  S5        / SQnSS/n/ nU HG  n[        U5       H5  u  pgUS;   a  US	-   OUnUR	                  UR                  XxS
S// / S95        M7     MI     [        U5       HN  u  pšU
R                  5       R                  n[        USS USS -
  SSSS9  [        US-  U	S-  S;   a  SOSSSS9  MP     Sn[        R                  " US-  5      R                  XÌ45      S-  n[        R                  " SU5      n[        U5       H¾  u  pšU
R                  S5        U	S-  S:¼  a  X
R                  -   OU
R                  nU
R                  USU	S-  S:X  a  SOSU	S:¼  a  SOSUS9  U
R                  USUS-
  SS S!S"9  U
R                  USUS-
  SS S!S"9  U
R                    H!  nU
R                   U   R#                  S#5        M#     MÀ     g )$N)r7   r   rm   rn   r™  )r)  gF¶óýÔxÉ?g=
×£p=Ú?g^ºI+ã?gÙÎ÷Sãé?gš™™™™™©?gö(\�Âõà?)r6   r=   r8   gš™™™™™‰?gÃõ(\�ÂÅ?g333333Û?)ÚxticksÚyticksr   r8   r   r:  g‚vIhÂ%<=)Úrtolr¢  r6   r7   r  rŒ   r<  r×  r#  rÚ  r‹   ra   rÓ   rs   ©r’  r@   rv   r+  rî  )r   )r   r8   ræ  )r   )r7   rŒ   )rB   rx   rŸ  r8  Úappendr”  rÏ  Úextentsr   rD   rz   r,  r-  rI   rè  ré  rº  Úset_linestyle)r2   rJ   Úcorner_xÚcorner_yr¬   ÚcyÚixÚcxÚmyrê  rˆ   ró  r  rÆ   rë  r+  Úspines                    r%   Ú"test_alignment_half_display_pixelsrü  ¢  sð  € ô  �*Š*˜V¨Ñ
-€CØ×Ñ�cÔâ0€HØ�dˆ|€Hà
€CÛˆÜ Ö)‰FˆBØ " i£��f’°RˆBØ�J‰J�s—|‘| R¨T°5Ð$9À"ÈR�|ÐPÖQó *ñ ô ˜3–‰ˆØ×&Ñ&Ó(×0Ñ0ˆÜ˜  !˜ w¨q° |Ñ3°R¸aÀeÒLÜ˜ !™¨A°©E°YÓ,>¡SÀAØ Uô	,ñ  ð 	€Aä�9Š9�Q˜‘T‹?×"Ñ" A 6Ó*¨QÑ.€DÜ�9Š9�T˜1Ó€Dä˜3–‰ˆØ
×Ñ˜Ôà9:¸Q¹À!»Ð&¯©Ò5ÈÏÉˆ	Ø
�	‰	�$˜WØ-.°©U°a«Z¡	¸YØ$%¨£F™°Ø%ð 	ñ 	'ð
 	�	‰	�$˜˜a #™g¨#°U¸{ˆ	ÑKØ
�	‰	�$˜˜a #™g¨#°U¸{ˆ	ÑKà—Y”YˆEØ�I‰I�eÑ×*Ñ*¨<Ö8ó ò  r)   zimage_bounds_handling.pnggú~j¼t“x?)r   rS   c                 ó>  • [         R                  " SS5      u  pSn[        / SQ5       Hñ  u  pE[        R                  " US-  5      R                  X345      nXcS-  -  US-  S-  -   n[        5       R                  US-  S-
  US-  S-
  S5      n[        S5       H}  nXrX„4   R                  -   n	US:X  a  X	-   n	X(U4   R                  US	UU	S
9  X(U4   R                  5         [        SX3SSSSXrX„4   R                  -   S9n
X(U4   R                  U
5        M     Mó     g )Nr   r=   r£  )ra   r‹   rA   r8   r   r  r6   rã  rä  )r×  r×  rî  r>   rå  )Ú	edgecolorr“  r5  rç  r+  )rB   rC   r8  rD   rz   r,  r   Úrotate_aroundrƒ  r-  rI   rK  r   rÂ  )r2   rJ   r¬   r  rê  r@   rÆ   Úrotationrê  r+  Úboxs              r%   Útest_image_bounds_handlingr  Ü  s2  € ô �|Š|˜A˜qÓ!�H€Cà
€Aä%Ò&HÖIÑˆÜ�yŠy˜˜A™‹×&Ñ&¨ vÓ.ˆØ˜‘d‰{˜d Q™h¨!™^Ñ+ˆÜ“:×+Ñ+¨A¨a©C°©G°Q°q±S¸±W¸aÓ@ˆä�q–ˆAØ  q t¡9×#6Ñ#6Ñ6ˆIØ�A‹và.Ñ:�	à�1�‰I×Ñ˜T¨¸}Ø'0ð ñ 2ð �1�‰I×"Ñ"Ô$Ü˜L¨!Ø&+°vÀ#È(Ø&.°Q°T±×1DÑ1DÑ&DñFˆCð �1�‰I× Ñ  Ö%ó ò Jr)   zrgba_clean_edges.pnggú~j¼t“h?c                  óö  • [         R                  R                  S5        [         R                  R                  SS5      n [         R                  " X /5      n [         R
                  U SSS2SS24'   [        5       R                  SSS5      n[        R                  " SS5      u  p#[        S5       HÆ  n[        SSSS	S
S9n[        SSSSS
S9n[        SSSS	SSS
S9nX4   R                  U5        X4   R                  U5        X4   R                  U5        X4   R                  XS4   SSXU   R                  -   S9  X4   R                  5         X4   R!                  SS5        X4   R#                  SS5        MÈ     g )Nri  é   r6   r   r8   rV  )ç      @r   r7   Úblackr   )rè  Úzorder)r   r1  r  r‘  )r  r1  r>   r  )ÚfcÚecr  r  .rA   rÌ  )r@   rb  r+  g      Àr9  )rD   r’   r“   r”   Ústackrg  r   rÿ  rB   rC   rƒ  r   Ú	add_patchrI   r-  rK  rŸ   r    )rÆ   r   rJ   r¬   rê  r  r‘  Úpartly_blacks           r%   Útest_rgba_clean_edgesr  û  sU  € ä‡I�I‡N�N�:ÔÜ�9‰9�>‰>˜!˜QÓ€DÜ�8Š8�T�LÓ!€DÜŸ™€DˆˆAˆaˆC��1�ˆÑä‹z×'Ñ'¨¨S°!Ó4€Hä�|Š|˜A˜qÓ!�H€Cä�1ŽXˆä˜) Q¨°ÀÑCˆÜ˜ $¨°ÀÑBˆÜ  ¨Q°°gÀ&Ø'*°1ñ6ˆà‰×Ñ˜ÔØ‰×Ñ˜ÔØ‰×Ñ˜Ô&à‰�‰�d˜c˜6‘lØ$.ÀFØ (¨q©6×+;Ñ+;Ñ ;ð 	ñ 	=ð 	‰×ÑÔØ‰�‰˜˜cÔ"Ø‰�‰˜˜cÖ"ò! r)   zaffine_fill_to_edges.pngc                  ó   • [         R                  " SS5      u  pSn[        R                  " US-  5      R	                  X"45      S-  n[        5       [        5       R                  SU* S-   5      R                  SS5      [        5       R                  U* S-   S5      R                  SS5      /n[        S5       HÓ  n[        S5       HÁ  nUS:X  a  SOSnXU4   R                  US	S
UXE   XU4   R                  -   S9  XU4   R                  5         XU4   R                  SUS-
  /SSSSS9  XU4   R                  SUS-
  /US-
  USSS9  XU4   R                  SUS-
  /SSSSS9  XU4   R                  SUS-
  /US-
  USSS9  MÃ     MÕ     g )Nr   r=   rJ  r   r6   rw   rÓ   rs   rã  r‹   rñ  r×  r  rî  )r5  rè  )rB   rC   rD   rz   r,  r   Ú	translater1  rƒ  rI   r-  rK  rè  ré  )rJ   r¬   r  rÆ   r+  rê  rê  rv   s           r%   Útest_affine_fill_to_edgesr    s°  € ô �|Š|˜A˜qÓ!�H€Cà	€AÜ�9Š9�Q˜‘T‹?×"Ñ" A 6Ó*¨QÑ.€Dä“Ü“×%Ñ% a¨!¨¨a©Ó0×6Ñ6°q¸"Ó=Ü“×%Ñ% q b¨1¡f¨aÓ0×6Ñ6°r¸1Ó=ð?€Iô �1ŽXˆÜ�q–ˆAØ ! Q£‘W¨GˆFà�1�‰I×Ñ˜T¨Ø+4¸VØ'0¡|°c¸Q¸$±i×6IÑ6IÑ'Ið ñ Kð �1�‰I×"Ñ"Ô$Ø�1�‰I×Ñ˜d A¨¡G˜_¨b°!¸À5ÐÑIØ�1�‰I×Ñ˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÑLØ�1�‰I×Ñ˜d A¨¡G˜_¨b°!¸À5ÐÑIØ�1�‰I×Ñ˜d A¨¡G˜_¨a°!©e°Q¸3ÀeÐÓLó ò r)   )²Ú
contextlibr   rŽ  rƒ   r²   Úpathlibr   r  r  Úurllib.requestr  ÚnumpyrD   Únumpy.testingr   r   ÚPILr   Ú
matplotlibrR  r   r	   rÖ   r
   r   rB   r   r   Úmatplotlib.backend_basesr   Úmatplotlib.imager   r   r   r   r   Úmatplotlib.patchesr   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.transformsr   r   r   r   Úmatplotlib.tickerÚtickerr@  ru  Úfixturer2   rN   rg   ÚmarkÚparametrizer€   rŠ   r�   r¡   r­   r¹   r»   rË   rÒ   rÙ   rÞ   rã   rï   rý   r  Úcontextr  r!  r7  rC  rg  rG  rL  r]  rf  ro  rq  ry  r}  r€  r‰  rœ  r   r¨  r°  r¼  rÇ  rÔ  rØ  rÞ  râ  rë  r÷  rþ  r  rz   r,  r  r  r$  r-  rF  rH  rN  rd  ri  rl  rq  Úmachiner„  r†  Úsplitr;   r‘  r•  r›  r�  rá  r„  r­  r±  r·  r¹  r»  rÁ  rÇ  rÊ  rÑ  rÖ  rØ  rå  rê  r  rì  r(  r*  r/  r1  rG  rL  rT  rg  rn  rp  rx  Úfilterwarningsr€  r‹  r”  rž  rb   ÚNEARESTÚBILINEARr  r  rå  rá   r•   r©  r­  r°  rº  r¿  rÄ  rÎ  rÔ  rá  rì  rü  r  r  r  )r$  s   0r%   Ú<module>r(     s‘  ðÝ  Û Û 	Û 	Ý Û Û 
Û ã ß =Ý ã ÷F÷ Få /÷<õ <å (ß Oß LÓ LÝ #ã ð ‡�ñ(ó ð(ñ Ð%Ð&°DÀÑPñ	.ó Qð	.ñ Ð+Ð,°#Ø# U˜^¸ÀWñNñ+óNð+ð  ‡�×ÑÐ,¨u°d¨mÓ<Ù�:�,¨E°5¨>ÀÑQñBó Ró =ðBòð ‡�×ÑØ'òóñ Óñ.ó óð.ñ Óñó ðñ" Óñ	)ó ð	)ò$ò$ð ‡�×Ñ˜Ò >Ó?ñ-ó @ð-òDð, ‡�×Ñ˜ G¨WÐ#5Ó6ñ@ó 7ð@ð ‡�×Ñ˜Ò BÓCñKó DðKò*ò2)ò4ñ �=�/¨t¸?ÑKñ6ó Lð6ð ‡�×Ñ�7ÓÙÓñó ó ðð0 ‡�×ÑÐ@ò3ó4ñ0ó4ð0ò*B+ðJ ‡�×Ñ˜à	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØ	ˆ3€Z�ÐØˆ#€Y�ÐØ	ˆ2€Y�Ðð	&ó 
ñPó
ðPð& ‡�×ÑØØ�%ˆ.Ð	˜=Ð)Ø�ˆ,ˆ˜Ð#Ø�6‰6�1�aˆ.Ð	˜4Ð Øˆgˆ,ˆÐ/Ð0Øˆrˆ(ˆ�XÐØˆaˆ&ˆ�8ÐðóñDóðDòJð ‡�×ÑØØ�5ˆ>Ð
˜a ˜V˜HÐ	%Ð';Ð<Ø�$ˆ<ˆ.˜C ˜8˜*Ð	%Ð'7Ð8Ø�F‰F�A�qˆ>Ð
šY˜KÐ	(¨$Ð/ðóñDóðDñ< �<�.¨Ñ0ñó 1ðñ Ð#Ð$¨GÑ4ñó 5ðñ Óñó ðòòñ Ð,Ð-¸4ÀÑWñIó XðIñ �=�/¨u°e¨nÈ$Ø'ñ)ñó)ðòFñ8 Ð/Ð0Ø"¨'ñ3ñó3ðñ Ð*Ð+¸À_Øññóðñ4   Ñ(ñ%ó )ð%ñ Ð$Ð%Ø# U˜^¸ÀWñNñ!óNð!ñ: Ð(Ð)°tÀ7ÑKñó Lðò0 GñF Ð3Ð4Ø"¨'ñ3ñó3ðòò!òò'ò0-ò-ð ‡�×ÑØØ	Ø	�Š�2‹˜Ÿ	š	 "› r§y¢y°£~×'=Ñ'=¸fÓ'Eð	Gà	Ø	�Š�2‹˜Ÿ	š	 "› r§y¢y°£}×'<Ñ'<¸VÓ'Dð	Fðóñ1óð1òòBñ Ð$Ð%°4¸ÑOñó Pðñ �>Ð"°¸OÑLñó Mðò6	%ò3ñ( Ð.Ð/¸TØ'¨Sñ2ñ>ó2ð>ñ> �<�.¨d¸/ÑJñ+ó Kð+ò"ñ Ð)Ð*¸ÀOÑTñ
*ó Uð
*ñ Ð0Ð1Ø#×+Ò+Ó-°Ó9‘a¸tØ"¨'ñ3ñó3ðòD&ð ‡�×ÑØÐ#9×#?Ñ#?Ô#AÓBÒ#A˜aˆb�h‰h�qŽkÑ#AÑBóDñ%óDð%ñ& Ð)Ð*¸ÀGÑLñó Mðñ Ð*Ð+¸ÀWÑMñó Nðñ Ð/Ð0Ø"¨'ñ3ñó3ðð ‡�×ÑØØ×ÑØ‡^�^Ù!Ù ð"ó#ñ	1ó#ð	1òòòDò
ð ‡�×Ñ˜Ø0Ð2DÐEóGà‡�×ÑÐ0°9¸jÐ2IÓJñ2ó KóGð2ò 4ò	Dò9ñ$ Ò 5Ñ6ñ-ó 7ð-ò$3ð
 ‡�×Ñ�7Óñ4ó ð4ñ6 Ð$Ð%°5¸%°.Ø"¨'ñ3ñ
ó3ð
ô"9%�—’ô 9%òx	 òñ Óñ'ó ð'ð6 ‡�×Ñ˜˜r 1˜gÓ&ÙÓñ2ó ó 'ð2ñ$ Óñ
ó ð
ñ@ Ð.Ð/°wÑ?ñó @ðñ Ð,Ð-°WÑ=ñó >ðñ( Ð'Ð(°ÀTÑJñ02ó Kð02ñf Óñ*ó ð*ñ& Óñ*ó ð*ò$<ð ‡�×Òð =ó >à‡�×Ñ˜ G¨WÐ#5Ó6Ø‡�×ÑØÒ9Ú6ð8ó9ñ Óñ&ó ó9ó 7ó>ð&ñB Óñ)ó ð)ò*(ò.0ð" ‡�×ÑÐ8Ø‡hƒh’Ð Ó! 6§>¢>Ø‡hƒhÒBÐCÓDðFà‡hƒhÒ.Ð/Ó0°&·.².Ø‡hƒhÒ=Ð>Ó?ðAà‡hƒh’Ð Ó! 6§?¢?Ø‡hƒhÒKÐLÓMðOà‡hƒh��c�
ˆ|Ó˜fŸošoØ‡hƒhò Gð Hó IðJð 	‡hƒh��c�
ˆ|Ó˜fŸošo¨r¯w«w°wÀÓ/DÐEà‡hƒh��c�
ˆ|Ó˜fŸnšnØ‡nƒn�b—g“g˜c 3Ó'¨¯«°°cÓ):Ð;Ó<×DÑDÀQÈÓKðMà‡hƒh��c�
ˆ|Ó˜fŸošoØ‡nƒn�b—g“g˜c 3Ó'Ø—k“k # s¨CÓ0×7Ò7¸Ó<¸sÑBÀSÑHÈ3ÑNØ—g“g˜c 3Ó'ð)ó *ç*1©'°!°R«.ð:ðóñ(;ó)ð(;ò0	+ò ñ Ð%Ð&¨gÀ4Ø#×+Ò+Ó-°Ó9‘a¸tñEñCóEðCñB Ð-Ð.°gÈ4ÑPñ4ó Qð4ñ( ØÐ˜g°4ñ9ñ8ó9ð8ð* ‡�×ÑØØ>óð ‡�×Ñ˜ Ó(ñ	#ó )ó	ð
	#ð ‡�×Ñ˜Ò"9Ó:ñ<ó ;ð<ð& ‡�×Ñ˜Ð'7Ó8ÙÒ 5Ñ6ñ*ó 7ó 9ð*ñZ Ð+Ð,°OÑDñLó EðLñ, Ð6Ð7¸wÑGñ69ó Hð69ñr Ð.Ð/°ÈEÑRñ&ó Sð&ñ< Ð)Ð*°/ÁuÑMò#ó Nð#ñ: Ñ-Ð.°oÑFòMó GñMùòQ Cs   Ôk
