§
    …ÛgyN  ã                  ó:  — d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z d dlmZ d dlZd dlmZmZ d dlmZmZ d dlmZmZ d dlmZmZ d d	lmZ erd d
lm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z)  G d„ de¦  «        Z* G d„ de*¦  «        Z+ G d„ de*¦  «        Z,dS )é    )ÚannotationsN)Úpairwise)ÚTYPE_CHECKINGÚAnyÚcast)ÚFillTypeÚLineType)Úconvert_filledÚconvert_lines)Úas_fill_typeÚas_line_type)Úfilled_to_mpl_pathsÚlines_to_mpl_paths)ÚRenderer)ÚSequence)ÚAxes)ÚFigure)Ú	ArrayLikec                  óÚ   — e Zd ZU dZded<   ded<   ded<   	 	 	 	 	 	 dKdLd„ZdMd„ZdMd„ZdNd„Z	 	 	 dOdPd*„Z		 	 	 	 	 dQdRd2„Z
	 	 	 	 dSdTd9„Z	 	 dUdVd<„ZdWdXd@„ZdYdB„ZdMdC„ZdZd[dE„Z	 	 	 	 d\d]dJ„ZdS )^ÚMplRenderera£  Utility renderer using Matplotlib to render a grid of plots over the same (x, y) range.

    Args:
        nrows (int, optional): Number of rows of plots, default ``1``.
        ncols (int, optional): Number of columns of plots, default ``1``.
        figsize (tuple(float, float), optional): Figure size in inches, default ``(9, 9)``.
        show_frame (bool, optional): Whether to show frame and axes ticks, default ``True``.
        backend (str, optional): Matplotlib backend to use or ``None`` for default backend.
            Default ``None``.
        gridspec_kw (dict, optional): Gridspec keyword arguments to pass to ``plt.subplots``,
            default None.
    zSequence[Axes]Ú_axesr   Ú_figÚboolÚ_want_tighté   ©é	   r   TNÚnrowsÚintÚncolsÚfigsizeútuple[float, float]Ú
show_frameÚbackendú
str | NoneÚgridspec_kwúdict[str, Any] | NoneÚreturnÚNonec                ó   — |�dd l }|                     |¦  «         |ddddœ}|�||d<   nddi|d<   t          j        ||fi |¤Ž\  | _        }	|	                     ¦   «         | _        |s| j        D ]}
|
                     d	¦  «         Œd| _        d S )
Nr   FT)r!   ÚsqueezeÚsharexÚshareyr&   ÚaspectÚequalÚ
subplot_kwÚoff)	Ú
matplotlibÚuseÚpltÚsubplotsr   Úflattenr   Úaxisr   )Úselfr   r    r!   r#   r$   r&   ÚmplÚkwargsÚaxesÚaxs              úQ/granary/edev/quantum/lib/python3.11/site-packages/contourpy/util/mpl_renderer.pyÚ__init__zMplRenderer.__init__,   sÈ   € ð ÐØ$Ð$Ð$Ð$Ø�GŠG�GÑÔÐà-4ÀØ,0¸Dð"Bð "BˆàÐ"Ø$/ˆF�=Ñ!Ð!à$,¨gÐ#6ˆF�<Ñ åœ, u¨eÐ>Ð>°vÐ>Ð>‰ˆŒ	�4Ø—\’\‘^”^ˆŒ
Øð 	Ø”jð ð �Ø—’˜‘”��àˆÔÐÐó    c                ó\   — t          | d¦  «        rt          j        | j        ¦  «         d S d S )Nr   )Úhasattrr4   Úcloser   ©r8   s    r=   Ú__del__zMplRenderer.__del__H   s6   € Ý�4˜Ñ Ô ð 	!ÝŒI�d”iÑ Ô Ð Ð Ð ð	!ð 	!r?   c                óî   — | j         D ]0}t          |dd¦  «        r|                     d¬¦  «         d|_        Œ1| j        r3t          | j         ¦  «        dk    r| j                             ¦   «          d S d S d S )NÚ_need_autoscaleFT)Útightr   )r   ÚgetattrÚautoscale_viewrF   r   Úlenr   Útight_layout©r8   r<   s     r=   Ú
_autoscalezMplRenderer._autoscaleL   s‘   € ð ”*ð 	+ð 	+ˆBÝ�rÐ,¨eÑ4Ô4ð +Ø×!Ò!¨Ð!Ñ-Ô-Ð-Ø%*�Ô"øØÔð 	%¥ D¤J¡¤°!Ò 3Ð 3ØŒI×"Ò"Ñ$Ô$Ð$Ð$Ð$ð	%ð 	%Ð 3Ð 3r?   r<   ú
Axes | intr   c                óJ   — t          |t          ¦  «        r| j        |         }|S ©N)Ú
isinstancer   r   rL   s     r=   Ú_get_axzMplRenderer._get_axW   s$   € Ý�b�#ÑÔð 	 Ø”˜B”ˆBØˆ	r?   r   ÚC0çffffffæ?Úfilledúcpy.FillReturnÚ	fill_typeúFillType | strÚcolorÚstrÚalphaÚfloatc                óØ   — t          |¦  «        }|                      |¦  «        }t          ||¦  «        }t          j        ||dd|¬¦  «        }|                     |¦  «         d|_        dS )a  Plot filled contours on a single Axes.

        Args:
            filled (sequence of arrays): Filled contour data as returned by
                :meth:`~.ContourGenerator.filled`.
            fill_type (FillType or str): Type of :meth:`~.ContourGenerator.filled` data as returned
                by :attr:`~.ContourGenerator.fill_type`, or string equivalent
            ax (int or Maplotlib Axes, optional): Which axes to plot on, default ``0``.
            color (str, optional): Color to plot with. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"C0"``.
            alpha (float, optional): Opacity to plot with, default ``0.7``.
        Únoner   ©Ú
