
    P/PhuX                        d dl Z d dlmZmZ d dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlZd dlZdZd Zd	 Zd
 Zd Zej                            d          d             Zd Z ej        !                    dg d          d             Z"d Z#d Z$d Z%d Z&ej        !                    dddg          ej        !                    dddg          ej        !                    ddej'        dfdej(        dfd ej'        d!fd ej(        d"fg          d#                                     Z)d$ Z*d% Z+ej        !                    d&d'd(d ej,        d)e*          g          d+             Z-ej        !                    d,g d-          d.             Z.d/ Z/d0 Z0d1 Z1ej        !                    d2dd g          ej        !                    d3ej'        ej(        g          ej        !                    d4d5d6g          ej        !                    d7g d8          ej        !                    d9d:d;g          d<                                                             Z2dS )=    N)path
transforms)FigureCanvasBaseKeyEventLocationEventMouseButton
MouseEventNavigationToolbar2RendererBase)RubberbandBaseFigure)needs_pgf_xelatexzTreat the new Tool classes introduced in v[0-9]*.[0-9]* as experimental for now; the API and rcParam may change in future versions.c            
         t          j                    d t          dd          D             } fdt          dd          D             }t          j        d                              d          }d	d
g}d	d
g}d } || ||||            || dd         ||||            |g ||||            || |dd         |||            || g |||           t          d|j        d                   D ]} || ||d|d d f         ||            || ||g |            || |||g             || ||g g             || |||dd         |           d S )Nc                 L    g | ]!}t           j                            |          "S  )r   Pathunit_regular_polygon).0is     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_backend_bases.py
<listcomp>z&test_uses_per_path.<locals>.<listcomp>   s(    DDD1TY++A..DDD          c                     g | ];}                     |                                                                          <S r   )rotate
get_matrixcopy)r   r   ids     r   r   z&test_uses_per_path.<locals>.<listcomp>   s;    MMMAryy||..005577MMMr            )
      redgreenc                    t                      }t          |                    | ||                    }|                                }d |                    |t          t          |                    |t          j        |           ||g g dgg d          D             }	|	                    |||||          }
|rLt          j        |	t          |                    }t          |                              |
dz
  |
