Ë
    ¤ehe‡  ã                  ó   — d dl mZ d dlZd dlmZmZ d dlZd dlZd dl	m
c mZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlm c m!Z" d dlm#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8 erd dl9m:Z:m;Z;m<Z< d dl=m>Z> d dl?m@Z@  G d„ d«      ZA	 d"	 	 	 d#d„ZBd"d$d„ZC	 d"	 	 	 	 	 d%d„ZD	 	 	 	 	 	 d&d„ZEd'd(d„ZFd)d(d„ZGd*d„ZH	 d'	 	 	 	 	 	 	 	 	 d+d„ZI	 	 	 	 	 	 	 	 d,d „ZJd-d!„ZKy).é    )ÚannotationsN)ÚTYPE_CHECKINGÚcast)ÚPerformanceWarning)Úcache_readonly)Úfind_stack_level)Úfind_common_typeÚmaybe_promote)Úensure_platform_intÚis_1d_only_ea_dtypeÚ
is_integerÚneeds_i8_conversion)ÚExtensionDtype)Únotna)Ú	factorizeÚunique)Úfactorize_from_iterable)Úensure_wrapped_if_datetimelike)Ú	DataFrame)ÚIndexÚ
MultiIndexÚ
RangeIndex)Úconcat)ÚSeries)Úcompress_group_indexÚdecons_obs_group_idsÚget_compressed_idsÚget_group_indexÚget_group_index_sorter)Ú	ArrayLikeÚLevelÚnpt)ÚExtensionArray)Ú
FrozenListc                  óÀ   — e Zd ZdZ	 d	 	 	 	 	 	 	 dd„Ze	 	 dd„«       Zedd„«       Zdd„Zd„ Z	edd„«       Z
edd„«       Zdd	„Zdd„Zdd„Zedd„«       Zedd„«       Zy
)Ú
_Unstackera	  
    Helper class to unstack data / pivot with multi-level index

    Parameters
    ----------
    index : MultiIndex
    level : int or str, default last level
        Level to "unstack". Accepts a name for the level.
    fill_value : scalar, optional
        Default value to fill in missing values if subgroups do not have the
        same set of labels. By default, missing values will be replaced with
        the default fill value for that data type, NaN for float, NaT for
        datetimelike, etc. For integer types, by default data will converted to
        float and missing values will be set to NaN.
    constructor : object
        Pandas ``DataFrame`` or subclass used to create unstacked
        response.  If None, DataFrame will be used.

    Examples
    --------
    >>> index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),
    ...                                    ('two', 'a'), ('two', 'b')])
    >>> s = pd.Series(np.arange(1, 5, dtype=np.int64), index=index)
    >>> s
    one  a    1
         b    2
    two  a    3
         b    4
    dtype: int64

    >>> s.unstack(level=-1)
         a  b
    one  1  2
    two  3  4

    >>> s.unstack(level=0)
       one  two
    a    1    3
    b    2    4

    Returns
    -------
    unstacked : DataFrame
    c                óÈ  — || _         || _        |j                  «       | _        | j                  j	                  |«      | _        d| j                  j                  | j
                     v rdnd| _        t        | j                  j                  «      | _
        t        | j                  j                  «      | _        | j                  j                  | j
                  «      | _        | j                  j                  | j
                  «      | _        |j                  | j
                     | _        | j                  slt#        | j                  j                  | j
                     «      }| j                  j%                  |«      | _        | j                   j%                  |«      | _        t'        j(                  | j                  D �cg c]  }|j*                  ‘Œ c}«      }| j                  j*                  }||z  }	|	t'        j,                  t&        j.                  «      j(                  kD  r(t1        j2                  d|	› d�t4        t7        «       ¬«       | j9                  «        y c c}w )Néÿÿÿÿé   r   z%The following operation may generate z& cells in the resulting pandas object.)Ú
stacklevel)ÚconstructorÚsortÚremove_unused_levelsÚindexÚ_get_level_numberÚlevelÚcodesÚliftÚlistÚlevelsÚnew_index_levelsÚnamesÚnew_index_namesÚpopÚremoved_nameÚremoved_levelÚremoved_level_fullr   ÚtakeÚnpÚmaxÚsizeÚiinfoÚint32ÚwarningsÚwarnr   r   Ú_make_selectors)
Úselfr.   r0   r+   r,   Úunique_codesÚindex_levelÚnum_rowsÚnum_columnsÚ	num_cellss
             úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/reshape/reshape.pyÚ__init__z_Unstacker.__init__n   sÏ  € ð 'ˆÔØˆŒ	à×/Ñ/Ó1ˆŒ
à—Z‘Z×1Ñ1°%Ó8ˆŒ
ð ˜tŸz™z×/Ñ/°·
±
Ñ;Ñ;‘AÀˆŒ	ô !% T§Z¡Z×%6Ñ%6Ó 7ˆÔÜ# D§J¡J×$4Ñ$4Ó5ˆÔà ×0Ñ0×4Ñ4°T·Z±ZÓ@ˆÔØ!×2Ñ2×6Ñ6°t·z±zÓBˆÔØ"'§,¡,¨t¯z©zÑ":ˆÔØ�yŠyÜ! $§*¡*×"2Ñ"2°4·:±:Ñ">Ó?ˆLØ!%×!3Ñ!3×!8Ñ!8¸Ó!FˆDÔØ&*×&=Ñ&=×&BÑ&BÀ<Ó&PˆDÔ#ô —6‘6¸t×?TÑ?TÖU°˜;×+Ó+ÒUÓVˆØ×(Ñ(×-Ñ-ˆð ˜{Ñ*ˆ	ð ”r—x‘x¤§¡Ó)×-Ñ-Ò-Ü�M‰MØ7¸	°{ð C2ð 3ä"Ü+Ó-õ	ð 	×ÑÕùò Vs   ÇIc                ó^  — | j                   }t        | j                  j                  «      }t        | j                  j                  «      }|d | ||dz   d  z   ||   gz   }t        d„ |d | ||dz   d  z   ||   gz   D «       «      }t        ||«      \  }}t        |«      }t        ||«      }	|	|fS )Nr)   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N©Úlen©Ú.0Úxs     rK   ú	<genexpr>z2_Unstacker._indexer_and_to_sort.<locals>.<genexpr>¨   s   è ø€ ÒK ”c˜!—fÑKùó   ‚)	r0   r3   r.   r1   r4   Útupler   rQ   r   )
rE   Úvr1   ÚlevsÚto_sortÚsizesÚ
comp_indexÚobs_idsÚngroupsÚindexers
             rK   Ú_indexer_and_to_sortz_Unstacker._indexer_and_to_sortœ   s»   € ð �J‰Jˆä�T—Z‘Z×%Ñ%Ó&ˆÜ�D—J‘J×%Ñ%Ó&ˆØ˜˜�)˜e A¨¡E G˜nÑ,°°a±¨zÑ9ˆÜÑK d¨2¨A h°°a¸!±e°g°Ñ&>À$ÀqÁ'ÀÑ&JÔKÓKˆä0°¸%Ó@Ñˆ
