Ë
    ¨ehHW  ã                   óÔ   — d dl mZ d dlZd dlmZ d dlZd dlmZm	Z	 d dl
mZ ddlmZmZmZ ddlmZmZ  G d	„ d
«      Z e	j(                  ed«      Z G d„ d«      Z G d„ de«      ZeZy)é    )ÚNumberN)Ú
MethodType)Ú_apiÚcbook)ÚSubplotSpecé   )ÚSizeÚSubplotDividerÚDivider)ÚAxesÚSimpleAxisArtistc                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚCbarAxesBasec                ó2   •— || _         t        ‰| �  |i |¤Ž y ©N)ÚorientationÚsuperÚ__init__)Úselfr   ÚargsÚkwargsÚ	__class__s       €ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/mpl_toolkits/axes_grid1/axes_grid.pyr   zCbarAxesBase.__init__   s   ø€ Ø&ˆÔÜ‰Ñ˜$Ð) &Ó)ó    c                 ób   —  | j                  d¬«      j                  |f| | j                  dœ|¤ŽS )NF©Úroot)ÚcaxÚlocation)Ú
get_figureÚcolorbarr   )r   Úmappabler   s      r   r!   zCbarAxesBase.colorbar   sA   € Ø3ˆt�‰ EˆÓ*×3Ñ3ØðEØ¨×)9Ñ)9ñEØ=CñEð 	Er   )Ú__name__Ú
__module__Ú__qualname__r   r!   Ú__classcell__©r   s   @r   r   r      s   ø„ ô*öEr   r   zCbar{}c                   ó€   — e Zd ZdZeZ	 	 	 ddddddddœd„Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚGridaL  
    A grid of Axes.

    In Matplotlib, the Axes location (and size) is specified in normalized
    figure coordinates. This may not be ideal for images that needs to be
    displayed with a given aspect ratio; for example, it is difficult to
    display multiple images of a same size with some fixed padding between
    them.  AxesGrid can be used in such case.

    Attributes
    ----------
    axes_all : list of Axes
        A flat list of Axes. Note that you can also access this directly
        from the grid. The following is equivalent ::

            grid[i] == grid.axes_all[i]
            len(grid) == len(grid.axes_all)

    axes_column : list of list of Axes
        A 2D list of Axes where the first index is the column. This results
        in the usage pattern ``grid.axes_column[col][row]``.
    axes_row : list of list of Axes
        A 2D list of Axes where the first index is the row. This results
        in the usage pattern ``grid.axes_row[row][col]``.
    axes_llc : Axes
        The Axes in the lower left corner.
    ngrids : int
        Number of Axes in the grid.
    NFTÚL)Ú	share_allÚshare_xÚshare_yÚ
label_modeÚ
axes_classÚaspectc                óú  — |\  | _         | _        |€| j                   | j                  z  }n9d|cxk  r&| j                   | j                  z  k  st        d«      ‚ t        d«      ‚|| _        t	        t
        j                  t        j                  |d«      «      \  | _	        | _
        t        j                  ddg|¬«       || _        |€| j                  }n1t        |t         t"        f«      r|\  }}t%        j&                  |fi |¤Ž}t)        g g |¬«      }t        |t*        t,        f«      rt/        ||fi |¤Ž| _        nOt3        |«      d	k(  rt/        |g|¢­i |¤Ž| _        n,t3        |«      d