g          sJ d S d S )Nc                     g | ]
\  }}}}}|S r   r   )r   xoyopath_idgc0rgbFaces         r   r   z5test_uses_per_path.<locals>.check.<locals>.<listcomp>$   s/     " " "82r7Cw " " "r   Fscreen)	minlengthr!   )r   list_iter_collection_raw_pathsnew_gc_iter_collectionrangelenr   AffineDeltaTransform_iter_collection_uses_per_pathnpbincountsetissubset)master_transformpathsall_transformsoffsets
facecolors
edgecolorsrb	raw_pathsgcidsusesseens               r   checkz!test_uses_per_path.<locals>.check   s#   ^^66e^5 5 6 6	YY[[" """uS^^,,g23CDDz2rE7x	! !" " " 00>7J
D D 	8;sc)nn===Dt99%%tax&677777	8 	877r   r   )r   Affine2Dr5   r9   arangereshapeshape)r>   tforms_matricesr@   rA   rB   rI   nr    s          @r   test_uses_per_pathrP      s   				BDDaDDDEMMMMq!MMMOimm##G,,G!J!J8 8 8$ 
E"e_gz:FFF	E"eAaCj/7J
KKK	E"b/7J
CCC	E"e_QqS)7J
KKK	E"eR*j9991gmA&'' & &b%'!A#qqq&/*	& 	& 	& 	&	E"e_gr:>>>	E"e_gz2>>>	E"e_gr2666	E"e_gz!A#
KKKKKr   c                  V    t          t                      j        t                    sJ d S N)
isinstancer   figurer   r   r   r   test_canvas_ctorrU   >   s(    &((/8888888r   c                  f    t          j                    j                                        dk    sJ d S )Nz	image.png)pltrT   canvasget_default_filenamer   r   r   test_get_default_filenamerZ   B   s.    :<<3355DDDDDDr   c                      t          j                    } t          |           }t          j        |            t          j        | j                  rJ d S rR   )rW   rT   r   closefignum_existsnumber)figrX   s     r   test_canvas_changer`   F   sF    
*,,Cc""FIcNNN ,,,,,,,r   pdfc                 ^   t          j                     |                     dd           t          j        t
                    5 }t          j                     t          |          dk    sJ dt          |d         j	                  v sJ 	 d d d            n# 1 swxY w Y   t          j        t
                    5 }t          j
                                                     t          |          dk    sJ dt          |d         j	                  v sJ 	 d d d            d S # 1 swxY w Y   d S )NDISPLAYz:999r!   z<FigureCanvasPdf is non-interactive, and thus cannot be shownr   )rW   subplotssetenvpytestwarnsUserWarningshowr6   strmessagegcf)monkeypatchrecs     r   test_non_gui_warningro   O   s   LNNNy&)))	k	"	" (c


3xx1}}}}Ns1v~&&' ' ' ' '( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 
k	"	" (c		3xx1}}}}Ns1v~&&' ' ' ' '( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s&   ABBB;AD""D&)D&c                      t          j                    \  } }| j                            |           | j        j        |k    sJ |                                  | j        j        J d S rR   )rW   rd   rX   
grab_mousemouse_grabberclearr_   axs     r   test_grab_clearrv   b   sa    lnnGCJ":#r))))IIKKK:#+++++r   zx, y))*      )Nrw   )NN)   gq=
ף Y@)g     i@g       @c                 t   t          j                    \  }}t          |          }t          d|| |          }| 
|j        J n6|j        t          |           k    sJ t          |j        t
                    sJ |
|j        J n6|j        t          |          k    sJ t          |j        t
                    sJ | v|v|                    | |          d|	                    |            d|
                    |           dk    sJ d x|_        |_        |                    | |          dk    sJ d S d S d S )N
test_eventz
(x, y) = (z, )c                     dS )Nfoor   )xs    r   <lambda>z.test_location_event_position.<locals>.<lambda>   s     r   z(x, y) = (foo, foo))rW   rd   r   r   r   intrS   yformat_coordformat_xdataformat_ydata	fmt_xdata	fmt_ydata)r   r   r_   ru   rX   events         r   test_location_event_positionr   l   s\    lnnGCc""F,155Eyww#a&&    %'3'''''yww#a&&    %'3'''''}1%%K 2 2KKbooa6H6HKKKL L L L&5o5r|q!$$(=====	 } >=r   c                     t          j                    \  } }|                    dd           |                    dd          dk    sJ |                                                    d           |                    dd          dk    sJ |                                                    d	
           |                    dd          dk    sJ d S )Nr   r$   )r   r#   )xlimylimg      @z(x, y) = (5.00, 5.00))r   (   )r   z$(x, y) = (5.00, 5.00) | (5.00, 10.0))r   r"   )r   z3(x, y) = (5.00, 5.00) | (5.00, 10.0) | (2.50, 5.00))rW   rd   r;   r   twinxtwinyrt   s     r   !test_location_event_position_twinr      s    lnnGCFFgF&&&??2r""&=====HHJJNNN   ??2r""&LLLLLHHJJNNNOOB##DE E E E E Er   c                  6   t          j                    } |                     dddddd           | j                                         g fd}| j                            d|           t          d| j        d	                                           t          d
| j        g| j	        
                    d          t          j        R                                   t          d| j        d	                                           t                    dk    sJ d S )N      ?hellocenterT)havapickerc                 V    | j         j        dk    sJ                     |            d S )Na)
mouseeventkeyappend)r   pickss    r   handle_pickztest_pick.<locals>.handle_pick   s2    #s****Ur   
pick_eventkey_press_eventr   button_press_eventr   r   key_release_eventr!   )rW   rT   textrX   drawmpl_connectr   _processr	   transFigure	transformr   LEFTr6   )r_   r   r   s     @r   	test_pickr      s   
*,,CHHRWhtHDDDJOOE     J<555
C0099;;;#SZ !))(33!! ! !!) #*c22;;===u::??????r   c                  J   t          j                    \  } }|                    d           |                                J t	          | j                  }|                                 |                                dk    sJ |                                }|                                }d}d}|j	        
                    |                              t                    }|j	        
                    |                              t                    }t          d| j        g|t          j        R  }	| j        j                            |	j        |	           t          d| j        g|t          j        R  }
| j        j                            |
j        |
           |                                |	j        |
j        fk    sJ |                                |	j        |
j        fk    sJ t          d| j        g|t          j        R  }	| j        j                            |	j        |	           t          d| j        g|t          j        R  }
| j        j                            |
j        |
           |                                t-          j        |dd	
          k    sJ |                                t-          j        |dd	
          k    sJ |                                 |                                J |                                s|                                rJ d S )Nlogit)xscaleZOOM)gư>皙?)gwJ?皙?r   button_release_eventr   g|=)relabs)rW   rd   r;   get_navigate_moder
   rX   zoomget_xlimget_ylim	transDatar   astyper   r	   r   r   	callbacksprocessnamexdataydataRIGHTrf   approxget_autoscalex_onget_autoscaley_on)r_   ru   tbxlim0ylim0d0d1s0s1start_event
stop_events              r   test_interactive_zoomr      s   lnnGCFF'F!!)))	CJ	'	'BGGIII!!V++++KKMMEKKMME 
B	B 
			#	#	*	*3	/	/B				#	#	*	*3	/	/B cjA+-A/:/?A A AKJ  !1;???
C-/C1<1AC C CJJ  *===;;==[.
0@AAAAA;;==[.
0@AAAAA cjB+-B/:/@B B BKJ  !1;???
D-/D1<1BD D DJJ  *===;;==FM%QEBBBBBBB;;==FM%QEBBBBBBBGGIII!!)))##%%Db.B.B.D.DDDDDDr   c                  j   t          j                    \  } }|                    ddgddg           | j                            |           t          | j                  }|                                 |                                J |                                 |                                J d S )Nr   r!   )	rW   rd   plotrX   
widgetlockr
   r   r   pan)r_   ru   r   s      r   test_widgetlock_zoompanr      s    lnnGCGGQFQFJ"	CJ	'	'BGGIII!!)))FFHHH!!)))))r   	plot_funcimshowcontourforientationvertical
horizontalztool,button,expectedr         )i   r   )   )gQ?gQ@c                    t          j                    \  }}t          j        d                              d          }d\  }}	 t          ||           |||	          }
|                    |
||          }| dk    r|j                                        rJ d S |j                                        sJ d\  }}|df}|df}|d	k    r|d d d
         }|d d d
         }|j        j	        
                    |                              t                    }|j        j	        
                    |                              t                    }t          d|j        g||R  }t          d|j        g||R  }t          |j                  }|dk    rT|                                 |                    |           |                    |           |                    |           nS|                                 |                    |           |                    |           |                    |           |j        |j        ft5          j        |d          k    sJ d S )N   )r   r   r   )vminvmax)ru   r   r   r   r   r   r   r   r   333333?r   )rW   rd   r9   rK   rL   getattrcolorbarru   get_navigater   r   r   r   r	   rX   r
   r   
press_zoom	drag_zoomrelease_zoomr   	press_pandrag_panrelease_panr   r   rf   r   )r   r   toolbuttonexpectedr_   ru   datavmin0vmax0collcbr   r   r   r   r   r   r   r   r   s                        r   test_interactive_colorbarr      sr    lnnGC9R==  ((DLE5!72y!!$U???D	dr{	;	;BJ5%%'''''5 JD$
 B
Bj  "X"X 
	"	"2	&	&	-	-c	2	2B		"	"2	&	&	-	-c	2	2B cj7+-7/57 7 7K
9-/9179 9 9J 
CJ	'	'Bv~~
			
k"""
Z   

####

[!!!
J
z""" GRWxT!B!B!BBBBBBBr   c                     t          j        t          t                    5  dt          j        d<   d d d            n# 1 swxY w Y   t	          j                    } |                                 }|                                 J |j	        j
        j                            d           |                                 dk    sJ |j	        j
        j                            d           |                                 dk    sJ d S )Nmatchtoolmanagertoolbarr   r   r   PAN)rf   rg   rh   _EXPECTED_WARNING_TOOLMANAGERrW   rcParamsgca
get_figurer   rX   managerr   trigger_tool)ru   r_   s     r   test_toolbar_zoompanr    s!   	k)F	G	G	G 0 0"/Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	B
--//C!!)))J"//777!!V++++J"//666!!U******   =AAc                     t          j                    \  } }|                    t          d          t          d                     t	          | j                  }|                                 t          d| j        ddd                                           t          d| j        ddd                                           |	                                |
                                cxk    rdk    sn J t          d| j        ddd                                           t          d| j        ddd                                           |	                                |
                                cxk    rdk    sn J |j                            dd	g          \  }}t          d
| j        g|t          j        R                                   t          d| j        g|t          j        R                                   t          d| j        d                                           |	                                |
                                cxk    rdk    sn J t          d| j        ddd                                           t          d| j        ddd                                           |	                                |
                                cxk    rdk    sn J d S )N   r   kd   l)r!   r$   r   )r%   r%   )r"   r"   r   r   h)rW   rd   r   r5   r
   rX   r   r   r   r   r   r   r   r	   r   r   )r_   ru   r   startstops        r   $test_toolbar_home_restores_autoscaler  &  s   lnnGCGGE"IIuRyy!!!	CJ	'	'BGGIII 
Cc::CCEEE
Cc::CCEEE;;==BKKMM4444W444444
Cc::CCEEE
Cc::CCEEE;;==BKKMM4444W444444 ,((&&)9::KE4#SZJ%J9IJJJSSUUU%szKDK+:JKKKTTVVV
C0099;;;;;==BKKMM4444W444444
Cc::CCEEE
Cc::CCEEE;;==BKKMM4444W44444444r   backendsvgpspgf)marksc                    ddl m} ddlm} t	          j        d|            }|j        } |d          } ||           |                    dd          } |d          } ||           |                    dd          }d |                                D             }	|j        	                                 |j        	                                 d	 |                                D             }
d
 |                                D             }t          |	|
          D ]\  }}t          j        ||d          rJ t          ||
          D ]'\  }}t          j                            ||d           (d S )Nr   r   )FigureCanvaszmatplotlib.backends.backend_T)constrained_layoutr%   c                 6    g | ]}|                                 S r   get_positionr   ru   s     r   r   ztest_draw.<locals>.<listcomp>W  s"    >>>b!!>>>r   c                 6    g | ]}|                                 S r   r  r  s     r   r   ztest_draw.<locals>.<listcomp>\  s"    HHH"//++HHHr   c                 6    g | ]}|                                 S r   r  r  s     r   r   ztest_draw.<locals>.<listcomp>]  s"    FFFr**FFFr   g{Gzt?)atol)matplotlib.figurer   matplotlib.backends.backend_aggr  	importlibimport_modulerd   ravelrX   r   zipr9   allclosetestingassert_allclose)r  r   r  test_backend
TestCanvasfig_test	axes_testfig_aggaxes_agginit_poslayed_out_pos_testlayed_out_pos_agginitplacedreftests                   r   	test_drawr5  D  s   
 )(((((<<<<<<*+S'+S+STTL*Jv...HJx!!!Q''I f---GL1%%H>>IOO,=,=>>>HONHHioo6G6GHHHFFX^^5E5EFFFH&899 9 9f;tV%8888888*,>?? : :	T

""35"9999: :r   z&key,mouseend,expectedxlim,expectedylim))N皙?r7  gQ@g{G(@g@gffffff'@)N)r7  r   r8  r   	   )N)r   r7  r:  r9  )Nr   r:  r:  )Nr         ?g(\gQ@g      @g     &@)Nr7  r=  r8  r?  )N)r   333333?r>  gQ	gq=
ףp@)Nr7  rA  r8  rB  )shift)r7  皙?r8  r:  )rD  rE  r7  r:  r9  )rD  r@  r8  r8  )rD  r<  r>  )g(\@gq=
ף(@)rD  )r   g?gp=
ףgp=
ף@rG  )rD  rC  r8  )gQg
ףp=
@)r   )r7  r   r8  r:  )r   )r   r7  r:  r9  )controlr6  r8  r8  )rH  rF  g(\@gq=
ףp'@rI  c                    t          j                    \  }}|                    t          j        d                     |                                sJ |                    d           d}|j                            |          	                    t                    }|j                            |          	                    t                    }t          d|j        g|R t          j        | d}	t          d|j        g|R t          j        | d}
t          |j                  }|                                 |                    |	           |                    |
           |                    |
           t)          |                                          t-          j        |d          k    sJ t)          |                                          t-          j        |d          k    sJ d S )	Nr$   equalr   r   )r   r   r   g{Gz?r   )rW   rd   r   r9   rK   r   
set_aspectr   r   r   r   r	   rX   r   r   r
   r   r   r   r   tupler   rf   r   r   )r   mouseendexpectedxlimexpectedylimr_   ru   
mousestartsstartsendr   r   r   s               r   test_interactive_panrT  f  s   , lnnGCGGBIbMM??MM' J \##J//66s;;F<!!(++22377D cj+1 :E:J  K 
-1 :E:J  J 
CJ	'	'BFFHHHLLKK
NN:6=4#H#H#HHHHH6=4#H#H#HHHHHHHr   c                     t          j        t          t                    5  dt          j        d<   d d d            n# 1 swxY w Y   t	          j                    } t          | j        j	        j
        j                  }d| j        j	        j
        j        v sJ | j        j	        j
                            d           t          | j        j	        j
        j                  |dz
  k    sJ d| j        j	        j
        j        vsJ d S )Nr   r   r   forwardr!   )rf   rg   rh   r   rW   r   rl   r6   rX   r  r   toolsremove_tool)r_   initial_lens     r   test_toolmanager_removerZ    s   	k)F	G	G	G 0 0"/Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'))Ccj(4:;;K
*6<<<<<J"..y999sz!-344aGGGGCJ.:@@@@@@@r  c                  :   t          j        t          t                    5  dt          j        d<   d d d            n# 1 swxY w Y   t	          j                    } | j        j        j	        
                    d          }t          |t                    sJ | j        j        j	        
                    |          |u sJ t          j        t          d          5  | j        j        j	        
                    d          J 	 d d d            n# 1 swxY w Y   | j        j        j	        
                    dd          J t          j        t          d          5  | j        j        j	                            d          J 	 d d d            d S # 1 swxY w Y   d S )	Nr   r   r   
rubberbandz'ToolManager does not control tool 'foo'r~   F)warn)rf   rg   rh   r   rW   r   rl   rX   r  r   get_toolrS   r   r  )r_   r\  s     r   test_toolmanager_get_toolr_    sk   	k)F	G	G	G 0 0"/Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'))C#/88FFJj.11111:)22:>>*LLLL	kE
G 
G 
G F Fz!-66u==EEEEF F F F F F F F F F F F F F F :)225u2EEMMM	kE
G 
G 
G J Jz!-::5AAIIIIJ J J J J J J J J J J J J J J J J Js3   =AA'DDD'FFFc                     t          j        t          t                    5  dt          j        d<   d d d            n# 1 swxY w Y   t	          j                    } d| j        j        j	        
                    d          v sJ t          j        t          d          5  | j        j        j	                            dd           d d d            n# 1 swxY w Y   | j        j        j	        
                    d          dgk    sJ t          j        t          d          5  | j        j        j	                            d	d           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   vrV  z"Key c changed from back to forwardcz'foo' not in Toolsr~   )rf   rg   rh   r   rW   r   rl   rX   r  r   get_tool_keymapupdate_keymapraisesKeyError)r_   s    r   test_toolmanager_update_keymaprg    s%   	k)F	G	G	G 0 0"/Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'))C#*$0@@KKKKKK	k@
B 
B 
B E E
&44YDDDE E E E E E E E E E E E E E E :)99)DDMMMM	x';	<	<	< A A
&44UC@@@A A A A A A A A A A A A A A A A A As3   =AA&CCC!&EEEr   r   	patch_visTFforward_nav)TFautot_stwinsharec                    t          j                    \  }}|                    dd          }|                    |           |j                            |           |dk    r|                    d          }|                    |           |                    |           |                    d          }	|	                    |           |	                    |           n.|dk    r(|                                }|                                }	|	                    d           |j        
                    d	           |	                    d
           |j        
                    d           |	                    d           |j        
                    d           |		                    d           |	j        
                    d           d\  }
}||fD ]} |j        |
   |j        |  d\  }}}}|j                            ||f                              t                     }|j                            ||f                              t                     }|j                                                            |          \  }}|j                                                            |          \  }}t%          d|j        g||R  }t%          d|j        g||R  }t)          |j                  }| dk    r>|dk    rdnd}|                    g |||          \  }}|                                du r|                    g |||          \  }}nV|                                du r|
}|}n;|j                                        s|                    g |||          \  }}n|
}|}|                                 |                    |           |                    |           |                    |           |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |                                d          k    sJ |                                t;          j        |	                                d          k    sJ d S  |j         g ||R    |j!        |d g|R  j"                            tF                    \  }}|$                                 |                                du rS |j         g ||R    |j!        |d g|R  j"                            tF                    \  }}|$                                 n|                                du r|
}|}np|j                                        sS |j         g ||R    |j!        |d g|R  j"                            tF                    \  }}|$                                 n|
}|}|%                                 |&                    |           |'                    |           |(                    |           |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |d          k    sJ |                                t;          j        |                                d          k    sJ |                                t;          j        |	                                d          k    sJ d S )N   c   )zorderrm        rl  ax_t)r!   r   r   r   	ax_t_twinrax_b)r   r   r!   r   	ax_b_twinb)r   r   )r!   r%   r!   r%   r   r   r   r!   inoutTFr   r   ))rW   rd   add_subplotset_forward_navigation_eventspatchset_visiblesharexshareyr   	set_labelset_facecolorset_xlimset_ylimr   r   r   r   invertedr	   rX   r
   _prepare_view_from_bboxget_forward_navigation_eventsget_visibler   r   r   r   r   rf   r   r   	start_pan_get_pan_pointsTfloatend_panr   r   r   r   )r   r   rh  ri  rk  r_   rw  rt  ru  rx  	init_xlim	init_ylimru   xstart_txstop_tystart_tystop_tr   r   xstart_bystart_bxstop_bystop_br   r   r   	directionxlim_tylim_txlim_bylim_bs                                  r    test_interactive_pan_zoom_eventsr    s    IC??3r?**D&&{333J9%%% g~~OOC((	OOC((		JJLL	JJLL	 	NN6J^,,,$$$O!!#&&&NN6J^,,,$$$O!!#&&&
 ,IyTl    YY ,6(Hgx 
	!	!8X"6	7	7	>	>s	C	CB		!	!7G"4	5	5	<	<S	A	AB 0022<<R@@Hh~..00::2>>GW 13:KKFKKKK2CJLLVLLLJ	CJ	'	'Bv~~#q[[TTe	55jjRj)LL--//477!99*B**iPPNFFF//11U::FFF:))++ #!%!=!=jjRj)!T!T""
			
k"""
Z   

###}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA }}&-	0B0B0D0D$"O"O"OOOOO}}&-	0B0B0D0D$"O"O"OOOOOOO 	##F####--fd@R@@@BII%PP--//477DN'B'''''1T1&$DDDDFMMeTTNFFLLNNNN//11U::FFF:))++ #++F++++!5!5fd!HR!H!H!H!J!Q!QRW!X!X""

[!!!
J
z"""}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA}}&-D"A"A"AAAAA }}&-	0B0B0D0D$"O"O"OOOOO}}&-	0B0B0D0D$"O"O"OOOOOOOr   )3r!  
matplotlibr   r   matplotlib.backend_basesr   r   r   r   r	   r
   r   matplotlib.backend_toolsr   r  r   matplotlib.testing._markersr   matplotlib.pyplotpyplotrW   numpyr9   rf   r   rP   rU   rZ   r`   markr  ro   rv   parametrizer   r   r   r   r   r   r   r   r  r  paramr5  rT  rZ  r_  rg  r  r   r   r   <module>r     sj       ' ' ' ' ' ' ' '& & & & & & & & & & & & & & & & & & 4 3 3 3 3 3 $ $ $ $ $ $ 9 9 9 9 9 9           9 %L %L %LP9 9 9E E E- - - U( ( ($, , , 
NNNP P> >P P>,F F F  &-E -E -E`* * * x&<==\(BCC/!;#3V<!;#4i@ +"2G< +"3\BDE E
3C 3CE E DC >=3Cl	+ 	+ 	+5 5 5< tUU*;<<<> : :	 :< ,   *I I+ *IBA A AJ J J"
A 
A 
A &%11K$4k6G#HIItUm44(=(=(=>> 122}P }P 32 ?> 54 JI 21
}P }P }Pr   