facecolorsÚ
edgecolorsÚlwr[   TN)r   rR   r   ÚmcollectionsÚPathCollectionÚadd_collectionrF   )r8   rU   rW   r<   rY   r[   ÚpathsÚ
collections           r=   rU   zMplRenderer.filled\   sx   € õ* ! Ñ+Ô+ˆ	Ø�\Š\˜"ÑÔˆÝ# F¨IÑ6Ô6ˆÝ!Ô0Ø˜e°¸1ÀEðKñ Kô Kˆ
à
×Ò˜*Ñ%Ô%Ð%Ø!ˆÔÐÐr?   Úblackçš™™™™™¹?Úxr   ÚyÚpoint_colorÚquad_as_tri_alphac                ó  — |                       |¦  «        }|                      ||¦  «        \  }}||dœ} |j        |||j        |j        fi |¤Ž |dk    �r’d|dd…dd…f         |dd…dd…f         z   |dd…dd…f         z   |dd…dd…f         z   z  }	d|dd…dd…f         |dd…dd…f         z   |dd…dd…f         z   |dd…dd…f         z   z  }
||d<    |j        t	          j        |dd…dd…f         |	|dd…dd…f         f¦  «                             d¦  «        t	          j        |dd…dd…f         |
|dd…dd…f         f¦  «                             d¦  «        t	          j        |dd…dd…f         |	|dd…dd…f         f¦  «                             d¦  «        t	          j        |dd…dd…f         |
|dd…dd…f         f¦  «                             d¦  «        fi |¤Ž |�|                     ||||d	d¬
¦  «         d|_        dS )aü  Plot quad grid lines on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color to plot grid lines, default ``"black"``.
            alpha (float, optional): Opacity to plot lines with, default ``0.1``.
            point_color (str, optional): Color to plot grid points or ``None`` if grid points
                should not be plotted, default ``None``.
            quad_as_tri_alpha (float, optional): Opacity to plot ``quad_as_tri`` grid, default 0.

        Colors may be a string color or the letter ``"C"`` followed by an integer in the range
        ``"C0"`` to ``"C9"`` to use a color from the ``tab10`` colormap.

        Warning:
            ``quad_as_tri_alpha > 0`` plots all quads as though they are unmasked.
        )rY   r[   r   g      Ð?Néÿÿÿÿr   r[   )é   ro   Úo)rY   r[   Úmarkerrb   T)rR   Ú_grid_as_2dÚplotÚTÚnpÚstackÚreshaperF   )r8   rj   rk   r<   rY   r[   rl   rm   r:   ÚxmidÚymids              r=   ÚgridzMplRenderer.gridy   s†  € ð8 �\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1Ø+0¸5Ð!AÐ!AˆØˆŒ��1�a”c˜1œ3Ð)Ð) &Ð)Ð)Ð)Ø˜qÒ Ñ à˜˜3˜B˜3   ˜8œ q¨¨¨¨S¨b¨S¨¤zÑ1°A°c°r°c¸1¸2¸2°g´JÑ>ÀÀ1À2À2ÀqÀrÀrÀ6ÄÑJÑKˆDØ˜˜3˜B˜3   ˜8œ q¨¨¨¨S¨b¨S¨¤zÑ1°A°c°r°c¸1¸2¸2°g´JÑ>ÀÀ1À2À2ÀqÀrÀrÀ6ÄÑJÑKˆDØ/ˆF�7‰OØˆBŒGÝ”˜!˜C˜R˜C  " ˜Hœ+ t¨Q¨q¨r¨r°1°2°2¨v¬YÐ7Ñ8Ô8×@Ò@ÀÑIÔIÝ”˜!˜C˜R˜C  " ˜Hœ+ t¨Q¨q¨r¨r°1°2°2¨v¬YÐ7Ñ8Ô8×@Ò@ÀÑIÔIÝ”˜!˜A˜B˜B   ˜Gœ* d¨A¨c¨r¨c°1°2°2¨g¬JÐ7Ñ8Ô8×@Ò@ÀÑIÔIÝ”˜!˜A˜B˜B   ˜Gœ* d¨A¨c¨r¨c°1°2°2¨g¬JÐ7Ñ8Ô8×@Ò@ÀÑIÔIð	ð ð
 ðð ð ð Ð"Ø�GŠG�A�q °5ÀÈˆGÑKÔKÐKØ!ˆÔÐÐr?   ç      ð?Úlinesúcpy.LineReturnÚ	line_typeúLineType | strÚ	linewidthc                óØ   — t          |¦  «        }|                      |¦  «        }t          ||¦  «        }t          j        |d|||¬¦  «        }|                     |¦  «         d|_        dS )aW  Plot contour lines on a single Axes.

        Args:
            lines (sequence of arrays): Contour line data as returned by
                :meth:`~.ContourGenerator.lines`.
            line_type (LineType or str): Type of :meth:`~.ContourGenerator.lines` data as returned
                by :attr:`~.ContourGenerator.line_type`, or string equivalent.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color to plot lines. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"C0"``.
            alpha (float, optional): Opacity to plot lines with, default ``1.0``.
            linewidth (float, optional): Width of lines, default ``1``.
        r^   r_   TN)r   rR   r   rc   rd   re   rF   )	r8   r}   r   r<   rY   r[   r�   rf   rg   s	            r=   r}   zMplRenderer.lines¨   sx   € õ. ! Ñ+Ô+ˆ	Ø�\Š\˜"ÑÔˆÝ" 5¨)Ñ4Ô4ˆÝ!Ô0Ø˜f°¸9ÈEðSñ Sô Sˆ