�GÜ�g“,ˆä(¨°WÓ=ˆØ˜ÐÐó    c                ó„   — | j                   \  }}| j                  r|D �cg c]  }|j                  |«      ‘Œ c}S |S c c}w rO   )r`   r,   r<   )rE   r_   rZ   Úlines       rK   Úsorted_labelsz_Unstacker.sorted_labels°   s=   € à×4Ñ4Ñˆ�Ø�9Š9Ø3:Ö;¨4�D—I‘I˜gÕ&Ò;Ð;Øˆùò <s    =c                óp   — | j                   r)| j                  \  }}t        j                  ||d¬«      }|S |S )Nr   )Úaxis)r,   r`   ÚalgosÚtake_nd)rE   Úvaluesr_   Ú_Úsorted_valuess        rK   Ú_make_sorted_valuesz_Unstacker._make_sorted_values·   s5   € Ø�9Š9Ø×2Ñ2‰JˆG�Qä!ŸM™M¨&°'ÀÔBˆMØ Ð Øˆra   c                ó@  — | j                   }| j                  d d }t        d„ |D «       «      }t        ||«      \  }}t	        |«      }t        |«      }| j                  j                  | j                     | j                  z   }||f| _
        | j                  d   ||z  z   | j                  z   }t        j                  t        j                  | j                  «      t        ¬«      }	|	j                  |d«       |	j!                  «       t	        | j                  «      k  rt#        d«      ‚|| _        |	| _        | j(                  r*|j+                  t        j,                  |«      «      | _        y t        j(                  t        j0                  |d¬«      d   «      | _        y )Nr(   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrO   rP   rR   s     rK   rU   z-_Unstacker._make_selectors.<locals>.<genexpr>Ä   s   è ø€ Ò7 qœC ŸFÑ7ùrV   ©ÚdtypeTz0Index contains duplicate entries, cannot reshape)Úreturn_indexr)   )r5   rd   rW   r   rQ   r   r.   Úlevshaper0   r2   Ú
full_shaper=   ÚzerosÚprodÚboolÚputÚsumÚ
ValueErrorÚgroup_indexÚmaskr,   ÚsearchsortedÚarangeÚ
compressorr   )
rE   Ú
new_levelsÚremaining_labelsÚlevel_sizesr\   r]   r^   ÚstrideÚselectorr{   s
             rK   rD   z_Unstacker._make_selectors¿   sD  € Ø×*Ñ*ˆ
ð  ×-Ñ-¨c¨rÐ2ÐÜÑ7¨JÔ7Ó7ˆä0Ð1AÀ;ÓOÑˆ
�GÜ�g“,ˆä(¨Ó4ˆ
Ø—‘×$Ñ$ T§Z¡ZÑ0°4·9±9Ñ<ˆØ! 6˜/ˆŒà×%Ñ% bÑ)¨F°ZÑ,?Ñ?À$Ç)Á)ÑKˆÜ�x‰xœŸ™ §¡Ó0¼Ô=ˆØ�‰�˜4Ô à�8‰8‹:œ˜DŸJ™J›Ò'ÜÐOÓPÐPà%ˆÔØˆŒ	Ø�9Š9Ø(×5Ñ5´b·i±iÀÓ6HÓIˆD�Oä Ÿg™g¤b§i¡i°
ÈÔ&NÈqÑ&QÓRˆD�Ora   c                óH   — t        | j                  j                  «       «      S rO   )rv   r{   Úall)rE   s    rK   Úmask_allz_Unstacker.mask_allÛ   s   € ä�D—I‘I—M‘M“OÓ$Ð$ra   c                óÄ   — t        j                  t        | j                  «      t         j                  ¬«      }| j                  |d¬«      \  }}||j                  d«      fS )Nro   r(   ©Ú
fill_valuer   )r=   r}   rQ   r.   ÚintpÚget_new_valuesÚany)rE   Ú	dummy_arrÚ
new_valuesr{   s       rK   Úarange_resultz_Unstacker.arange_resultß   sM   € ô —I‘Iœc $§*¡*›o´R·W±WÔ=ˆ	Ø×.Ñ.¨yÀRÐ.ÓHÑˆ
�DØ˜4Ÿ8™8 A›;Ð&Ð&ra   c                ó.  — |j                   dk(  r|d d …t        j                  f   }|€|j                  d   dk7  rt	        d«      ‚| j                  ||«      \  }}| j                  |«      }| j                  }| j                  ||||j                  ¬«      S )Nr)   z-must pass column labels for multi-column data)r.   Úcolumnsrp   )
Úndimr=   ÚnewaxisÚshapery   r‹   Úget_new_columnsÚ	new_indexr+   rp   )rE   ri   Úvalue_columnsr‰   rj   r‘   r.   s          rK   Ú
get_resultz_Unstacker.get_resultç   s•   € Ø�;‰;˜!ÒØšAœrŸz™z˜MÑ*ˆFàÐ  V§\¡\°!¡_¸Ò%9ÜÐLÓMÐMà×'Ñ'¨°
Ó;‰	ˆ�Ø×&Ñ& }Ó5ˆØ—‘ˆà×ÑØ˜%¨¸¿¹ð  ó 
ð 	
ra   Nc                óä  — |j                   dk(  r|d d …t        j                  f   }| j                  |«      }| j                  \  }}|j
                  d   }||z  }||f}| j                  }	| j                  }
|
r\t        |«      rQ|j                  |||«      j                  dd«      j                  |«      }t        j                  |t        ¬«      }||fS |j                  }|
r$|j                  }t        j                  ||¬«      }npt        |t         «      r)|j#                  «       }|j%                  ||¬«      }||d d  n7t'        ||«      \  }}t        j                  ||¬«      }|j)                  |«       |j*                  }t        j,                  |t        ¬«      }t/        |j                  «      r#|j1                  d«      }|j1                  d«      }n|j3                  |d¬«      }t5        j6                  ||	j1                  d«      |||||j1                  d«      «       t/        |j                  «      r7|j1                  d«      }t9        |«      }|j1                  |j                  «      }||fS )	Nr)   é   ro   Úi8F©ÚcopyÚu1zM8[ns])r’   r=   r“   rl   rs   r”   r{   r†   rQ   ÚreshapeÚswapaxesÚonesrv   rp   ÚemptyÚ
isinstancer   Úconstruct_array_typeÚ_emptyr
   ÚfillÚnamert   r   ÚviewÚastypeÚ