k(  rt5        ||fi |¤Ž| _        nt7        d«      ‚| j0                  j9                  «       }t        j:                  | j                   | j                  fdt<        ¬«      }t?        | j                  «      D ]G  }| jA                  |«      \  }}|r|d   x}}n|r|d|f   nd}|	r||df   nd} |||||¬«      |||f<   ŒI |jC                  | j                  dk(  rdnd¬«      jE                  «       | _#        |jH                  jE                  «       | _%        |jE                  «       | _&        | jJ                  d   d   | _'        | jQ                  «        | jF                  D ]  }|jS                  |«       Œ | jU                  |
«       y)aö  
        Parameters
        ----------
        fig : `.Figure`
            The parent figure.
        rect : (float, float, float, float), (int, int, int), int, or     `~.SubplotSpec`
            The axes position, as a ``(left, bottom, width, height)`` tuple,
            as a three-digit subplot position code (e.g., ``(1, 2, 1)`` or
            ``121``), or as a `~.SubplotSpec`.
        nrows_ncols : (int, int)
            Number of rows and columns in the grid.
        ngrids : int or None, default: None
            If not None, only the first *ngrids* axes in the grid are created.
        direction : {"row", "column"}, default: "row"
            Whether axes are created in row-major ("row by row") or
            column-major order ("column by column").  This also affects the
            order in which axes are accessed using indexing (``grid[index]``).
        axes_pad : float or (float, float), default: 0.02
            Padding or (horizontal padding, vertical padding) between axes, in
            inches.
        share_all : bool, default: False
            Whether all axes share their x- and y-axis.  Overrides *share_x*
            and *share_y*.
        share_x : bool, default: True
            Whether all axes of a column share their x-axis.
        share_y : bool, default: True
            Whether all axes of a row share their y-axis.
        label_mode : {"L", "1", "all", "keep"}, default: "L"
            Determines which axes will get tick labels:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": All axes are labelled.
            - "keep": Do not do anything.

        axes_class : subclass of `matplotlib.axes.Axes`, default: `.mpl_axes.Axes`
            The type of Axes to create.
        aspect : bool, default: False
            Whether the axes aspect ratio follows the aspect ratio of the data
            limits.
        Nr   z7ngrids must be positive and not larger than nrows*ncolsé   ÚcolumnÚrow)Ú	direction)Ú
horizontalÚverticalr0   é   é   zIncorrect rect format)Údtype)r   r   )ÚsharexÚshareyÚCÚF)Úorderéÿÿÿÿ)+Ú_nrowsÚ_ncolsÚ
ValueErrorÚngridsÚmapr	   ÚFixedÚnpÚbroadcast_toÚ_horiz_pad_sizeÚ_vert_pad_sizer   Úcheck_in_listÚ
_directionÚ_defaultAxesClassÚ
isinstanceÚlistÚtupleÚ	functoolsÚpartialÚdictr   r   r
   Ú_dividerÚlenr   Ú	TypeErrorÚget_positionÚfullÚobjectÚrangeÚ_get_col_rowÚravelÚtolistÚaxes_allÚTÚaxes_columnÚaxes_rowÚaxes_llcÚ_init_locatorsÚadd_axesÚset_label_mode)r   ÚfigÚrectÚnrows_ncolsrD   r5   Úaxes_padr+   r,   r-   r.   r/   r0   Úclsr   ÚkwÚ