à
×Ò˜*Ñ%Ô%Ð%Ø!ˆÔÐÐr?   Úzú'ArrayLike | np.ma.MaskedArray[Any, Any]c                ó  — t           j                             |¦  «        }|t           j        j        u rdS |                      |¦  «        }|                      ||¦  «        \  }}|                     ||         ||         d|¬¦  «         dS )aâ  Plot masked out grid points as circles on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            z (masked array of shape (ny, nx): z-values.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Circle color, default ``"black"``.
        Nrq   )Úc)rv   ÚmaÚgetmaskÚnomaskrR   rs   rt   )r8   rj   rk   rƒ   r<   rY   Úmasks          r=   rŠ   zMplRenderer.maskÇ   s}   € õ" Œu�}Š}˜QÑÔˆØ•2”5”<ÐÐØˆFØ�\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1Ø
�Š��$”˜˜4œ #¨ˆÑ/Ô/Ð/Ð/Ð/r?   FÚfilenameÚtransparentc                óf   — |                       ¦   «          | j                             ||¬¦  «         dS )zÞSave plots to SVG or PNG file.

        Args:
            filename (str): Filename to save to.
            transparent (bool, optional): Whether background should be transparent, default
                ``False``.
        )rŒ   N)rM   r   Úsavefig)r8   r‹   rŒ   s      r=   ÚsavezMplRenderer.saveß   s5   € ð 	�ŠÑÔÐØŒ	×Ò˜(°ÐÑ<Ô<Ð<Ð<Ð<r?   ú
io.BytesIOc                ó¶   — |                       ¦   «          t          j        ¦   «         }| j                             |d¬¦  «         |                     d¦  «         |S )zhSave plots to an ``io.BytesIO`` buffer.

        Return:
            BytesIO: PNG image buffer.
        Úpng)Úformatr   )rM   ÚioÚBytesIOr   rŽ   Úseek)r8   Úbufs     r=   Úsave_to_bufferzMplRenderer.save_to_bufferê   sN   € ð 	�ŠÑÔÐÝŒj‰lŒlˆØŒ	×Ò˜# eÐÑ,Ô,Ð,Ø�Š�‰ŒˆØˆ