libreshapeÚunstackr   )rE   ri   r‰   rk   ÚlengthÚwidthr‚   Úresult_widthÚresult_shaper{   r†   rŽ   Únew_maskrp   Úclsr§   s                   rK   r‹   z_Unstacker.get_new_valuesö   s%  € Ø�;‰;˜!ÒØšAœrŸz™z˜MÑ*ˆFà×0Ñ0°Ó8ˆð Ÿ™‰ˆ�Ø—‘˜a‘ˆØ˜v‘~ˆØ Ð-ˆØ�y‰yˆØ—=‘=ˆñ œ˜Fœð
 ×%Ñ% f¨e°VÓ<ß‘˜!˜Q“ß‘˜Ó&ð ô
 —w‘w˜|´4Ô8ˆHØ˜xÐ'Ð'à—‘ˆñ Ø—L‘LˆEÜŸ™ ,°eÔ<‰Jä˜%¤Ô0ð ×0Ñ0Ó2�Ø ŸZ™Z¨¸E˜ZÓB�
Ø *�
™1‘ä$1°%¸Ó$DÑ!��zÜŸX™X l¸%Ô@�
Ø—‘ 
Ô+à�z‰zˆÜ—8‘8˜L´Ô5ˆô
 ˜vŸ|™|Ô,Ø)×.Ñ.¨tÓ4ˆMØ#Ÿ™¨Ó.‰Jà)×0Ñ0°¸EÐ0ÓBˆMô 	×ÑØØ�I‰I�d‹OØØØØØ�M‰M˜$Óô	
ô ˜vŸ|™|Ô,ð $Ÿ™¨Ó2ˆJÜ7¸
ÓCˆJØ#Ÿ™¨¯©Ó6ˆJà˜8Ð#Ð#ra   c                ój  — |€�| j                   dk(  r&| j                  j                  | j                  ¬«      S | j                  j	                  d| j                  j
                  ¬«      }|j                  | j                  «      S t        | j                  «      | j                   z   }t        |«      }t        j                  t        j                  |«      |«      }t        |t        «      r]|j                  | j                  fz   }|j                  | j                  fz   }|j                   D �cg c]  }|j#                  |«      ‘Œ }	}n)|| j                  g}|j$                  | j                  g}|g}	| j&                  }
|	j)                  t        j*                  |
|«      «       t        ||	|d¬«      S c c}w )Nr   ©r§   )ÚitemF©r4   r1   r6   Úverify_integrity)r2   r:   Ú_renamer9   ÚinsertÚ	_na_valueÚrenamerQ   r=   Úrepeatr}   r£   r   r4   r;   r6   r1   r<   r§   Ú	_repeaterÚappendÚtile)rE   r—   Úlevr‚   r­   Ú
propagatorr   Ú	new_namesÚlabÚ	new_codesÚrepeaters              rK   r•   z_Unstacker.get_new_columnsE  s‡  € ØÐ Ø�y‰y˜AŠ~Ø×)Ñ)×1Ñ1°t×7HÑ7HÐ1ÓIÐIà×$Ñ$×+Ñ+¨A°D×4FÑ4F×4PÑ4PÐ+ÓQˆCØ—:‘:˜d×/Ñ/Ó0Ð0ä�T×'Ñ'Ó(¨4¯9©9Ñ4ˆÜ�MÓ"ˆÜ—Y‘YœrŸy™y¨Ó/°Ó8ˆ
ô �m¤ZÔ0à&×-Ñ-Ø×'Ñ'ð1ñ ˆJð &×+Ñ+¨t×/@Ñ/@Ð.BÑBˆIà9F×9LÑ9LÖM°#˜Ÿ™ *Õ-ÐMˆIÑMð Ø×'Ñ'ðˆJð '×+Ñ+¨T×->Ñ->Ð?ˆIØ#˜ˆIà—>‘>ˆð 	×ÑœŸ™ ¨5Ó1Ô2ÜØ Y°iÐRWô
ð 	
ùò Ns   Ä,F0c                óx  — t        | j                  «      t        | j                  «      k7  rJ| j                  j                  | j                  «      }| j                  rt        j                  |dd«      }|S t        | j                  «      | j                  z   }t        j                  |«      | j                  z
  }|S )Nr   r(   )rQ   r;   r:   Úget_indexerr2   r=   r¸   r}   )rE   rÄ   r‚   s      rK   r¼   z_Unstacker._repeaterk  s•   € ô ˆt×&Ñ&Ó'¬3¨t×/AÑ/AÓ+BÒBà×.Ñ.×:Ñ:¸4×;MÑ;MÓNˆHØ�yŠyÜŸ9™9 X¨q°"Ó5�ð ˆô ˜×+Ñ+Ó,¨t¯y©yÑ8ˆFÜ—y‘y Ó(¨4¯9©9Ñ4ˆHàˆra   c                óÞ  — | j                   d d D �cg c]  }|j                  | j                  «      ‘Œ }}t        | j                  «      dk(  ry| j                  d   |d   }}|dk(  j                  «       r%|j                  t        |«      |j                  «      }|j                  |«      j                  | j                  d   «      S t        | j                  || j                  d¬«      S c c}w )Nr(   r)   r   Frµ   )rd   r<   r~   rQ   r5   rŒ   r¸   r¹   rº   r7   r   )rE   rÂ   Úresult_codesr0   Úlevel_codess        rK   r–   z_Unstacker.new_indexz  sÚ   € ð >B×=OÑ=OÐPSÐQSÐ=TÖU°c˜Ÿ™ §¡Õ1ÐUˆÐUô ˆt×$Ñ$Ó%¨Ò*Ø!%×!6Ñ!6°qÑ!9¸<È¹?�;ˆEØ˜rÑ!×&Ñ&Ô(ØŸ™¤S¨£Z°·±ÓA�Ø—:‘:˜kÓ*×1Ñ1°$×2FÑ2FÀqÑ2IÓJÐJäØ×(Ñ(ØØ×&Ñ&Ø"ô	