axes_arrayÚiÚcolr4   r;   r<   Úaxs                          r   r   zGrid.__init__<   sÎ  € ðr $/Ñ ˆŒ�T”[àˆ>Ø—[‘[ 4§;¡;Ñ.‰Fà�vÔ: §¡¨t¯{©{Ñ!:Ò:Ü ØMóOð Oð ;Ü ØMóOð Oð ˆŒä47Ü�J‰JœŸ™¨°!Ó4ó56Ñ1ˆÔ˜dÔ1ô 	×Ñ˜H eÐ,¸	ÕBØ#ˆŒàÐØ×/Ñ/‰JÜ˜
¤T¬5 MÔ2Ø$‰KˆC�Ü"×*Ñ*¨3Ñ9°&Ñ9ˆJä˜R¨"°VÔ<ˆÜ�dœV¤[Ð1Ô2Ü*¨3°Ñ;¸Ñ;ˆD�MÜ�‹Y˜!Š^Ü*¨3Ð<°Ò<¸Ñ<ˆD�MÜ�‹Y˜!Š^Ü# C¨Ñ4°Ñ4ˆD�MäÐ3Ó4Ð4à�}‰}×)Ñ)Ó+ˆä—W‘W˜dŸk™k¨4¯;©;Ð7¸ÄVÔLˆ
Ü�t—{‘{Ó#ò 	9ˆAØ×(Ñ(¨Ó+‰HˆC�ÙØ",¨TÑ"2Ð2�™á/6˜ A s FÒ+¸D�Ù/6˜ C¨ FÒ+¸D�Ù#-Ø�T &°ô$9ˆJ�s˜C�xÒ ð	9ð #×(Ñ(ØŸ™¨EÒ1‘#°sð )ó <ß<B¹F»Hð 	Œà%Ÿ<™<×.Ñ.Ó0ˆÔØ"×)Ñ)Ó+ˆŒØ×(Ñ(¨Ñ+¨BÑ/ˆŒà×ÑÔà—-‘-ò 	ˆBØ�L‰L˜Õð	ð 	×Ñ˜JÕ'r   c           	      ó‚  — | j                   j                  t        j                  d«      | j                  g| j
                  dz
  z  t        j                  d«      gz   «       | j                   j                  t        j                  d«      | j                  g| j                  dz
  z  t        j                  d«      gz   «       t        | j                  «      D ]e  }| j                  |«      \  }}| j                  |   j                  | j                   j                  d|z  d| j                  dz
  |z
  z  ¬«      «       Œg y )Nr   r2   ©ÚnxÚny)rT   Úset_horizontalr	   ÚScaledrI   rB   Úset_verticalrJ   rA   rZ   rD   r[   r^   Úset_axes_locatorÚnew_locator)r   rm   rn   r4   s       r   rc   zGrid._init_locators¯   s  € Ø�‰×$Ñ$Ü�[‰[˜‹^˜T×1Ñ1Ð2°d·k±kÀ!±mÑDÌÏÉÐTUËÐGWÑWô	Yà�‰×"Ñ"Ü�[‰[˜‹^˜T×0Ñ0Ð1°T·[±[À±]ÑCÄtÇ{Á{ÐSTÃ~ÐFVÑVô	Xä�t—{‘{Ó#ò 	WˆAØ×(Ñ(¨Ó+‰HˆC�Ø�M‰M˜!Ñ×-Ñ-Ø—‘×)Ñ)¨Q°©W¸¸d¿k¹kÈA¹oÐPSÑ>SÑ9TÐ)ÓUõWñ	Wr   c                 ó”   — | j                   dk(  rt        || j                  «      \  }}||fS t        || j                  «      \  }}||fS )Nr3   )rL   ÚdivmodrA   rB   )r   Únrn   r4   s       r   r[   zGrid._get_col_row¹   sL   € Ø�?‰?˜hÒ&Ü˜a §¡Ó-‰HˆC�ð �Cˆxˆô ˜a §¡Ó-‰HˆC�à�Cˆxˆr   c                 ó,   — t        | j                  «      S r   )rU   r^   ©r   s    r   Ú__len__zGrid.__len__Â   s   € Ü�4—=‘=Ó!Ð!r   c                 ó    — | j                   |   S r   )r^   )r   rm   s     r   Ú__getitem__zGrid.__getitem__Å   s   € Ø�}‰}˜QÑÐr   c                 ó2   — | j                   | j                  fS )zV
        Return the number of rows and columns of the grid as (nrows, ncols).
        )rA   rB   r}   s    r   Úget_geometryzGrid.get_geometryÈ   s   € ð �{‰{˜DŸK™KÐ'Ð'r   c                 óT   — |d   | j                   _        |d   | j                  _        y)z¾
        Set the padding between the axes.

        Parameters
        ----------
        axes_pad : (float, float)
            The padding (horizontal pad, vertical pad) in inches.
        r   r   N©rI   Ú
fixed_sizerJ   )r   ri   s     r   Úset_axes_padzGrid.set_axes_padÎ   s(   € ð +3°1©+ˆ×ÑÔ'Ø)1°!©ˆ×ÑÕ&r   c                 óZ   — | j                   j                  | j                  j                  fS )zœ
        Return the axes padding.

        Returns
        -------
        hpad, vpad
            Padding (horizontal pad, vertical pad) in inches.
        r„   r}   s    r   Úget_axes_padzGrid.get_axes_padÚ   s,   € ð ×$Ñ$×/Ñ/Ø×#Ñ#×.Ñ.ð0ð 	0r   c                 ó:   — | j                   j                  |«       y)z%Set the aspect of the SubplotDivider.N)rT   Ú
set_aspect)r   r0   s     r   rŠ   zGrid.set_aspectæ   s   € à�‰× Ñ  Õ(r   c                 ó6   — | j                   j                  «       S )z(Return the aspect of the SubplotDivider.)rT   Ú
get_aspectr}   s    r   rŒ   zGrid.get_aspectê   s   € à�}‰}×'Ñ'Ó)Ð)r   c                 ó\  — t        j                  g d¢|¬«       t        j                  d| j                  …d| j
                  …f   | j                  dz
  ggdgggk(  \  }}|dk(  r/t        j                  | j                  | j
                  fd«      x}}n|dk(  r|}|}n|d	k(  r||z  x}}nyt        | j                  «      D ]é  }t        | j
                  «      D ]Ï  }| j                  |   |   }t        |j                  t        «      rIt        |j                  d|j                  d
   «      }	t        |j                  d|j                  d   «      }