r?   c                óT   — |                       ¦   «          t          j        ¦   «          dS )zMShow plots in an interactive window, in the usual Matplotlib manner.
        N)rM   r4   ÚshowrC   s    r=   rš   zMplRenderer.showö   s#   € ð 	�ŠÑÔÐÝŒ‰
Œ
ˆ
ˆ
ˆ
r?   Útitlec                ó²   — |r,|                       |¦  «                             ||¬¦  «         dS |                       |¦  «                             |¦  «         dS )a  Set the title of a single Axes.

        Args:
            title (str): Title text.
            ax (int or Matplotlib Axes, optional): Which Axes to set the title of, default ``0``.
            color (str, optional): Color to set title. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default is ``None`` which uses Matplotlib's default title color
                that depends on the stylesheet in use.
        )rY   N)rR   Ú	set_title)r8   r›   r<   rY   s       r=   r›   zMplRenderer.titleü   s]   € ð ð 	.Ø�LŠL˜ÑÔ×&Ò& u°EÐ&Ñ:Ô:Ð:Ð:Ð:à�LŠL˜ÑÔ×&Ò& uÑ-Ô-Ð-Ð-Ð-r?   Úgreenú.1fÚfmtÚquad_as_tric                óÒ  — |                       |¦  «        }|                      ||¦  «        \  }}t          j        |¦  «        }|j        \  }}	t          |¦  «        D ]K}
t          |	¦  «        D ]9}|                     ||
|f         ||
|f         ||
|f         |› ›dd|d¬¦  «         Œ:ŒL|r»t          |dz
  ¦  «        D ]ª}
t          |	dz
  ¦  «        D ]“}t          j        ||
|
dz   …||dz   …f         ¦  «        }t          j        ||
|
dz   …||dz   …f         ¦  «        }t          j        ||
|
dz   …||dz   …f         ¦  «        }|                     ||||› ›dd|d¬¦  «         Œ”Œ©dS dS )a°  Show ``z`` values on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            z (array-like of shape (ny, nx): z-values.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color of added text. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"green"``.
            fmt (str, optional): Format to display z-values, default ``".1f"``.
            quad_as_tri (bool, optional): Whether to show z-values at the ``quad_as_tri`` centers
                of quads.

        Warning:
            ``quad_as_tri=True`` shows z-values for all quads, even if masked.
        ÚcenterT©ÚhaÚvarY   Úclip_onr   é   N)rR   rs   rv   ÚasarrayÚshapeÚrangeÚtextÚmean)r8   rj   rk   rƒ   r<   rY   r    r¡   ÚnyÚnxÚjÚiÚxxÚyyÚzzs                  r=   Úz_valueszMplRenderer.z_values  sÄ  € ð6 �\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1ÝŒJ�q‰MŒMˆØ”‰ˆˆBÝ�r‘”ð 	3ð 	3ˆAÝ˜2‘Y”Yð 3ð 3�Ø—’˜˜!˜Q˜$œ  1 a 4¤¨Q¨q°!¨t¬W°cÐ*<Ð*<ÀÈhØ#¨Tð ñ 3ô 3ð 3ð 3ð3ð ð 	*Ý˜2˜a™4‘[”[ð *ð *�Ý˜r !™t™œð *ð *�AÝœ  1 Q q¡S 5¨!¨A¨a©C¨% <¤Ñ1Ô1�BÝœ  1 Q q¡S 5¨!¨A¨a©C¨% <¤Ñ1Ô1�BÝœ  1 Q q¡S 5¨!¨A¨a©C¨% <¤Ñ1Ô1�BØ—G’G˜B  r¨3 M M°hÀ8ÐSXØ$(ð ñ *ô *ð *ð *ð	*ð	*ð 	*ð*ð *r?   )r   r   r   TNN)r   r   r    r   r!   r"   r#   r   r$   r%   r&   r'   r(   r)   )r(   r)   )r<   rN   r(   r   )r   rS   rT   )rU   rV   rW   rX   r<   rN   rY   rZ   r[   r\   r(   r)   )r   rh   ri   Nr   )rj   r   rk   r   r<   rN   rY   rZ   r[   r\   rl   r%   rm   r\   r(   r)   )r   rS   r|   r   )r}   r~   r   r€   r<   rN   rY   rZ   r[   r\   r�   r\   r(   r)   )r   rh   )rj   r   rk   r   rƒ   r„   r<   rN   rY   rZ   r(   r)   )F)r‹   rZ   rŒ   r   r(   r)   )r(   r�   )r   N)r›   rZ   r<   rN   rY   r%   r(   r)   )r   rž   rŸ   F)rj   r   rk   r   rƒ   r   r<   rN   rY   rZ   r    rZ   r¡   r   r(   r)   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r>   rD   rM   rR   rU   r{   r}   rŠ   r�   r˜   rš   r›   rµ   © r?   r=   r   r      sÆ  € € € € € € ðð ð ÐÐÑØ€L€L�LØÐÐÑð ØØ'-ØØ"Ø-1ð ð  ð  ð  ð  ð8!ð !ð !ð !ð	%ð 	%ð 	%ð 	%ðð ð ð ð ØØð"ð "ð "ð "ð "ðB ØØØ"&Ø#$ð-"ð -"ð -"ð -"ð -"ðf ØØØð"ð "ð "ð "ð "ðH Øð0ð 0ð 0ð 0ð 0ð0	=ð 	=ð 	=ð 	=ð 	=ð