ð 	
ùò Vs   ’"C*)T)r.   r   r0   r!   r,   rv   ÚreturnÚNone)rÊ   z-tuple[npt.NDArray[np.intp], list[np.ndarray]])rÊ   zlist[np.ndarray])ri   ú
np.ndarrayrÊ   rÌ   )rÊ   rv   )rÊ   z2tuple[npt.NDArray[np.intp], npt.NDArray[np.bool_]])rÊ   r   rO   )r—   zIndex | None)rÊ   rÌ   )rÊ   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rL   r   r`   rd   rl   rD   r†   r�   r˜   r‹   r•   r¼   r–   © ra   rK   r&   r&   @   sÔ   „ ñ+ð\ JNð,Øð,Ø(-ð,ØBFð,à	ó,ð\ ð ð
ò ó ð ð& òó ðóòSð8 ò%ó ð%ð ò'ó ð'ó
óM$ó^$
ðL òó ðð ò
ó ñ
ra   r&   c                ó²  ‡— t        |«      dk(  r| S | j                  }t        t        |«      }||j                  v r|g}|D �cg c]  }|j                  |«      ‘Œ }}t        |j                  «      D �cg c]	  }||vsŒ|‘Œ }}|D �cg c]  }|j                  |   ‘Œ }}|D �cg c]  }|j                  |   ‘Œ }}|D �cg c]  }|j                  |   ‘Œ }	}|D �cg c]  }|j                  |   ‘Œ }
}|D �cg c]  }|j                  |   ‘Œ }}|D �cg c]  }|j                  |   ‘Œ }}t        d„ |D «       «      }t        ||dd¬«      }t        |d¬«      \  }}t        ||||d¬«      }|st        |d¬«      }nt        |
|gz   ||gz   |dgz   d¬	«      }t        | t         «      r3| j#                  «       }||_        |j%                  d||¬
«      }|}|	}|}�n t        | j&                  t        «      rG| }|rA|j)                  d«      }|j%                  |||¬
«      }|D �cg c]  }||k  r|n|dz
  ‘Œ }}|rŒA|S | j#                  d¬«      }||_        |j%                  d||¬
«      }t        |t         «      r|j                  Šn|j&                  Št        ‰t        «      sJ ‚‰j                  d   g|z   }| j&                  j*                  g|	z   }‰j                  d   g}|j-                  ˆfd„|D «       «       t        |||d¬	«      }t        |t         «      r	||_        |S ||_        |S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )Nr   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrO   rP   rR   s     rK   rU   z$_unstack_multiple.<locals>.<genexpr>¨  s   è ø€ Ò*˜Q”#�a—&Ñ*ùrV   F)r,   Úxnull©r,   )rÔ   Ú__placeholder__r³   rµ   ©r‰   r,   r)   ©Údeepc              3  óZ   •K  — | ]"  }|j                  ‰j                  d    «      –— Œ$ y­w)r(   N)r<   r1   )rS   ÚrecÚunstcolss     €rK   rU   z$_unstack_multiple.<locals>.<genexpr>Û  s#   øè ø€ ÒN¸#˜Ÿ™ (§.¡.°Ñ"4×5ÑNùs   ƒ(+)rQ   r.   r   r   r6   r/   ÚrangeÚnlevelsr4   r1   rW   r   r   r   r   r£   r   r�   r«   r‘   r8   r§   Úextend)ÚdataÚclocsr‰   r,   r.   ÚiÚrlocsÚclevelsÚccodesÚcnamesÚrlevelsÚrcodesÚrnamesr”   rz   Úcomp_idsr]   Úrecons_codesÚdummy_indexÚdummyÚ	unstackedr   rÁ   rÃ   ÚresultÚvalrX   Údummy_dfÚnew_columnsrÜ   s                                @rK   Ú_unstack_multipleró   Ž  sc  ø€ ô ˆ5ƒz�Q‚Øˆð �J‰J€EÜ”˜UÓ#€Eð �—‘ÑØ�ˆØ16Ö7¨AˆU×$Ñ$ QÕ'Ð7€EÐ7ä˜eŸm™mÓ,Ö?�1°¸²ŠQÐ?€EÐ?à(-Ö. 1ˆu�|‰|˜A‹Ð.€GÐ.Ø&+Ö, ˆe�k‰k˜!‹nÐ,€FÐ,Ø&+Ö, ˆe�k‰k˜!‹nÐ,€FÐ,Ø(-Ö. 1ˆu�|‰|˜A‹Ð.€GÐ.Ø&+Ö, ˆe�k‰k˜!‹nÐ,€FÐ,Ø&+Ö, ˆe�k‰k˜!‹nÐ,€FÐ,äÑ* 'Ô*Ó*€EÜ! &¨%°eÀ5ÔI€Kä,¨[¸uÔEÑ€HˆgÜ'¨°'¸5À&ÐPUÔV€Láä˜GÐ*;Ô<‰ä Ø˜g˜YÑ&Ø˜H˜:Ñ%ØÐ-Ð.Ñ.Ø"ô	
ˆô �$œÔØ—	‘	“ˆØ!ˆŒà—M‘MÐ"3À
ÐQU�MÓVˆ	Øˆ
Øˆ	Ø Š	ä�d—l‘l¤JÔ/ØˆFÙØ—i‘i “l�ØŸ™¨¸
È˜ÓN�Ø:?Ö@°Q˜a #šg™¨1¨q©5Ñ0Ð@�Ð@ò ð
 ˆMð —9‘9 %�9Ó(ˆØ$ˆŒà×$Ñ$Ø¨*¸4ð %ó 
ˆ	ô �i¤Ô(Ø —‘‰Hà ×(Ñ(ˆHÜ˜(¤JÔ/Ð/Ð/Ø—o‘o aÑ(Ð)¨GÑ3ˆ
Ø—\‘\×&Ñ&Ð'¨&Ñ0ˆ	à—^‘^ AÑ&Ð'ˆ	Ø×ÑÓNÀÔNÔNäØ °)Èeô€Kô �)œVÔ$Ø%ˆ	Œð Ðð (ˆ	ÔàÐùòS 8ùâ?ùâ.ùÚ,ùÚ,ùÚ.ùÚ,ùÚ,ùòB As<   ÁL,Á4	L1Á>L1ÂL6Â$L;Ã M ÃMÃ8M
ÄMÈ"Mc                ó´  — t        |t        t        f«      r"t        |«      dk7  rt	        | |||¬«      S |d   }t        |«      s |dk(  s| j                  j                  |«       t        | t        «      rEt        | j                  t        «      rt        | |||¬«      S | j                  j                  d¬«      S t        | j                  t        «      s"t        dt        | j                  «      › d�«      ‚t        | j                   «      rt#        | |||¬	«      S t%        | j                  || j&                  |¬
«      }|j)                  | j*                  d |¬«      S )Nr)   r×   r   rÖ   T)Úfuture_stackz'index must be a MultiIndex to unstack, z was passedrÕ   ©r0   r+   r,   ©r—   r‰   )r£   rW   r3   rQ   ró   r   r.   r/   r   r   Ú_unstack_frameÚTÚstackry   Útyper   rp   Ú_unstack_extension_seriesr&   Ú_constructor_expanddimr˜   Ú_values)Úobjr0   r‰   r,   Ú	unstackers        rK   r«   r«   é  s+  € Ü�%œ%¤˜Ô'Üˆu‹:˜Š?ô % S¨%¸JÈTÔRÐRà˜!‘HˆEä�eÔ UÐ.?Ò%?à�	‰	×#Ñ# EÔ*ä�#”yÔ!Ü�c—i‘i¤Ô,Ü! # u¸È$ÔOÐOà—5‘5—;‘;¨D�;Ó1Ð1Ü˜Ÿ	™	¤:Ô.ô Ø5´d¸3¿9¹9³oÐ5FÀkÐRó
ð 	
ô ˜sŸy™yÔ)Ü,¨S°%¸È$ÔOÐOÜØ�I‰I˜U°×0JÑ0JÐQUô
ˆ	ð ×#Ñ#Ø�K‰K t¸
ð $ó 
ð 	
ra   c                ó\  — t        | j                  t        «      sJ ‚t        | j                  || j                  |¬«      }| j
                  s:| j                  j                  ||¬«      }| j                  ||j                  ¬«      S |j                  | j                  | j                  |¬«      S )Nrö   rˆ   )Úaxesr÷   )r£   r.   r   r&   Ú_constructorÚ_can_fast_transposeÚ_mgrr«   Ú_constructor_from_mgrr  r˜   rþ   r‘   )rÿ   r0   r‰   r,   r   Úmgrs         rK   rø   rø     sš   € ô �c—i‘i¤Ô,Ð,Ð,ÜØ�	‰	˜¨C×,<Ñ,<À4ô€Ið ×"Ò"Ø�h‰h×Ñ˜y°ZÐÓ@ˆØ×(Ñ(¨°3·8±8Ð(Ó<Ð<à×#Ñ#Ø�K‰K s§{¡{¸zð $ó 
ð 	
ra   c                ó�   — | j                  «       }|j                  |||¬«      }|j                  j                  dg«      |_        |S )an  
    Unstack an ExtensionArray-backed Series.

    The ExtensionDtype is preserved.

    Parameters
    ----------
    series : Series
        A Series with an ExtensionArray for values
    level : Any
        The level name or number.
    fill_value : Any
        The user-level (not physical storage) fill value to use for
        missing values introduced by the reshape. Passed to
        ``series.values.take``.
    sort : bool
        Whether to sort the resulting MuliIndex levels

    Returns
    -------
    DataFrame
        Each column of the DataFrame will have the same dtype as
        the input Series.
    )r0   r‰   r,   r   )Úto_framer«   r‘   Ú_drop_level_numbers)Úseriesr0   r‰   r,   Údfrï   s         rK   rü   rü     sC   € ð8 
�‰Ó	€BØ�Z‰Z˜e°
ÀˆZÓF€Fð —^‘^×7Ñ7¸¸Ó<€F„NØ€Mra   c                ó6  — d„ }| j                   \  }}| j                  j                  |«      }t        | j                  t        «      rt        | |||¬«      S t        | j                  t        «      rþt        | j                  j                  «      }| j                  j                  D �	cg c]  }	|	j                  |«      ‘Œ }
}	 || j                  «      \  }}|j                  |«       |
j                  t        j                  ||«      j                  «       «       t        | j                  j                  «      }|j                  | j                  j                   «       t	        ||
|d¬«      }nœt#        t%        || j                  | j                  f«      Ž \  }\  }}|j                  |«      t        j                  ||«      j                  «       f}t	        ||| j                  j                   | j                  j                   gd¬«      }| j&                  sµ| j(                  r©t        | j*                  j,                  «      }|d   }t        |t.        «      rZ|j1                  «       }|j3                  | j5                  «       D ��cg c]  \  }}|j,                  ‘Œ c}}«      }t7        |||«      }n5| j,                  j                  «       }n| j,                  j                  «       }|rt9        |«      }||   }||   }| j;                  ||¬«      S c c}	w c c}}w )zÀ
    Convert DataFrame to Series with multi-level Index. Columns become the
    second level of the resulting hierarchical index

    Returns
    -------
    stacked : Series or DataFrame
    c                ó~   — | j                   r | t        j                  t        | «      «      fS t	        | «      \  }}||fS rO   )Ú	is_uniquer=   r}   rQ   r   )r.   r1   Ú
categoriess      rK   Ústack_factorizezstack.<locals>.stack_factorizeM  s;   € Ø�?Š?Øœ"Ÿ)™)¤C¨£JÓ/Ð/Ð/Ü3°EÓ:ÑˆˆzØ˜5Ð Ð ra   )Ú	level_numÚdropnar,   Frµ   r   ©r.   )r”   r‘   r/   r£   r   Ú_stack_multi_columnsr.   r3   r4   r1   r»   r½   r=   r¾   Úravelr6   r§   ÚzipÚmapr¢   Ú_is_homogeneous_typeÚdtypesrþ   r   r¤   Ú_concat_same_typeÚitemsÚ"_reorder_for_extension_array_stackr   Ú_constructor_sliced)Úframer0   r  r,   r  ÚNÚKr  r   rÂ   rÃ   ÚclevÚclabrÁ   r–   r4   Úilabr1   r  rp   Úarrrj   ÚcolrŽ   r{   s                            rK   rú   rú   C  s‡  € ò!ð �;‰;�D€A€qð —‘×/Ñ/°Ó6€Iä�%—-‘-¤Ô,Ü#Ø˜Y¨v¸Dô
ð 	
ô 
�E—K‘K¤Ô	,Ü˜%Ÿ+™+×,Ñ,Ó-ˆ
Ø.3¯k©k×.?Ñ.?Ö@ s�S—Z‘Z •]Ð@ˆ	Ð@á$ U§]¡]Ó3‰
ˆˆdØ×Ñ˜$ÔØ×ÑœŸ™  qÓ)×/Ñ/Ó1Ô2ä˜Ÿ™×*Ñ*Ó+ˆ	Ø×Ñ˜Ÿ™×+Ñ+Ô,ÜØ Y°iÐRWô
‰	ô  #¤C¨¸%¿+¹+ÀuÇ}Á}Ð9UÓ$VÐWÑˆ‘��tØ—‘˜A“¤§¡¨¨aÓ 0× 6Ñ 6Ó 8Ð8ˆÜØØØ—;‘;×#Ñ# U§]¡]×%7Ñ%7Ð8Ø"ô	
ˆ	ð �;Š;˜5×5Ò5ô �e—l‘l×*Ñ*Ó+ˆØ�q‘	ˆä�eœ^Ô,Ø×,Ñ,Ó.ˆCØ×.Ñ.Ø+0¯;©;«=×9¡  C�—“Ó9óˆJô <¸JÈÈ1ÓM‰Jð Ÿ™×,Ñ,Ó.‰Jð —]‘]×(Ñ(Ó*ˆ
áÜ�ZÓ ˆØ Ñ%ˆ
Ø˜d‘Oˆ	à×$Ñ$ Z°yÐ$ÓAÐAùò_ Aùó> :s   Â(LÊL
c                ó‚  ‡ — t        ˆ fd„|D «       «      r‰ }|D ]  }t        ||||¬«      }Œ |S t        d„ |D «       «      rj‰ }|D �cg c]  }‰ j                  j                  |«      ‘Œ }}|r<|j	                  d«      }t        ||||¬«      }|D �cg c]  }||k  r|n|dz
  ‘Œ }}|rŒ<|S t        d«      ‚c c}w c c}w )Nc              3  óN   •K  — | ]  }|‰j                   j                  v –— Œ y ­wrO   )r‘   r6   )rS   r¿   r  s     €rK   rU   z!stack_multiple.<locals>.<genexpr>“  s    øè ø€ Ò
7¨#ˆ3�%—-‘-×%Ñ%Ô%Ñ
7ùs   ƒ"%)r  r,   c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrO   )r£   Úint)rS   r¿   s     rK   rU   z!stack_multiple.<locals>.<genexpr>™  s   è ø€ Ò3 cŒZ˜œS×!Ñ3ùs   ‚r   r)   zTlevel should contain all level names or all level numbers, not a mixture of the two.)r…   rú   r‘   r/   r8   ry   )r  r0   r  r,   rï   r¿   rX   s   `      rK   Ústack_multipler+  �  sì   ø€ ô Ó
7°Ô
7Ô7ØˆØò 	BˆCÜ˜6 3¨v¸DÔA‰Fð	Bð2 €Mô+ 
Ñ3¨UÔ3Ô	3ð ˆð BGÖG¸#�—‘×0Ñ0°Õ5ÐGˆÐGáØ—)‘)˜A“,ˆCÜ˜6 3¨v¸DÔAˆFð 8=Ö=°!˜!˜sš(‘Q¨¨A©Ñ-Ð=ˆEÐ=ò ð €Mô ð1ó
ð 	
ùò Hùò >s   Á"B7ÂB<c           
     óv  — t        | j                  «      dk  r,| j                  d   j                  | j                  d   ¬«      S t	        | j                  dd | j
                  dd «      D ���cg c]  \  }}|D �cg c]  }|dk\  r||   nd‘Œ c}‘Œ! }}}}t	        |Ž }d„ t        j                  |«      D «       }t	        |Ž }t        j                  t	        || j                  «      D ��cg c]"  \  }}d|vrt        ||j                  ¬«      n|‘Œ$ c}}| j                  dd ¬«      S c c}w c c}}}w c c}}w )	zBCreates a MultiIndex from the first N-1 levels of this MultiIndex.rš   r   r³   Nr(   c              3  ó&   K  — | ]	  \  }}|–— Œ y ­wrO   rÑ   )rS   Úkeyrj   s      rK   rU   z,_stack_multi_column_index.<locals>.<genexpr>½  s   è ø€ ÒA™V˜S !”SÑAùs   ‚ro   ©r6   )rQ   r4   r·   r6   r  r1   Ú	itertoolsÚgroupbyr   Úfrom_arraysr   rp   )	r‘   r¿   r1   ÚcrY   ÚtuplesÚunique_tuplesÚnew_levsÚnew_levs	            rK   Ú_stack_multi_column_indexr8  ±  s6  € ä