n|j                  d
   }	|j                  d   }
|	j!                  |||f   |||f   ¬«       |
j!                  |||f   |||f   ¬«       ŒÑ Œë y)aÀ  
        Define which axes have tick labels.

        Parameters
        ----------
        mode : {"L", "1", "all", "keep"}
            The label mode:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": All axes are labelled.
            - "keep": Do not do anything.
        )Úallr*   Ú1Úkeep)ÚmodeNr   r   rŽ   Tr*   r�   ÚbottomÚleft)Ú
ticklabelsÚlabel)r   rK   rG   ÚmgridrA   rB   rX   rZ   ra   rN   Úaxisr   r   ÚxaxisÚspinesÚyaxisÚtoggle)r   r‘   Úis_last_rowÚis_first_colr’   r“   rm   Újro   Úbottom_axisÚ	left_axiss              r   re   zGrid.set_label_modeî   sš  € ô 	×ÑÒ4¸4Õ@ä�H‰H�\�d—k‘k�\ < D§K¡K <Ð/Ñ0°t·{±{ÀQ±Ð6GÐ5HÈAÈ3È%Ð4PÑPñ 	"ˆ�\à�5Š=ÜŸG™G T§[¡[°$·+±+Ð$>ÀÓEÐEˆF‘TØ�SŠ[Ø ˆFØ‰DØ�SŠ[Ø'¨,Ñ6Ð6ˆF‘TàÜ�t—{‘{Ó#ò 
	JˆAÜ˜4Ÿ;™;Ó'ò 	J�Ø—]‘] 1Ñ% aÑ(�Ü˜bŸg™g¤zÔ2Ü"2°2·8±8¸QÀÇ	Á	È(Ñ@SÓ"T�KÜ 0°·±¸1¸b¿i¹iÈÑ>OÓ P‘Ià"$§'¡'¨(Ñ"3�KØ "§¡¨¡�IØ×"Ñ"¨f°Q¸°T©lÀ&ÈÈAÈÁ,Ð"ÔOØ× Ñ ¨D°°A°©J¸dÀ1ÀaÀ4¹jÐ ÕIñ	Jñ
	Jr   c                 ó   — | j                   S r   )rT   r}   s    r   Úget_dividerzGrid.get_divider  s   € Ø�}‰}Ðr   c                 ó:   — | j                   j                  |«       y r   )rT   Úset_locator)r   Úlocators     r   rw   zGrid.set_axes_locator  s   € Ø�‰×!Ñ! 'Õ*r   c                 ó6   — | j                   j                  «       S r   )rT   Úget_locatorr}   s    r   Úget_axes_locatorzGrid.get_axes_locator  s   € Ø�}‰}×(Ñ(Ó*Ð*r   ©Nr4   g{®Gáz”?)r#   r$   r%   Ú__doc__r   rM   r   rc   r[   r~   r€   r‚   r†   rˆ   rŠ   rŒ   re   r¢   rw   r¨   © r   r   r)   r)      s   „ ñð< Ðð
 Ø Øðq(ð !ØØØØ Øôq(òfWòò"ò ò(ò
5ò
0ò)ò*ò%JòNò+ó+r   r)   c                   óF   ‡ — e Zd ZdZ	 	 	 dddddddddddœ	ˆ fd	„Zd
„ Zˆ xZS )Ú	ImageGridaR  
    A grid of Axes for Image display.

    This class is a specialization of `~.axes_grid1.axes_grid.Grid` for displaying a
    grid of images.  In particular, it forces all axes in a column to share their x-axis
    and all axes in a row to share their y-axis.  It further provides helpers to add
    colorbars to some or all axes.
    NFTr*   Úrightz5%)	r+   r0   r.   Ú	cbar_modeÚcbar_locationÚcbar_padÚ	cbar_sizeÚcbar_set_caxr/   c       	         óÚ  •— t        j                  g d¢|