ð 
ð 
ð 
ðð ð ð ð.ð .ð .ð .ð .ð* ØØØ!ð**ð **ð **ð **ð **ð **ð **r?   r   c                  ó,   ‡ — e Zd ZdZ	 	 	 ddˆ fd„Zˆ xZS )ÚMplTestRendererz¾Test renderer implemented using Matplotlib.

    No whitespace around plots and no spines/ticks displayed.
    Uses Agg backend, so can only save to file/buffer, cannot call ``show()``.
    r   r   r   r   r    r!   r"   r(   r)   c                ó2  •— dddddddœ}t          ¦   «                              |||dd|¬¦  «         | j        D ]V}|                     d¦  «         |                     d¦  «         |                     g ¦  «         |                     g ¦  «         ŒWd| _        d S )	Ng{®Gáz„?g®Gáz®ï?)ÚleftÚrightÚtopÚbottomÚwspaceÚhspaceTÚAgg)r#   r$   r&   ç        F)Úsuperr>   r   Úset_xmarginÚset_ymarginÚ
set_xticksÚ
set_yticksr   )r8   r   r    r!   Úgridspecr<   Ú	__class__s         €r=   r>   zMplTestRenderer.__init__?  s¿   ø€ ð ØØØØØð
ð 
ˆõ 	‰Œ×ÒØ�5˜'¨d¸EÈxð 	ñ 	
ô 	
ð 	
ð ”*ð 	ð 	ˆBØ�NŠN˜3ÑÔÐØ�NŠN˜3ÑÔÐØ�MŠM˜"ÑÔÐØ�MŠM˜"ÑÔÐÐà ˆÔÐÐr?   )r   r   r   )r   r   r    r   r!   r"   r(   r)   )r¶   r·   r¸   r¹   r>   Ú__classcell__©rÍ   s   @r=   r½   r½   9  sW   ø€ € € € € ðð ð ØØ'-ð	!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !r?   r½   c                  óœ   ‡ — e Zd ZdZ	 	 	 	 d>d?ˆ fd„Zd@d„Z	 	 	 	 	 	 	 	 dAdBˆ fd)„Z	 	 	 	 	 	 	 dCdDˆ fd0„Z	 	 dEdFd5„Z	 	 dGdFd7„Z		 	 	 dHdId=„Z
ˆ xZS )JÚMplDebugRendererz¤Debug renderer implemented using Matplotlib.

    Extends ``MplRenderer`` to add extra information to help in debugging such as markers, arrows,
    text, etc.
    r   r   Tr   r   r    r!   r"   r#   r   r(   r)   c                óP   •— t          ¦   «                              ||||¦  «         d S rP   )rÇ   r>   )r8   r   r    r!   r#   rÍ   s        €r=   r>   zMplDebugRenderer.__init__`  s)   ø€ õ 	‰Œ×Ò˜  w°
Ñ;Ô;Ð;Ð;Ð;r?   r<   r   Ú
line_startúcpy.CoordinateArrayÚline_endrY   rZ   r[   r\   Ú
arrow_sizec                ó†  — d||z   z  }||z
  }|t          j        t          j        ||¦  «        ¦  «        z  }t          j        |d         |d          f¦  «        }	t          j        ||dz  |	z
  |z  z
  ||dz  |z  z   ||dz  |	z   |z  z
  f¦  «        }