ˆ7�>‰>Ó˜aÒØ�~‰~˜aÑ ×(Ñ(¨g¯m©m¸AÑ.>Ð(Ó?Ð?ô ˜gŸn™n¨S¨bÐ1°7·=±=ÀÀ"Ð3EÓF÷ð áˆC�ð .3Ö3¨�1˜’6ˆˆQŠ˜tÑ	#Ô3ð€Dò ô �$ˆZ€FÙA¤y×'8Ñ'8¸Ó'@ÔA€MÜ�MÐ"€Hô ×!Ñ!ô !$ H¨g¯n©nÓ =÷	
ñ �˜ð 04¸7Ñ/BŒE�' §¡Õ+ÈÑOó	
ð
 �m‰m˜C˜RÐ ôð ùò 	4ùôùó	
s   Á/D.Á;D)ÂD.Ã+'D5
Ä)D.c                ó  — dd„}| j                  d¬«      }|j                  }t        |t        «      sJ ‚||j                  dz
  k7  rP|}t        ||j                  dz
  «      D ])  } |||«      }	 ||dz   |«      }
|j                  |	|
«      }Œ+ |x|_        }|j                  «       s*|r( |d|«      }|j                  |d¬«      }|j                  }t        t        |«      }t        |«      }i }|j                  d   }t        |j                  d   «      }|rt        j                  |«      }|j!                  t#        |«      d «      }t        j$                  ||«      }t#        |«      }g }|D �]ö  }	 |j                  j'                  |«      }t        |t,        «      st#        |«      }n|j.                  |j0                  z
  }||k7  rk|j2                  d d …|j                  |   f   }|j%                  |j                  j                  d   «      |_        |j5                  |¬«      j6                  }�n|j8                  d d …|f   }t;        |j<                  j?                  «       «      }t        |t@        «      r¼|jC                  «       jE                  |jG                  «       D ��cg c]"  \  }}|jH                  jK                  |d¬	«      ‘Œ$ c}}«      }|jL                  \  }}t        jN                  ||z  «      jQ                  ||«      jR                  jU                  «       }|j%                  |«      }n|j6                  }|jV                  dkD  r|jU                  «       }|||<   �Œù t#        |«      dkD  r|jY                  |«      }t#        |«      }t        |jZ                  t        «      rqt]        |jZ                  j                  «      } t]        |jZ                  j^                  «      }!|jZ                  j                  D �"cg c]  }"|"ja                  |«      ‘Œ }#}"nDtc        |jZ                  «      \  }$}%|%g} |$ja                  |«      g}#|jZ                  jd                  g}!| j+                  |«       |#j+                  t        jf                  ||«      «       |!j+                  | j                  j^                  |   «       t        | |#|!d¬