¬«       t        j                  g d¢|¬«       |
| _        || _        || _        || _        t        ‰| �  |||||||dd||	|¬«       | j                  D ]  }|j                  |«       Œ |rÝ| j                  dk(  r&| j                  D ]  }| j                  d   |_        Œ y| j                  d	k(  rit        | j                  «      D ]P  \  }}| j                  |«      \  }}| j                  d
v r| j                  |   |_        Œ=| j                  |   |_        ŒR yt        | j                  | j                  «      D ]  \  }}||_        Œ yy)aª
  
        Parameters
        ----------
        fig : `.Figure`
            The parent figure.
        rect : (float, float, float, float) or int
            The axes position, as a ``(left, bottom, width, height)`` tuple or
            as a three-digit subplot position code (e.g., "121").
        nrows_ncols : (int, int)
            Number of rows and columns in the grid.
        ngrids : int or None, default: None
            If not None, only the first *ngrids* axes in the grid are created.
        direction : {"row", "column"}, default: "row"
            Whether axes are created in row-major ("row by row") or
            column-major order ("column by column").  This also affects the
            order in which axes are accessed using indexing (``grid[index]``).
        axes_pad : float or (float, float), default: 0.02in
            Padding or (horizontal padding, vertical padding) between axes, in
            inches.
        share_all : bool, default: False
            Whether all axes share their x- and y-axis.  Note that in any case,
            all axes in a column share their x-axis and all axes in a row share
            their y-axis.
        aspect : bool, default: True
            Whether the axes aspect ratio follows the aspect ratio of the data
            limits.
        label_mode : {"L", "1", "all"}, default: "L"
            Determines which axes will get tick labels:

            - "L": All axes on the left column get vertical tick labels;
              all axes on the bottom row get horizontal tick labels.
            - "1": Only the bottom left axes is labelled.
            - "all": all axes are labelled.

        cbar_mode : {"each", "single", "edge", None}, default: None
            Whether to create a colorbar for "each" axes, a "single" colorbar
            for the entire grid, colorbars only for axes on the "edge"
            determined by *cbar_location*, or no colorbars.  The colorbars are
            stored in the :attr:`cbar_axes` attribute.
        cbar_location : {"left", "right", "bottom", "top"}, default: "right"
        cbar_pad : float, default: None
            Padding between the image axes and the colorbar axes.

            .. versionchanged:: 3.10
                ``cbar_mode="single"`` no longer adds *axes_pad* between the axes
                and the colorbar if the *cbar_location* is "left" or "bottom".

        cbar_size : size specification (see `.Size.from_any`), default: "5%"
            Colorbar size.
        cbar_set_cax : bool, default: True
            If True, each axes in the grid has a *cax* attribute that is bound
            to associated *cbar_axes*.
        axes_class : subclass of `matplotlib.axes.Axes`, default: None
        )ÚeachÚsingleÚedgeN)r¯   )r“   r®   r’   Útop)r°   T)r5   ri   r+   r,   r-   r0   r.   r/   r¶   r   r·   ©r“   r®   N)r   rK   Ú_colorbar_modeÚ_colorbar_locationÚ_colorbar_padÚ_colorbar_sizer   r   Ú	cbar_axesrd   r^   r   Ú	enumerater[   Úzip)r   rf   rg   rh   rD   r5   ri   r+   r0   r.   r¯   r°   r±   r²   r³   r/   ro   Úindexrn   r4   r   r   s                        €r   r   zImageGrid.__init__)  sr  ø€ ôN 	×ÑÒ;Ø%.õ	0ä×ÑÒ=Ø)6õ	8à'ˆÔØ"/ˆÔØ%ˆÔØ'ˆÔô 	‰ÑØ��{ FØ¨(Ø¨°tÀFØ!¨jð	 	ô 	:ð —.‘.ò 	ˆBØ�L‰L˜Õð	ñ Ø×"Ñ" hÒ.ØŸ-™-ò /�BØ!Ÿ^™^¨AÑ.�B•Fñ/à×$Ñ$¨Ò.Ü!*¨4¯=©=Ó!9ò 5‘I�E˜2Ø#×0Ñ0°Ó7‘H�C˜Ø×.Ñ.Ð2CÑCØ!%§¡°Ñ!4˜�à!%§¡°Ñ!4˜�ñ5ô  # 4§=¡=°$·.±.ÓAò !‘G�B˜Ø �B•Fñ!ð r   c                 óÞ  — | j                   €E| j                  dv r| j                  j                  | _         n| j                  j                  | _         t        | j                  «      D �cg c]_  } t        | j                  «      | j                  d   j                  d¬«      | j                  j                  «       | j                  ¬«      ‘Œa c}| _        | j                  }| j                  }g }g }g }g }|dk(  �rÔ|dv �rÏ|dk(  r©| j                  t!        j"                  | j$                  «      z  }|j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       | j                  j-                  ddd	¬
«      }	n­|dk(  r¨| j.                  t!        j0                  | j$                  «      z  }|j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       | j                  j-                  dd	d¬«      }	t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" | j                  d   j5                  	«       | j                  d   j3                  d«       t7        | j8                  d   «      D �]Ö  \  }}|dk7  r|j'                  | j                  «       |r&t!        j"                  |d| j                  d   ¬«      }n2t!        j"                  | j                  d   d| j                  d   ¬«      }|dk(  r‡|dk(  s
|dk(  r}|dk(  rx|j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  |«       |dk(  s�Œ?|dk(  s|dk(  s�ŒK|| j.                  dz
  k(  s�Œ_|j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       �ŒÙ g }g }t7        | j<                  d   d d d	…   «      D �]Ö  \  }}|dk7  r|j'                  | j                  «       |r&t!        j0                  |d| j                  d   ¬«      }n2t!        j0                  | j                  d   d| j                  d   ¬«      }|dk(  r‡|dk(  s