|                     |
d d …df         |
d d …df         d||¬¦  «         d S )Ng      à?r   r   ú-©r†   r[   )rv   ÚsqrtÚdotr©   rw   rt   )r8   r<   rÓ   rÕ   rY   r[   rÖ   ÚmidÚalongrÀ   Úarrows              r=   Ú_arrowzMplDebugRenderer._arrowi  sê   € ð �: Ñ(Ñ)ˆØ˜:Ñ%ˆØ•”�œ  uÑ-Ô-Ñ.Ô.Ñ.ˆÝ”
˜E !œH u¨Q¤x iÐ0Ñ1Ô1ˆÝ”Ø�5˜‘9˜uÑ$ jÑ0Ñ0Ø�%˜‘)˜JÑ&Ñ&Ø�5˜‘9˜uÑ$ jÑ0Ñ0ð
ñ ô ˆð
 	�Š��a�a�a˜�d”˜U 1 1 1 a 4œ[¨#°¸eˆÑDÔDÐDÐDÐDr?   r   ÚC1rT   rS   Úredri   rU   rV   rW   rX   rN   Ú
line_colorÚ
line_alpharl   Ústart_point_colorc                óÞ  •— t          |¦  «        }t          ¦   «                              |||||¦  «         |€|€d S |                      |¦  «        }t	          ||t
          j        ¦  «        }|�±t          |Ž D ]§\  }}|€Œt          |¦  «        D ]�\  }}|||…         }| 	                    |d d …df         |d d …df         ||¬¦  «         |
dk    rMt          |¦  «        }t          |dz
  ¦  «        D ]+}|                      |||         ||dz            |||
¦  «         Œ,Œ�Œ¨|�Êt          |Ž D ]Â\  }}|€Œt          j        |d         t          ¬¦  «        }d||dd …         dz
  <   |	�|d d…         }d||<   | 	                    |d d …df         |         |d d …df         |         d||¬¦  «         |	�:| 	                    |d d …df         |         |d d …df         |         d|	|¬¦  «         ŒÁd S d S )	Nr   r   rÙ   rÆ   ro   )ÚdtypeFrq   )r   rÇ   rU   rR   r
   r   ÚChunkCombinedOffsetÚzipr   rt   rJ   r«   rß   rv   Úonesr   )r8   rU   rW   r<   rY   r[   râ   rã   rl   rä   rÖ   ÚpointsÚoffsetsÚstartÚendÚxysÚnr±   rŠ   Ústart_indicesrÍ   s                       €r=   rU   zMplDebugRenderer.filled}  sx  ø€ õ ! Ñ+Ô+ˆ	Ý‰Œ�Š�v˜y¨"¨e°UÑ;Ô;Ð;àÐ +Ð"5ØˆFà�\Š\˜"ÑÔˆÝ ¨	µ8Ô3OÑPÔPˆð Ð!Ý#&¨ <ð 
bð 
b‘�˜Ø�>ØÝ"*¨7Ñ"3Ô"3ð bð b‘J�E˜3Ø   s Ô+�CØ—G’G˜C    1 œI s¨1¨1¨1¨a¨4¤y°JÀj�GÑQÔQÐQà! CÒ'Ð'Ý ™HœH˜Ý!& q¨¡s¡¤ð bð b˜AØ ŸKšK¨¨C°¬F°C¸¸!¹´H¸jÈ*ÐV`ÑaÔaÐaÐaøðbð Ð"Ý#&¨ <ð Cð C‘�˜Ø�>ØÝ”w˜w rœ{µ$Ð7Ñ7Ô7�Ø&+��W˜Q˜R˜R”[ ‘]Ñ#Ø$Ð0Ø$+¨C¨R¨C¤L�MØ*/�D˜Ñ'Ø—’Ø˜1˜1˜1˜a˜4”L Ô&¨¨q¨q¨q°!¨t¬°TÔ(:¸CÀ;ÐV`ð ñ bô bð bð %Ð0Ø—G’G˜F 1 1 1 a 4œL¨Ô7¸ÀÀÀÀ1À¼ÀmÔ9TÐVYØ/°zð ñ Cô Cð Cøð #Ð"ðCð Cr?   r|   r}   r~   r   r€   r�   c
           
     ó:  •— t          |¦  «        }t          ¦   «                              ||||||¦  «         |	dk    r|€d S |                      |¦  «        }t	          ||t
          j        ¦  «        }
t          rt          t          j
        |
¦  «        }
|	dk    rP|
D ]M}t          t          |¦  «        dz
  ¦  «        D ]+}|                      |||         ||dz            |||	¦  «         Œ,ŒN|�¯|