«      }&| ji                  ||&|¬«      }'| j                  j                  dkD  rJ| j                  jk                  |g«      j                  «       }(|'j                  jm                  |(«      s|'|(   }'|r|'jo                  dd¬«      }'|'S # t(        $ r |j+                  |«       Y �Œw xY wc c}}w c c}"w )Nc                ó@   — | |j                   v r|j                   |    S | S )zì
        Logic for converting the level number to something we can safely pass
        to swaplevel.

        If `level_num` matches a column name return the name from
        position `level_num`, otherwise return `level_num`.
        r/  )r  r‘   s     rK   Ú_convert_level_numberz3_stack_multi_columns.<locals>._convert_level_numberÏ  s%   € ð ˜Ÿ™Ñ%Ø—=‘= Ñ+Ð+àÐra   FrØ   r)   r   )r0   rf   r(   )r‘   rœ   rµ   )r.   r‘   r…   )rf   Úhow)r  r*  r‘   r   )8r�   r‘   r£   r   rÞ   rÝ   Ú	swaplevelÚ_is_lexsortedÚ
sort_indexr   r8  r4   r   r1   r=   r,   r¸   rQ   r<   Úget_locÚKeyErrorr½   ÚsliceÚstopÚstartÚlocÚreindexri   Úilocr	   r  Útolistr   r¤   r  r  rþ   r©   r”   r}   rŸ   rù   r  r’   Ú
differencer.   r3   r6   r»   r   r§   r¾   r  r
  Úequalsr  ))r  r  r  r,   r;  ÚthisÚmi_colsÚroll_columnsrâ   Úlev1Úlev2Úlevel_to_sortrò   Únew_dataÚ