|dk(  r}|dk(  rx|j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       |j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  |«       |dk(  s�Œ?|dk(  s|dk(  s�ŒK|| j                  dz
  k(  s�Œ_|j'                  t!        j(                  | j                   |«      «       |j'                  t;        |«      «       |j'                  t!        j(                  | j*                  |«      «       �ŒÙ t        | j                  «      D �]Ü  }
| j?                  |
«      \  }}| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	| j                  |
   j5                  |	«       |dk(  rŽ|dv r4| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	n7|dv r3| j                  j-                  ||   || j                  dz
  |z
     ¬«      }	| j                  |
   j5                  |	«       Œü|dk(  s�Œ|dk(  r|dk(  s|dk(  re|| j.                  dz
  k(  rS| j                  j-                  |d   || j                  dz
  |z
     ¬«      }	| j                  |   j5                  |	«       �Œw|dk(  r|| j                  dz
  k(  s|dk(  s�Œ•|dk(  s�Œœ| j                  j-                  ||   |d   ¬«      }	| j                  |   j5                  |	«       �Œß |dk(  �rÖ|dk(  r©| j                  t!        j"                  | j$                  «      z  }|j'                  t!        j(                  | j                   |«      «       |j'                  t!        j(                  | j*                  |«      «       | j                  j-                  ddd	¬
«      }	n­|dk(  r¨| j.                  t!        j0                  | j$                  «      z  }|j'                  t!        j(                  | j                   |«      «       |j'                  t!        j(                  | j*                  |«      «       | j                  j-                  dd	d¬«      }	|dv �r›t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" | j                  d   j5                  	«       | j                  d   j3                  d«       �n%|dk(  r9t        | j                  «      D ]   }
| j                  |
   j3                  d«       Œ" nç|dk(  rˆ|dv r| j                  }n| j.                  }t        |«      D ]   }
| j                  |
   j3                  d«       Œ" t        
dz   | j                  «      D ]   }| j                  |   j3                  d«       Œ" nZt        | j                  «      D ]B  }
| j                  |
   j3                  d«       | j                  |
   jA                  g d¢d¬«       ŒD | j                  jC                  |«       | j                  jE                  |«       y c c}w )Nr¹   r   Fr   )r   r¶   )r“   r’   r“   r@   )rr   rs   Úny1r’   )rr   Únx1rs   TÚaxes)r0   Úref_axrµ   r·   r®   r   r¸   rq   )r®   r“   )r¸   r’   éþÿÿÿ)r®   r¸   )ç      ð?rÈ   çü©ñÒMbP?rÉ   Úactive)Úwhich)#r¼   r»   rI   r…   rJ   rZ   rD   Ú_cbaraxes_class_factoryrM   r^   r    rT   rW   r¾   rº   rA   r	   ÚAxesXrb   ÚappendÚfrom_anyr½   rx   rB   ÚAxesYÚset_visiblerw   r¿   ra   rU   r`   r[   Úset_positionrt   rv   )r   Ú_Úcb_modeÚcb_locationÚhÚvÚh_ax_posÚh_cb_posÚszr¥   rm   rn   ro   Úv_ax_posÚv_cb_posr4   Úcountrž   s                     r   rc   zImageGrid._init_locators’  sÒ	  € ð ×ÑÐ%à×&Ñ&Ð*;Ñ;Ø%)×%9Ñ%9×%DÑ%D�Õ"à%)×%8Ñ%8×%CÑ%C�Ô"ô
 ˜4Ÿ;™;Ó'ö	)ð ð <Ô# D×$:Ñ$:Ó;Ø—‘˜aÑ ×+Ñ+°Ð+Ó7¸¿¹×9SÑ9SÓ9UØ ×3Ñ3ö5ò)ˆŒð ×%Ñ%ˆØ×-Ñ-ˆàˆØˆàˆØˆØ�hÓ ;Ð2DÒ#DØ˜fÒ$Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?ØŸ-™-×3Ñ3°q¸QÀBÐ3ÓG‘Ø Ò(Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?ØŸ-™-×3Ñ3°q¸bÀQÐ3ÓG�Ü˜4Ÿ;™;Ó'ò 5�Ø—‘˜qÑ!×-Ñ-¨eÕ4ð5à�N‰N˜1Ñ×.Ñ.¨wÔ7Ø�N‰N˜1Ñ×)Ñ)¨$Ô/ä  §¡¨qÑ!1Ó2ó 	A‰GˆC�Ø�aŠxØ—‘˜×-Ñ-Ô.áÜ—Z‘Z ¨6¸$¿-¹-ÈÑ:JÔK‘ä—Z‘Z §¡¨aÑ 0Ø'-°d·m±mÀAÑ6FôH�ð ˜vÒ%Ø  FÒ*Ø$¨Ò.°3¸!²8Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?à�O‰OœC ›FÔ#Ø�H‰H�RŒLà˜wÔ&Ø  FÒ*Ø$¨Ô.°3¸$¿+¹+È¹/Ô3IØ—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ö@ð3	Að6 ˆØˆÜ  ×!1Ñ!1°!Ñ!4±T°r°TÑ!:Ó;ó 	A‰GˆC�Ø�aŠxØ—‘˜×,Ñ,Ô-áÜ—Z‘Z ¨6¸$¿-¹-ÈÑ:JÔK‘ä—Z‘Z §¡¨aÑ 0Ø'-°d·m±mÀAÑ6FôH�ð ˜xÒ'Ø  FÒ*Ø$¨Ò.°3¸!²8Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?à�O‰OœC ›FÔ#Ø�H‰H�RŒLà˜uÔ$Ø  FÒ*Ø$¨Ô.°3¸$¿+¹+È¹/Ô3IØ—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘¤ A£Ô'Ø—‘œŸ™ t×':Ñ':¸BÓ?Ö@ð3	Aô6 �t—{‘{Ó#ó 	BˆAØ×(Ñ(¨Ó+‰HˆC�Ø—m‘m×/Ñ/°8¸C±=Ø3;¸D¿K¹KÈ¹MÈ#Ñ<MÑ3Nð 0ó PˆGà�M‰M˜!Ñ×-Ñ-¨gÔ6à˜&Ò ØÐ"3Ñ3Ø"Ÿm™m×7Ñ7Ø# C™=¨X°d·k±kÀA±oÈÑ6KÑ-Lð 8ó N‘Gð !Ð$5Ñ5Ø"Ÿm™m×7Ñ7Ø# C™=¨X°d·k±kÀA±oÈÑ6KÑ-Lð 8ó N�Gð —‘˜qÑ!×2Ñ2°7Õ;Ø˜FÔ"Ø 6Ò)¨c°QªhØ&¨'Ò1°c¸T¿[¹[È1¹_Ò6LØ"Ÿm™m×7Ñ7Ø# A™;¨8°D·K±KÀ!±OÀcÑ4IÑ+Jð 8ó L�Gà—N‘N 3Ñ'×8Ñ8¸ÖAØ! XÒ-°#¸¿¹Àq¹Ò2HØ$¨Ô-°#¸´(Ø"Ÿm™m×7Ñ7¸8ÀC¹=Ø;CÀA¹;ð 8ó H�Gà—N‘N 3Ñ'×8Ñ8¸ÖAð5	Bð8 �hÓØ˜gÒ%Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@ØŸ-™-×3Ñ3°r¸aÀRÐ3ÓH‘Ø Ò%Ø—[‘[¤4§:¡:¨d¯m©mÓ#<Ñ<�Ø—‘œŸ™ t×'9Ñ'9¸2Ó>Ô?Ø—‘œŸ™ t×':Ñ':¸BÓ?Ô@ØŸ-™-×3Ñ3°q¸bÀRÐ3ÓH�ØÐ.Ò.Ü˜tŸ{™{Ó+ò 9�AØ—N‘N 1Ñ%×1Ñ1°%Õ8ð9à—‘˜qÑ!×2Ñ2°7Ô;Ø—‘˜qÑ!×-Ñ-¨dÖ3Ø˜ÒÜ˜4Ÿ;™;Ó'ò 4�Ø—‘˜qÑ!×-Ñ-¨dÕ3ñ4à˜ÒØÐ/Ñ/ØŸ™‘àŸ™�Ü˜5“\ò 4�Ø—‘˜qÑ!×-Ñ-¨dÕ3ð4ä˜1˜q™5 $§+¡+Ó.ò 5�Ø—‘˜qÑ!×-Ñ-¨eÕ4ñ5ô ˜4Ÿ;™;Ó'ò ?�Ø—‘˜qÑ!×-Ñ-¨eÔ4Ø—‘˜qÑ!×.Ñ.Ò/EØ5=ð /õ ?ð?ð
 	�‰×$Ñ$ QÔ'Ø�‰×"Ñ" 1Õ%ùòk)s   Á)A$o*r©   )r#   r$   r%   rª   r   rc   r&   r'   s   @r   r­   r­     sC   ø„ ñð Ø Øðg!ð !ØØØØ&ØØØ"Ø ög!öR^&r   r­   )Únumbersr   rQ   Útypesr   ÚnumpyrG   Ú
matplotlibr   r   Úmatplotlib.gridspecr   Úaxes_dividerr	   r
   r   Úmpl_axesr   r   r   Ú_make_class_factoryrÌ   r)   r­   ÚAxesGridr«   r   r   ú<module>rç      sf   ðÝ Û Ý ã ç "Ý +ç 7Ñ 7ß ,÷Eñ Eð 4˜%×3Ñ3°LÀ(ÓKÐ ÷A+ñ A+ôHQ&�ô Q&ðh �r   