D ]®}d}t          |¦  «        }|�i|                     |d         |d         d||¬¦  «         d}|d         d         |d         d         k    r#|d         d         |d         d         k    r|dz  }|                     |||…df         |||…df         d||¬¦  «         Œ­d S d S )	NrÆ   r   r   )r   r   )r   r   rq   rÙ   ro   )r   rÇ   r}   rR   r   r	   ÚSeparater   r   ÚcpyÚLineReturn_Separater«   rJ   rß   rt   )r8   r}   r   r<   rY   r[   r�   rl   rä   rÖ   Úseparate_linesÚliner±   Ústart_indexÚ	end_indexrÍ   s                  €r=   r}   zMplDebugRenderer.lines²  sê  ø€ õ ! Ñ+Ô+ˆ	Ý‰Œ�Š�e˜Y¨¨E°5¸)ÑDÔDÐDà˜ÒÐ Ð!4ØˆFà�\Š\˜"ÑÔˆÝ& u¨i½Ô9JÑKÔKˆÝð 	KÝ!¥#Ô"9¸>ÑJÔJˆNà˜ÒÐØ&ð Rð R�Ý�s 4™yœy¨™{Ñ+Ô+ð Rð R�AØ—K’K  D¨¤G¨T°!°A±#¬Y¸¸uÀjÑQÔQÐQÐQðRð Ð"Ø&ð 	.ð 	.�Ø�Ý ™IœI�	Ø$Ð0Ø—G’G˜D œJ¨¨T¬
°CÐ;LÐTY�GÑZÔZÐZØ"#�KØ˜A”w˜q”z T¨"¤X¨a¤[Ò0Ð0°T¸!´W¸Q´ZÀ4ÈÄ8ÈAÄ;Ò5NÐ5NØ! Q™˜	Ø—’˜˜[¨Ð2°AÐ5Ô6¸¸[ÈÐ=RÐTUÐ=UÔ8VÐX[Ø uð ñ .ô .ð .ð .ð #Ð"ð	.ð 	.r?   rj   r   rk   rƒ   c                óh  — |                       |¦  «        }|                      ||¦  «        \  }}t          j        |¦  «        }|j        \  }}t          |¦  «        D ]U}t          |¦  «        D ]C}	|	||z  z   }
|                     |||	f         |||	f         t          |
¦  «        dd|d¬¦  «         ŒDŒVd S )NrÀ   rÁ   Tr¤   ©rR   rs   rv   r©   rª   r«   r¬   rZ   )r8   rj   rk   rƒ   r<   rY   r®   r¯   r°   r±   Úquads              r=   Úpoint_numberszMplDebugRenderer.point_numbersÚ  sÒ   € ð �\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1ÝŒJ�q‰MŒMˆØ”‰ˆˆBÝ�r‘”ð 	&ð 	&ˆAÝ˜2‘Y”Yð &ð &�Ø˜1˜R™4‘x�Ø—’˜˜!˜Q˜$œ  1 a 4¤­#¨d©)¬)¸ÀEÐQVØ $ð ñ &ô &ð &ð &ð&ð	&ð 	&r?   Úbluec                óü  — |                       |¦  «        }|                      ||¦  «        \  }}t          j        |¦  «        }|j        \  }}t          d|¦  «        D ]ž}t          d|¦  «        D ]‹}	|	||z  z   }
||dz
  |dz   …|	dz
  |	dz   …f                              ¦   «         }||dz
  |dz   …|	dz
  |	dz   …f                              ¦   «         }|                     ||t          |