level_valsrÉ   Úlevel_vals_nanÚlevel_vals_usedÚlevsizeÚ	drop_colsr.  rE  Ú	slice_lenÚchunkÚvalue_sliceÚsubsetrp   rj   rT   r   r!  Úidxr   rÁ   rÂ   rÃ   Ú	old_codesÚ
old_levelsr–   rï   Údesired_columnss)                                            rK   r  r  Ì  sÈ  € óð �:‰:˜5ˆ:Ó!€DØ�l‰l€GÜ�gœzÔ*Ð*Ð*ð �G—O‘O aÑ'Ò'àˆÜ�y '§/¡/°AÑ"5Ó6ò 	>ˆAá(¨¨LÓ9ˆDÙ(¨¨Q©°Ó=ˆDØ'×1Ñ1°$¸Ó=‰Lð		>ð
 ".Ð-ˆŒ�wà× Ñ Ô"¡tñ .¨a°Ó9ˆØ�‰ ]¸ˆÓ;ˆØ—,‘,ˆä”:˜wÓ'€GÜ+¨GÓ4€Kð €HØ—‘ Ñ#€JÜ˜Ÿ™ rÑ*Ó+€KÙÜ—g‘g˜kÓ*ˆØ×&Ñ&¤s¨:£¸Ó=€Nä—g‘g˜n¨kÓ:€OÜ�+Ó€GØ€IØó '$ˆð	Ø—,‘,×&Ñ& sÓ+ˆCô ˜#œuÔ%Ü˜C›‰IàŸ™ 3§9¡9Ñ,ˆIà˜ÒØ—H‘HšQ §¡¨SÑ 1Ð1Ñ2ˆEØ*×/Ñ/°·±×0CÑ0CÀBÑ0GÓHˆEŒMØŸ-™-°˜-Ó@×GÑGŠKà—Y‘Yšq #˜vÑ&ˆFÜ$ V§]¡]×%9Ñ%9Ó%;Ó<ˆEÜ˜%¤Ô0ð $×8Ñ8Ó:×LÑLØEKÇ\Á\Ã^×T¹T¸QÀ�Q—Y‘Y×%Ñ% e°%Ð%Õ8ÓTó�ð —|‘|‘��1Ü—i‘i  A¡Ó&×.Ñ.¨q°!Ó4×6Ñ6×<Ñ<Ó>�Ø)×.Ñ.¨sÓ3‘à$Ÿm™m�à×Ñ˜aÒà%×+Ñ+Ó-ˆKà#ˆ�‹ðO'$ôR ˆ9ƒ~˜ÒØ!×,Ñ,¨YÓ7ˆäˆD‹	€Aä�$—*‘*œjÔ)Ü˜$Ÿ*™*×+Ñ+Ó,ˆ
Ü˜Ÿ™×)Ñ)Ó*ˆ	Ø48·J±J×4DÑ4DÖE¨S�S—Z‘Z Õ(ÐEˆ	ÑEä 7¸¿
¹
Ó CÑˆ	�:Ø �\ˆ
Ø×%Ñ% gÓ.Ð/ˆ	Ø—Z‘Z—_‘_Ð%ˆ	à×Ñ�jÔ!Ø×Ñ”R—W‘W˜[¨!Ó,Ô-Ø×Ñ�U—]‘]×(Ñ(¨Ñ3Ô4äØ °)Èeô€Ið ×Ñ °	À;ÐÓO€Fà‡}�}×Ñ˜qÒ ØŸ-™-×;Ñ;¸Y¸KÓH×OÑOÓQˆØ�~‰~×$Ñ$ _Ô5Ø˜OÑ,ˆFñ Ø—‘ A¨5�Ó1ˆà€MøôS ò 	Ø×Ñ˜SÔ!Úð	üó0 Uùò, Fs   Å1UÊ#'U;Ð VÕU8Õ7U8c                ó¤   — t        j                  ||z  «      j                  ||«      j                  j	                  «       }| j                  |«      S )aæ  
    Re-orders the values when stacking multiple extension-arrays.

    The indirect stacking method used for EAs requires a followup
    take to get the order correct.

    Parameters
    ----------
    arr : ExtensionArray
    n_rows, n_columns : int
        The number of rows and columns in the original DataFrame.

    Returns
    -------
    taken : ExtensionArray
        The original `arr` with elements re-ordered appropriately

    Examples
    --------
    >>> arr = np.array(['a', 'b', 'c', 'd', 'e', 'f'])
    >>> _reorder_for_extension_array_stack(arr, 2, 3)
    array(['a', 'c', 'e', 'b', 'd', 'f'], dtype='<U1')

    >>> _reorder_for_extension_array_stack(arr, 3, 2)
    array(['a', 'd', 'b', 'e', 'c', 'f'], dtype='<U1')
    )r=   r}   rŸ   rù   r  r<   )r%  Ún_rowsÚ	n_columnsr[  s       rK   r  r  P  sB   € ôB �)‰)�F˜YÑ&Ó
'×
/Ñ
/°	¸6Ó
B×
DÑ
D×
JÑ
JÓ
L€CØ�8‰8�C‹=Ðra   c           	     ó€  ‡‡— | j                   j                  «       t        | j                   «      k7  rt        d«      ‚t	        ‰d¬«      }| j                   j                  t        | j                   j                  «      D �cg c]	  }|‰vsŒ|‘Œ c}d d d…   «      }t        ‰«      dkD  r't        j                  ‰«      }|j                  |«      }n|}|j                  «       }|j                  «       }g }	|D �]*  }
t        | j                   «      dk(  r| j                  «       }nat        ‰«      dk(  r|
f}
t        |
«      Št        ˆˆfd„t        | j                   j                  «      D «       «      }| j                  d d …|f   }t        ‰«      | j                   j                  k  r!|j                   j                  |«      |_         nI|j                  dk(  r:|j                   dk(  rd|_        n#t%        t        |j                   «      «      |_         |	j'                  |«       �Œ- t        |	«      dkD  r/| j(                  s#t+        |	«      }t        |«      t        | «      z  }nrt        ‰«      | j                   j                  k  r*| j                   j                  |«      j                  «       }ndg}t-        || j.                  j0                  ¬«      }d}t        ‰«      | j                   j                  k  rI| j                   j                  |«      j                  «       }|j                   j3                  |«      s||   }t5        | j6                  t8        «      rL| j6                  j:                  }t=        t        j>                  | j6                  j@                  d|f«      «      }n>tC        | j6                  d	¬
«      \  }}|g}t=        t        j>                  |d|f«      «      }t5        |t8        «      r'|j:                  }|jE                  «       j@                  }n"|j                  «       g}tC        |d	¬
«      d   g}|D �cg c]!  }t        jF                  |t        | «      «      ‘Œ# }}t9        ||z   ||z   | j6                  jH                  t=        |jH                  «      z   d	¬«      |_        t        | «      }t        |«      }t        jJ                  |«      }t        j>                  ||z  |«      t        jF                  t        jJ                  |«      |«      z   }|jM                  |«      }|j                   dk(  rd| j                   j                  t        ‰«      k(  rBt        |j                   «      dk(  rtO        |j6                  ¬«      }n|jP                  d d …df   }|j                   dk(  rd |_        |S c c}w c c}w )Nz8Columns with duplicate values are not supported in stackT)Úreverser(   r)   c              3  óR   •K  — | ]  }|‰v rt        ‰«      n
t        d «      –— Œ  y ­wrO   )ÚnextrB  )rS   ÚkÚgenr0   s     €€rK   rU   zstack_v3.<locals>.<genexpr>’  s,   øè ø€ ò #àð  %™Z”�S”	¬U°4«[Ó8ñ#ùs   ƒ$'r   )r‘   rp   F)Úuse_na_sentinelrµ   rš   r  ))r‘   ÚnuniquerQ   ry   Úsortedr
  rÝ   rÞ   r=   ÚargsortÚ_reorder_ilevelsr   r�   ÚiterrW   rE  r’   r§   r   r½   r¢   r   r   rþ   rp   rJ  r£   r.   r   r4   r3   r¾   r1   r   Údrop_duplicatesr»   r6   r}   r<   r   rG  )r  r0   Údrop_levnumsrf  Ú
stack_colsÚsorterÚordered_stack_colsÚstack_cols_uniqueÚordered_stack_cols_uniqueÚbufr[  rà   Úcolumn_indexerrï   Úratiorò   r^  Úindex_levelsÚindex_codesr1   ÚuniquesÚcolumn_levelsÚcolumn_codesÚlen_dfÚ	n_uniquesr_   Úidxsrg  s    `                         @rK   Ústack_v3r€  u  s•  ù€ Ø‡}�}×ÑÓ¤# e§m¡mÓ"4Ò4ÜÐSÓTÐTô ˜%¨Ô.€LØ—‘×2Ñ2Ü˜%Ÿ-™-×/Ñ/Ó0ÖCˆq°A¸U²NŠÒCÁDÀbÀDÑIó€Jô ˆ5ƒz�A‚~ä—‘˜EÓ"ˆØ'×8Ñ8¸Ó@Ñà'Ðà"×)Ñ)Ó+ÐØ 2× 9Ñ 9Ó ;Ðð €CØ ó ˆÜˆu�}‰}Ó Ò"Ø—:‘:“<‰Dô �5‹z˜QŠØ�f�Ü�s“)ˆCÜ"ô #ä˜uŸ}™}×4Ñ4Ó5ô#ó ˆNð —9‘9šQ Ð.Ñ/ˆDäˆu‹:˜Ÿ™×-Ñ-Ò-ØŸ<™<×;Ñ;¸LÓIˆD�LØ×Ñ 1Ò$Ø�y‰y˜AŠ~Ø�•	ä)¬#¨d¯l©lÓ*;Ó<�”Ø�
‰
�4Öð+ô0 ˆ3ƒx�!‚|˜EŸKšKÜ˜“ˆÜ�F“œs 5›zÑ)‰ô ˆu‹:˜Ÿ™×-Ñ-Ò-àŸ-™-×;Ñ;¸LÓI×PÑPÓR‰Kà˜#ˆKÜ ;°e·m±m×6IÑ6IÔJˆØˆä
ˆ5ƒz�E—M‘M×)Ñ)Ò)àŸ-™-×;Ñ;¸LÓI×PÑPÓRˆØ�~‰~×$Ñ$ _Ô5Ø˜OÑ,ˆFô
 �%—+‘+œzÔ*Ø—{‘{×)Ñ)ˆÜœ2Ÿ7™7 5§;¡;×#4Ñ#4°q¸%°jÓAÓB‰ä" 5§;¡;ÀÔF‰ˆˆwØ�yˆÜœ2Ÿ7™7 5¨1¨e¨*Ó5Ó6ˆÜ�*œjÔ)Ø*×1Ñ1ˆØ)×9Ñ9Ó;×AÑA‰à+×2Ñ2Ó4Ð5ˆÜ!Ð";ÈUÔSÐTUÑVÐWˆØ>JÖK°U”B—I‘I˜e¤S¨£ZÕ0ÐK€LÐKÜØ˜mÑ+Ø˜LÑ(Ø�k‰k×Ñ¤$Ð'9×'?Ñ'?Ó"@Ñ@Øô	€F„Lô �‹Z€FÜÐ-Ó.€IÜ�i‰i˜	Ó"€GÜ�7‰7�6˜GÑ# VÓ,¬r¯y©y¼¿¹À6Ó9JÈIÓ/VÑV€DØ�[‰[˜Ó€Fð ‡{�{�aÒ˜EŸM™M×1Ñ1´S¸³ZÒ?Üˆv�~‰~Ó !Ò#Ü &§,¡,Ô/‰Fà—[‘[¢ A Ñ&ˆFØ‡{�{�aÒØˆŒà€MùòC 	DùòR Ls   Â	V6ÂV6Ñ &V;)NT)rà   úSeries | DataFramer,   rv   )rÿ   r�  r,   rv   )rÿ   r   r,   rv   rÊ   r   )r  r   r,   rv   rÊ   r   )r(   TT)r  r   r  rv   r,   rv   )TT)r‘   r   rÊ   r   )
r  r   r  r*  r  rv   r,   rv   rÊ   r   )r%  r#   r`  r*  ra  r*  rÊ   r#   )r  r   r0   z	list[int]rÊ   r�  )LÚ
__future__r   r0  Útypingr   r   rB   Únumpyr=   Úpandas._libs.reshapeÚ_libsrŸ   rª   Úpandas.errorsr   Úpandas.util._decoratorsr   Úpandas.util._exceptionsr   Úpandas.core.dtypes.castr	   r
   Úpandas.core.dtypes.commonr   r   r   r   Úpandas.core.dtypes.dtypesr   Úpandas.core.dtypes.missingr   Úpandas.core.algorithmsÚcoreÚ
algorithmsrg   r   r   Úpandas.core.arrays.categoricalr   Úpandas.core.constructionr   Úpandas.core.framer   Úpandas.core.indexes.apir   r   r   Úpandas.core.reshape.concatr   Úpandas.core.seriesr   Úpandas.core.sortingr   r   r   r   r   Úpandas._typingr    r!   r"   Úpandas.core.arraysr#   Úpandas.core.indexes.frozenr$   r&   ró   r«   rø   rü   rú   r+  r8  r  r  r€  rÑ   ra   rK   ú<module>r›     su  ðÝ "ã ÷ó ã ç )Ð )Ý ,Ý 2Ý 4÷÷ó õ 5Ý ,ç &Ð &÷õ CÝ CÝ '÷ñ õ
 .Ý %÷õ ñ ÷ñ õ 2Ý5÷K
ñ K
ð^
 DHðXØ
ðXØ<@óXôv!
ðJ :>ð
Ø	ð
Ø26ð
àó
ð""Øð"Ø-1ð"àó"ôJJBôZóBð8 NRðAØðAØ!$ðAØ37ðAØFJðAàóAðH"Ø	ð"Ø!$ð"Ø14ð"àó"ôJhra   