¦  «        dd|d¬¦  «         ŒŒŒŸd S )Nr   r£   Tr¤   )	rR   rs   rv   r©   rª   r«   r­   r¬   rZ   )r8   rj   rk   rƒ   r<   rY   r®   r¯   r°   r±   rû   ry   rz   s                r=   Úquad_numberszMplDebugRenderer.quad_numbersì  s'  € ð �\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1ÝŒJ�q‰MŒMˆØ”‰ˆˆBÝ�q˜"‘”ð 	dð 	dˆAÝ˜1˜b‘\”\ð dð d�Ø˜1˜R™4‘x�Ø˜˜1™˜Q˜q™S˜ ! A¡# a¨¡c 'Ð)Ô*×/Ò/Ñ1Ô1�Ø˜˜1™˜Q˜q™S˜ ! A¡# a¨¡c 'Ð)Ô*×/Ò/Ñ1Ô1�Ø—’˜˜d¥C¨¡I¤I°(¸xÈuÐ^b�ÑcÔcÐcÐcð	dð	dð 	dr?   Nrž   Úlower_levelÚupper_levelúfloat | Nonec                ó˜  — |                       |¦  «        }|                      ||¦  «        \  }}t          j        |¦  «        }|j        \  }}	t          |¦  «        D ]m}
t          |	¦  «        D ][}||
|f         }|�	||k    rd}n||k    rd}nd}|                     ||
|f         ||
|f         t          |¦  «        dd|d¬¦  «         Œ\Œnd S )Nr¨   r   r   r¿   rÂ   Tr¤   rú   )r8   rj   rk   rƒ   r   r  r<   rY   r®   r¯   r°   r±   r´   Úz_levels                 r=   Úz_levelszMplDebugRenderer.z_levelsÿ  s   € ð �\Š\˜"ÑÔˆØ×Ò  1Ñ%Ô%‰ˆˆ1ÝŒJ�q‰MŒMˆØ”‰ˆˆBÝ�r‘”ð 
	&ð 
	&ˆAÝ˜2‘Y”Yð 	&ð 	&�Ø�q˜!�t”W�ØÐ*¨r°KÒ/?Ð/?Ø�G�GØ˜+Ò%Ð%Ø�G�Gà�GØ—’˜˜!˜Q˜$œ  1 a 4¤­#¨g©,¬,¸6ÀhÐV[Ø $ð ñ &ô &ð &ð &ð	&ð
	&ð 
	&r?   )r   r   r   T)
r   r   r    r   r!   r"   r#   r   r(   r)   )r<   r   rÓ   rÔ   rÕ   rÔ   rY   rZ   r[   r\   rÖ   r\   r(   r)   )r   rà   rT   rS   rT   rS   rá   ri   )rU   rV   rW   rX   r<   rN   rY   rZ   r[   r\   râ   rZ   rã   r\   rl   rZ   rä   rZ   rÖ   r\   r(   r)   )r   rS   r|   r   rS   rá   ri   )r}   r~   r   r€   r<   rN   rY   rZ   r[   r\   r�   r\   rl   rZ   rä   rZ   rÖ   r\   r(   r)   )r   rá   )rj   r   rk   r   rƒ   r   r<   rN   rY   rZ   r(   r)   )r   rý   )Nr   rž   )rj   r   rk   r   rƒ   r   r   r\   r  r  r<   rN   rY   rZ   r(   r)   )r¶   r·   r¸   r¹   r>   rß   rU   r}   rü   rÿ   r  rÎ   rÏ   s   @r=   rÑ   rÑ   Z  s]  ø€ € € € € ðð ð ØØ'-Øð<ð <ð <ð <ð <ð <ð <ðEð Eð Eð Eð0 ØØØØØØ!&Øð3Cð 3Cð 3Cð 3Cð 3Cð 3Cð 3Cðr ØØØØØ!&Øð&.ð &.ð &.ð &.ð &.ð &.ð &.ðZ Øð&ð &ð &ð &ð &ð. Øðdð dð dð dð dð2 %)ØØð&ð &ð &ð &ð &ð &ð &ð &ð &r?   rÑ   )-Ú
__future__r   r”   Ú	itertoolsr   Útypingr   r   r   Úmatplotlib.collectionsÚcollectionsrc   Úmatplotlib.pyplotÚpyplotr4   Únumpyrv   Ú	contourpyr   r	   Úcontourpy.convertr
   r   Úcontourpy.enum_utilr   r   Úcontourpy.util.mpl_utilr   r   Úcontourpy.util.rendererr   Úcollections.abcr   Úmatplotlib.axesr   Úmatplotlib.figurer   Únumpy.typingr   Úcontourpy._contourpyÚ
_contourpyró   r   r½   rÑ   r»   r?   r=   ú<module>r     sð  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ ,Ð ,Ð ,Ð ,Ð ,Ð ,àð 'Ø(Ð(Ð(Ð(Ð(Ð(à$Ð$Ð$Ð$Ð$Ð$Ø(Ð(Ð(Ð(Ð(Ð(Ø&Ð&Ð&Ð&Ð&Ð&à&Ð&Ð&Ð&Ð&Ð&ð[*ð [*ð [*ð [*ð [*�(ñ [*ô [*ð [*ð|!ð !ð !ð !ð !�kñ !ô !ð !ðB}&ð }&ð }&ð }&ð }&�{ñ }&ô }&ð }&ð }&ð }&r?   