§
    1@ÄjI»  ã                   ó¤  — d 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mZ ddlmZmZ ddlmZmZ ddlmZ dd	lmZmZ  eej        ¦  «        d
„ ¦   «         Z eej        ¦  «        d„ ¦   «         Z eej        ¦  «         eej        ¦  «        d„ ¦   «         ¦   «         Z eej        ¦  «        d„ ¦   «         Z  eej        ¦  «        d„ ¦   «         Z! eej"        ¦  «        d„ ¦   «         Z# eej"        ¦  «        d„ ¦   «         Z$ eej%        ¦  «        d„ ¦   «         Z& eej%        ¦  «        d„ ¦   «         Z' eej(        ¦  «        d„ ¦   «         Z) eej(        ¦  «         eej*        ¦  «        d„ ¦   «         ¦   «         Z+ eej,        ¦  «        d„ ¦   «         Z- eej.        ¦  «        d„ ¦   «         Z/ eej.        ¦  «        d„ ¦   «         Z0 eej1        ¦  «        d„ ¦   «         Z2 eej3        ¦  «        d„ ¦   «         Z4 eej3        ¦  «        d„ ¦   «         Z5 eej6        ¦  «        d„ ¦   «         Z7 eej6        ¦  «        d„ ¦   «         Z8 eej9        ¦  «        d„ ¦   «         Z: eej;        ¦  «        d„ ¦   «         Z< eej;        ¦  «        d„ ¦   «         Z= eej>        ¦  «        d „ ¦   «         Z? eej>        ¦  «        d!„ ¦   «         Z@ eejA        ¦  «        d"„ ¦   «         ZB eejC        ¦  «        d#„ ¦   «         ZD eejE        ¦  «        d$„ ¦   «         ZF eejG        ¦  «        d%„ ¦   «         ZH eejI        ¦  «        d&„ ¦   «         ZJ eejG        ¦  «        d'„ ¦   «         ZK eejL        ¦  «         eejM        ¦  «        d(„ ¦   «         ¦   «         ZN eejO        ¦  «         eejP        ¦  «        d)„ ¦   «         ¦   «         ZQ eejR        ¦  «        d*„ ¦   «         ZS eejT        ¦  «        d+„ ¦   «         ZU G d,„ d-eV¦  «        ZWd.„ ZX eejT        ¦  «        d/„ ¦   «         ZY e	ejT        ¦  «        d0„ ¦   «         ZZd1„ Z[ eej\        ¦  «        d2„ ¦   «         Z]d3„ Z^ eej\        ¦  «        d4„ ¦   «         Z_ e	ej\        ¦  «        d5„ ¦   «         Z` eeja        ¦  «        d6„ ¦   «         Zb eeja        ¦  «        d7„ ¦   «         Zc eejd        ¦  «        d8„ ¦   «         Ze eejd        ¦  «        d9„ ¦   «         Zf eejg        ¦  «        d:„ ¦   «         Zh eejg        ¦  «        d;„ ¦   «         Zi eejj        ¦  «         eejk        ¦  «        d<„ ¦   «         ¦   «         Zl eejj        ¦  «         eejk        ¦  «        d=„ ¦   «         ¦   «         Zm eejn        ¦  «        d>„ ¦   «         Zo eejp        ¦  «        d?„ ¦   «         Zq eejp        ¦  «        d@„ ¦   «         Zr eejs        ¦  «        dA„ ¦   «         Zt eejs        ¦  «        dB„ ¦   «         ZldC„ ZudD„ Zv eejw        ¦  «        dE„ ¦   «         Zx eejy        ¦  «        dF„ ¦   «         Zz eejy        ¦  «        dG„ ¦   «         Z{ eej|        ¦  «        dH„ ¦   «         Z} eej~        ¦  «        dI„ ¦   «         Z eej€        ¦  «        dJ„ ¦   «         Z� ej€        dK¦  «        Z‚ eejƒ        ¦  «        dL„ ¦   «         Z„ eejƒ        ¦  «        dM„ ¦   «         Z…dNS )OzG
Boxing and unboxing of native Numba values to / from CPython objects.
é    )Úir)ÚtypesÚcgutils)ÚboxÚunboxÚreflectÚNativeValue)ÚNumbaNotImplementedErrorÚTypingError)ÚtypeofÚPurpose)ÚsetobjÚlistobj)Únumpy_support)ÚcontextmanagerÚ	ExitStackc                 ó6   — |j                              |¦  «        S ©N)ÚpyapiÚbool_from_bool©ÚtypÚvalÚcs      úBC:\Projects\Historical\venv\Lib\site-packages\numba/core/boxing.pyÚbox_boolr      s   € àŒ7×!Ò! #Ñ&Ô&Ð&ó    c                 óò   — |j                              |¦  «        }t          j        |j        d¦  «        }|j                             d||¦  «        }t          ||j                              ¦   «         ¬¦  «        S )Nr   ú!=©Úis_error)	r   Úobject_istruer   ÚConstantÚtypeÚbuilderÚicmp_signedr	   Úc_api_error)r   Úobjr   ÚistrueÚzeror   s         r   Úunbox_booleanr+      sd   € àŒW×"Ò" 3Ñ'Ô'€FÝŒ;�v”{ AÑ&Ô&€DØ
Œ)×
Ò
  f¨dÑ
3Ô
3€CÝ�s Q¤W×%8Ò%8Ñ%:Ô%:Ð;Ñ;Ô;Ð;r   c                 ó†   — |j                              |j        || | j        ¦  «        }|                     | j        |¦  «        S r   )ÚcontextÚcastr%   Úliteral_typer   r   s      r   Úbox_literal_integerr0   !   s9   € ð Œ)�.Š.˜œ C¨¨cÔ.>Ñ
?Ô
?€CØ�5Š5�Ô! 3Ñ'Ô'Ð'r   c                 ó  — | j         r?|j                             ||j        j        ¦  «        }|j                             |¦  «        S |j                             ||j        j        ¦  «        }|j                             |¦  «        S r   )	Úsignedr%   Úsextr   ÚlonglongÚlong_from_longlongÚzextÚ	ulonglongÚlong_from_ulonglong)r   r   r   ÚivalÚullvals        r   Úbox_integerr;   (   sl   € à
„zð 3ØŒy�~Š~˜c 1¤7Ô#3Ñ4Ô4ˆØŒw×)Ò)¨$Ñ/Ô/Ð/à”—’  Q¤WÔ%6Ñ7Ô7ˆØŒw×*Ò*¨6Ñ2Ô2Ð2r   c                 ó–  — |j                              | ¦  «        }t          j        |j        |¦  «        }|j                             |¦  «        }|j                             |¦  «        5  | j        r|j         	                    |¦  «        }n|j         
                    |¦  «        }|j                             |¦  «         |j                             |j                             ||¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j                             |¦  «        |j                             ¦   «         ¬¦  «        S ©Nr    )r-   Úget_argument_typer   Úalloca_oncer%   r   Únumber_longÚif_object_okr2   Úlong_as_longlongÚlong_as_ulonglongÚdecrefÚstoreÚtruncr	   Úloadr'   )r   r(   r   Úll_typer   ÚlongobjÚllvals          r   Úunbox_integerrK   1   sU  € àŒi×)Ò)¨#Ñ.Ô.€GÝ
Ô
˜aœi¨Ñ
1Ô
1€CØŒg×!Ò! #Ñ&Ô&€GØ	
Œ×	Ò	˜gÑ	&Ô	&ð >ð >ØŒ:ð 	7Ø”G×,Ò,¨WÑ5Ô5ˆEˆEà”G×-Ò-¨gÑ6Ô6ˆEØ	Œ�Š�wÑÔÐØ	Œ	�Š˜œ	Ÿš¨¨wÑ7Ô7¸Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >õ �q”y—~’~ cÑ*Ô*Ø !¤× 3Ò 3Ñ 5Ô 5ð7ñ 7ô 7ð 7s   Á)BD Ä DÄDc                 óÊ   — | t           j        k    r&|j                             ||j        j        ¦  «        }n| t           j        k    sJ ‚|}|j                             |¦  «        S r   )r   Úfloat32r%   Úfpextr   ÚdoubleÚfloat64Úfloat_from_double)r   r   r   Údbvals       r   Ú	box_floatrS   A   sX   € à
�eŒmÒÐØ”	—’  Q¤W¤^Ñ4Ô4ˆˆà•e”mÒ#Ð#Ð#Ð#ØˆØŒ7×$Ò$ UÑ+Ô+Ð+r   c                 óž  — |j                              |¦  «        }|j                              |¦  «        }|j                              |¦  «         | t          j        k    r4|j                             ||j         	                    | ¦  «        ¦  «        }n| t          j
        k    sJ ‚|}t          ||j                              ¦   «         ¬¦  «        S r=   )r   Únumber_floatÚfloat_as_doublerD   r   rM   r%   Úfptruncr-   r>   rP   r	   r'   )r   r(   r   ÚfobjrR   r   s         r   Úunbox_floatrY   J   s¸   € àŒ7×Ò Ñ$Ô$€DØŒG×#Ò# DÑ)Ô)€EØ„G‡N‚N�4ÑÔÐØ
�eŒmÒÐØŒi×Ò Ø !¤	× ;Ò ;¸CÑ @Ô @ñBô Bˆˆð •e”mÒ#Ð#Ð#Ð#ØˆÝ�s Q¤W×%8Ò%8Ñ%:Ô%:Ð;Ñ;Ô;Ð;r   c                 ó†  — |j                              |j        | |¬¦  «        }| t          j        k    rU|j                             |j        |j        j        ¦  «        }|j                             |j	        |j        j        ¦  «        }n | t          j
        k    sJ ‚|j        |j	        }}|j                             ||¦  «        S ©N©Úvalue)r-   Úmake_complexr%   r   Ú	complex64rN   Úrealr   rO   ÚimagÚ
complex128Úcomplex_from_doubles)r   r   r   ÚcvalÚfrealÚfimags         r   Úbox_complexrg   X   sž   € àŒ9×!Ò! !¤)¨S¸Ð!Ñ<Ô<€Dà
�eŒoÒÐØ”	—’ ¤	¨1¬7¬>Ñ:Ô:ˆØ”	—’ ¤	¨1¬7¬>Ñ:Ô:ˆˆà•eÔ&Ò&Ð&Ð&Ð&Ø”y $¤)ˆuˆØŒ7×'Ò'¨¨uÑ5Ô5Ð5r   c                 óV  — |j                              |j        t          j        ¦  «        }|j                             ||                     ¦   «         ¦  «        }t          j	        |j        |¦  «        }t          j
        |j        |¦  «        5  |j                             dd| ›d�¦  «         d d d ¦  «         n# 1 swxY w Y   | t          j        k    r¡|j                              |j        | ¦  «        }|j                              |j        |j        t          j        t          j        ¦  «        |_        |j                              |j        |j        t          j        t          j        ¦  «        |_        n| t          j        k    sJ ‚|}t%          |                     ¦   «         |¬¦  «        S )NÚPyExc_TypeErrorzconversion to z failedr    )r-   r^   r%   r   rb   r   Úcomplex_adaptorÚ_getpointerr   Úis_falseÚif_unlikelyÚerr_set_stringr_   r.   r`   rP   rM   ra   r	   Ú	_getvalue)r   r(   r   Úc128ÚokÚfailedÚcplxs          r   Úunbox_complexrt   d   sµ  € ð Œ9×!Ò! !¤)­UÔ-=Ñ>Ô>€DØ	
Œ×	 Ò	   d×&6Ò&6Ñ&8Ô&8Ñ	9Ô	9€BÝÔ˜aœi¨Ñ,Ô,€Få	Ô	˜QœY¨Ñ	/Ô	/ð Cð CØ	Œ×ÒÐ0Ð0Ø<?¸C¸CÐAñ	Cô 	Cð 	CðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð �eŒoÒÐàŒy×%Ò% a¤i°Ñ5Ô5ˆØ”I—N’N 1¤9¨d¬iÝ#(¤=µ%´-ñAô AˆŒ	à”I—N’N 1¤9¨d¬iÝ#(¤=µ%´-ñAô AˆŒ	ˆ	ð •eÔ&Ò&Ð&Ð&Ð&ØˆÝ�t—~’~Ñ'Ô'°&Ð9Ñ9Ô9Ð9s   Â B8Â8B<Â?B<c                 ó4   — |j                              ¦   «         S r   )r   Ú	make_noner   s      r   Úbox_nonerw   |   s   € àŒ7×ÒÑÔÐr   c                 óN   — t          |j                             ¦   «         ¦  «        S r   ©r	   r-   Úget_dummy_valuer   s      r   Ú
unbox_noner{   €   ó    € õ �q”y×0Ò0Ñ2Ô2Ñ3Ô3Ð3r   c                 óÀ   — |j                              t          j        ¦  «        }|j                             ||¦  «        }|                     t          j        |¦  «        S )z0
    Convert a raw pointer to a Python int.
    )r-   Úget_value_typer   Úuintpr%   Úptrtointr   )r   r   r   Úll_intpÚaddrs        r   Úbox_raw_pointerrƒ   …   sH   € ð
 Œi×&Ò&¥u¤{Ñ3Ô3€GØŒ9×Ò˜c 7Ñ+Ô+€DØ�5Š5•”˜dÑ#Ô#Ð#r   c                 óÞ   — |                      | j        |¦  «        }|j                             |j                             | j        ¦  «        ¦  «        }|j                             ||f¦  «        S )z6
    Fetch an enum member given its native value.
    )r   Údtyper   ÚunserializeÚserialize_objectÚinstance_classÚcall_function_objargs)r   r   r   ÚvalobjÚcls_objs        r   Úbox_enumrŒ   �   s[   € ð
 �UŠU�3”9˜cÑ"Ô"€FàŒg×!Ò! !¤'×":Ò":¸3Ô;MÑ"NÔ"NÑOÔO€GØŒ7×(Ò(¨°6°)Ñ<Ô<Ð<r   c                 ón   — |j                              |d¦  «        }|                     | j        |¦  «        S )z=
    Convert an enum member's value to its native value.
    r]   )r   Úobject_getattr_stringr   r…   )r   r(   r   rŠ   s       r   Ú
unbox_enumr�   š   s1   € ð
 ŒW×*Ò*¨3°Ñ8Ô8€FØ�7Š7�3”9˜fÑ%Ô%Ð%r   c                 ó$   — d}t          |¦  «        ‚)z7This type cannot be boxed, there's no Python equivalentzJUndefVar type cannot be boxed, there is no Python equivalent of this type.)r   )r   r   r   Úmsgs       r   Úbox_undefvarr’   £   s   € ð€Cå
�cÑ
Ô
Ðr   c                 ó:  — t          j        t          j        d¦  «        |j        j        j        ¦  «        }|j                             |t          j        t          j        d¦  «        ¦  «        ¦  «        }|j	         
                    ||| j        |j        ¦  «        S )Né    é   )r   r#   ÚIntTyper$   ÚpointeeÚcountr%   ÚbitcastÚPointerTyper   Úrecreate_recordr…   Úenv_manager)r   r   r   ÚsizeÚptrs        r   Ú
box_recordrŸ   ®   sn   € õ Œ;•r”z "‘~”~ s¤xÔ'7Ô'=Ñ>Ô>€DØ
Œ)×
Ò
˜C¥¤µ´
¸1±´Ñ!>Ô!>Ñ
?Ô
?€CØŒ7×"Ò" 3¨¨c¬i¸¼ÑGÔGÐGr   c                 ó<  ‡‡— ‰j                              ¦   «         Š‰j                              |‰¦  «        }t          j        ‰j        |¦  «        }‰j                             | ¦  «        }‰j                             ||¦  «        }ˆˆfd„}t          |||¬¦  «        S )Nc                  ó<   •— ‰j                              ‰ ¦  «         d S r   ©r   Úrelease_buffer©Úbufr   s   €€r   Úcleanupzunbox_record.<locals>.cleanupÀ   ó   ø€ Ø	Œ×Ò˜sÑ#Ô#Ð#Ð#Ð#r   ©r¦   r!   )
r   Úalloca_bufferÚextract_record_datar   Úis_nullr%   r-   r~   r™   r	   )	r   r(   r   rž   r!   Últypr   r¦   r¥   s	     `     @r   Úunbox_recordr­   ·   s    øø€ à
Œ'×
Ò
Ñ
!Ô
!€CØ
Œ'×
%Ò
% c¨3Ñ
/Ô
/€CÝŒ˜qœy¨#Ñ.Ô.€HàŒ9×#Ò# CÑ(Ô(€DØ
Œ)×
Ò
˜C Ñ
&Ô
&€Cð$ð $ð $ð $ð $ð $å�s G°hÐ?Ñ?Ô?Ð?r   c           
      óÆ  — |j         j        |j         j        |j         j        dœt          j                 }|j                             t          j        |¦  «        }t          j
        |j        |¬¦  «        }|j                             ||j         j        ¦  «        }|j                             t          j        | j        ¦  «        }|                     d¦  «        }|                     d¦  «        }	|                     t          j        ¦  «        }
t          j
        |j        |¦  «        }t          j        |j        |g|j        ¦  «        5 \  }|j                             |j                             ||j                             ||
¦  «        g¦  «        ¦  «        }|j                             t          j        |j        |¦  «        ¦  «        5  |j                             |j                             ||	¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j                             |¦  «        }|j                              |||¦  «        S )N)é   é   é   r\   r   r¯   )r   Úpy_unicode_1byte_kindÚpy_unicode_2byte_kindÚpy_unicode_4byte_kindr   Úsizeof_unicode_charr-   Úget_constantÚint32r   Úalloca_once_valuer%   r™   ÚcstringÚintpr˜   r$   Ú	loop_nestrG   ÚgepÚmulÚif_thenÚis_not_nullrE   ÚaddÚstring_from_kind_and_data)r   r   r   Úunicode_kindÚkindÚrawptrÚstrptrÚfullsizer*   ÚoneÚstepr˜   ÚidxÚchÚstrlens                  r   Úbox_unicodecharseqrÌ   Å   s\  € ð Œ7Ô(ØŒ7Ô(ØŒ7Ô(ð*ð *õ +0Ô*CôE€Lð Œ9×!Ò!¥%¤+¨|Ñ<Ô<€DÝÔ& q¤y¸Ð<Ñ<Ô<€FØŒY×Ò˜v q¤w¤Ñ7Ô7€FàŒy×%Ò%¥e¤j°#´)Ñ<Ô<€HØ�=Š=˜ÑÔ€DØ
�-Š-˜Ñ
Ô
€CØ�=Š=�Ô2Ñ3Ô3€DÝÔ% a¤i°Ñ6Ô6€EÝ	Ô	˜1œ9 x j°(´-Ñ	@Ô	@ð <ÁEÀSàŒY�^Š^˜AœIŸMšM¨&°1´9·=²=ÀÀdÑ3KÔ3KÐ2LÑMÔMÑNÔNˆàŒY×Ò�wÔ2°1´9¸bÑAÔAÑBÔBð 	<ð 	<ØŒI�OŠO˜AœIŸMšM¨#¨sÑ3Ô3°UÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð	<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð ŒY�^Š^˜EÑ"Ô"€FØŒ7×,Ò,¨T°6¸6ÑBÔBÐBs7   ÅBH"Ç
5HÇ?H"ÈH	ÈH"ÈH	ÈH"È"H&È)H&c                 óâ  — |j                              | ¦  «        }|j                             |¦  «        \  }}}}}}	t	          j        |j        |¦  «        5  t          j        |j	        | j
        ¦  «        }
|j                             d||
¦  «        }|j                             |||
¦  «        }t          j        |d ¦  «        }t	          j        |j        |¦  «        }t	          j        |j        |j                             ||j	        ¦  «        ||¦  «         d d d ¦  «         n# 1 swxY w Y   |j                             |¦  «        }t#          ||j                             |¦  «        ¬¦  «        S ©Nz<=r    )r-   r~   r   Ústring_as_string_size_and_kindr   Ú	if_likelyr%   r   r#   r$   r˜   Úicmp_unsignedÚselectr¸   Úmemcpyr™   rG   r	   Únot_)r   r(   r   Últyrq   Úbufferr�   rÃ   Úis_asciiÚhashvÚstorage_sizeÚ	size_fitsÚnull_stringÚoutspaceÚrets                  r   Úunbox_unicodecharseqrÞ   ß   s…  € à
Œ)×
"Ò
" 3Ñ
'Ô
'€Cð 	
Œ×.Ò.¨sÑ3Ô3ñ ,€Bˆ��d˜H eõ 
Ô	˜1œ9 bÑ	)Ô	)ð &ð &å”{ 4¤9¨c¬iÑ8Ô8ˆØ”I×+Ò+¨D°$¸ÑEÔEˆ	ð Œy×Ò 	¨4°Ñ>Ô>ˆõ ”k # tÑ,Ô,ˆÝÔ-¨a¬i¸ÑEÔEˆõ 	Œ�q”yØœ	×)Ò)¨(°F´KÑ@Ô@Ø ñ	&ô 	&ð 	&ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð$ Œ)�.Š.˜Ñ
"Ô
"€CÝ�s Q¤Y§^¢^°BÑ%7Ô%7Ð8Ñ8Ô8Ð8s   ÁCD#Ä#D'Ä*D'c                 óÞ   — |j                              |j        | |¦  «        }|j                             |j        |j        ¦  «        }|j         j                             |j        | |¦  «         |S r   )	r-   Úmake_helperr%   r   Úbytes_from_string_and_sizeÚdataÚnitemsÚnrtrD   )r   r   r   r(   rÝ   s        r   Ú	box_bytesrå   ý   s[   € à
Œ)×
Ò
 ¤	¨3°Ñ
4Ô
4€CØ
Œ'×
,Ò
,¨S¬X°s´zÑ
BÔ
B€CØ„I„M×Ò˜œ C¨Ñ-Ô-Ð-Ø€Jr   c                 ó¢  — t          j        |j        |¬¦  «        }|j                             ||j        j        ¦  «        }|j                             t          j	        | j
        ¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        |j        |¦  «        }t          j        |j        |g|j        ¦  «        5 \  }	|j                             |j                             ||	g¦  «        ¦  «        }
|j                             t          j        |j        |
¦  «        ¦  «        5  |j                             |j                             |	|¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j                             |¦  «        }|j                             ||¦  «        S )Nr\   r   r¯   )r   r¸   r%   r™   r   r¹   r-   r¶   r   rº   r˜   r$   r»   rG   r¼   r¾   r¿   rE   rÀ   rá   )r   r   r   rÄ   rÅ   rÆ   r*   rÇ   r˜   rÉ   rÊ   rË   s               r   Úbox_charseqrç     sè  € åÔ& q¤y¸Ð<Ñ<Ô<€FØŒY×Ò˜v q¤w¤Ñ7Ô7€FØŒy×%Ò%¥e¤j°#´)Ñ<Ô<€HØ�=Š=˜ÑÔ€DØ
�-Š-˜Ñ
Ô
€CÝÔ% a¤i°Ñ6Ô6€Eõ
 
Ô	˜1œ9 x j°(´-Ñ	@Ô	@ð <ÁEÀSàŒY�^Š^˜AœIŸMšM¨&°3°%Ñ8Ô8Ñ9Ô9ˆàŒY×Ò�wÔ2°1´9¸bÑAÔAÑBÔBð 	<ð 	<ØŒI�OŠO˜AœIŸMšM¨#¨sÑ3Ô3°UÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð	<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð ŒY�^Š^˜EÑ"Ô"€FØŒ7×-Ò-¨f°fÑ=Ô=Ð=s7   ÃA)FÄ95E:Å.FÅ:E>	Å>FÆE>	ÆFÆFÆFc                 óÜ  — |j                              | ¦  «        }|j                             |¦  «        \  }}}t	          j        |j        |¦  «        5  t          j        |j	        | j
        ¦  «        }|j                             d||¦  «        }|j                             |||¦  «        }t          j        |d ¦  «        }	t	          j        |j        |	¦  «        }
t	          j        |j        |j                             |
|j	        ¦  «        ||¦  «         d d d ¦  «         n# 1 swxY w Y   |j                             |
¦  «        }t#          ||j                             |¦  «        ¬¦  «        S rÎ   )r-   r~   r   Ústring_as_string_and_sizer   rÐ   r%   r   r#   r$   r˜   rÑ   rÒ   r¸   rÓ   r™   rG   r	   rÔ   )r   r(   r   rÕ   rq   rÖ   r�   rÙ   rÚ   rÛ   rÜ   rÝ   s               r   Úunbox_charseqrê     s{  € à
Œ)×
"Ò
" 3Ñ
'Ô
'€CØ”w×8Ò8¸Ñ=Ô=Ñ€Bˆ�õ 
Ô	˜1œ9 bÑ	)Ô	)ð %ð %å”{ 4¤9¨c¬iÑ8Ô8ˆØ”I×+Ò+¨D°$¸ÑEÔEˆ	ð Œy×Ò 	¨4°Ñ>Ô>ˆõ ”k # tÑ,Ô,ˆÝÔ-¨a¬i¸ÑEÔEˆõ 	Œ�q”yØ”y×(Ò(¨°6´;Ñ?Ô?Ø˜tñ	%ô 	%ð 	%ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð$ Œ)�.Š.˜Ñ
"Ô
"€CÝ�s Q¤Y§^¢^°BÑ%7Ô%7Ð8Ñ8Ô8Ð8s   ÁCD Ä D$Ä'D$c                 ó�  — |j                              |j        | |¦  «        }t          j        |j        |j                             ¦   «         ¦  «        }|j                             |j        ¦  «        5 \  }}|5  | 	                    | j
        |j        ¦  «        }|j                             ||¦  «         d d d ¦  «         n# 1 swxY w Y   |5  |j                             |j                             ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j                             |¦  «        S r   )r-   rà   r%   r   r¸   r   Úborrow_noneÚif_elseÚvalidr   r$   râ   rE   rv   rG   )r   r   r   ÚoptvalrÝ   ÚthenÚ	otherwiseÚvalidress           r   Úbox_optionalró   8  sÍ  € àŒY×"Ò" 1¤9¨c°3Ñ7Ô7€FÝ
Ô
# A¤I¨q¬w×/BÒ/BÑ/DÔ/DÑ
EÔ
E€CØ	
Œ×	Ò	˜6œ<Ñ	(Ô	(ð 6Ñ,=¨T°9Øð 	+ð 	+Ø—u’u˜SœX v¤{Ñ3Ô3ˆHØŒI�OŠO˜H cÑ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ð 	6ð 	6ØŒI�OŠO˜AœG×-Ò-Ñ/Ô/°Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð	6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð Œ9�>Š>˜#ÑÔÐsZ   Á2D#Á8<C Â4D#Ã C	ÃD#ÃC	ÃD#Ã3DÄ D#ÄD	ÄD#ÄD	ÄD#Ä#D'Ä*D'c                 óò  ‡‡‡— ‰j                              ‰j        | j        ¦  «        }‰j                             d|‰j                             ¦   «         ¦  «        Št          j        ‰j        |j        ¦  «        }t          j	        ‰j        t          j
        ¦  «        }‰j                             ‰¦  «        5 \  }}|5  ‰                     | j        |¦  «        Š‰j                              ‰j        | j        ‰j        ¦  «        }‰j                             ||¦  «         ‰j                             ‰j        |¦  «         ddd¦  «         n# 1 swxY w Y   |5  ‰j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ‰j        �ˆˆˆfd„}	nd}	‰j                             |¦  «        }
t'          |
‰j                             |¦  «        |	¬¦  «        S )z>
    Convert object *obj* to a native optional structure.
    r   Nc                  ó–   •— ‰ j                              ‰¦  «        5  ‰                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r   )r%   r¾   r¦   )r   Úis_not_noneÚnatives   €€€r   r¦   zunbox_optional.<locals>.cleanup\  s�   ø€ Ø”×"Ò" ;Ñ/Ô/ð !ð !Ø—’Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   œ>¾AÁA©r!   r¦   )r-   Úmake_optional_noner%   r$   r&   r   rì   r   r?   r¸   Ú	false_bitrí   r   Úmake_optional_valuer]   rE   r!   r¦   rG   r	   )r   r(   r   ÚnonevalÚretptrÚerrptrrð   ÚorelseÚjustr¦   rÝ   rö   r÷   s     `        @@r   Úunbox_optionalr  E  s‘  øøø€ ð
 Œi×*Ò*¨1¬9°c´hÑ?Ô?€GØ”)×'Ò'¨¨c°1´7×3FÒ3FÑ3HÔ3HÑIÔI€KåÔ  ¤¨G¬LÑ9Ô9€FÝÔ& q¤yµ'Ô2CÑDÔD€Fà	
Œ×	Ò	˜;Ñ	'Ô	'ð 	-©>¨D°&Øð 	5ð 	5Ø—W’W˜SœX sÑ+Ô+ˆFØ”9×0Ò0°´Ø14´¸6¼<ñIô IˆDàŒI�OŠO˜D &Ñ)Ô)Ð)ØŒI�OŠO˜FœO¨VÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð ð 	-ð 	-ØŒI�OŠO˜G VÑ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð „~Ð!ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð ˆà
Œ)�.Š.˜Ñ
 Ô
 €CÝ�s Q¤Y§^¢^°FÑ%;Ô%;Ø&ð(ñ (ô (ð (s[   Â9FÂ?BEÅFÅE	ÅFÅE	ÅFÅFÅ6FÆF	ÆFÆ	F	Æ
FÆFÆ Fc                 ó,  — ddl m} |j                             |¦  «        \  }}}}|j                             |j        | ¦  «        }||_        ||_        ||_	        t          |                     ¦   «         |j                             |¦  «        ¬¦  «        S )z;
    Convert object *obj* to a native slice structure.
    r   )Úslicingr    )Únumba.cpythonr  r   Úslice_as_intsr-   rà   r%   ÚstartÚstoprÈ   r	   ro   rÔ   )	r   r(   r   r  rq   r  r  rÈ   Úslis	            r   Úunbox_slicer	  g  s‹   € ð
 &Ð%Ð%Ð%Ð%Ð%ØœG×1Ò1°#Ñ6Ô6Ñ€Bˆˆt�TØ
Œ)×
Ò
 ¤	¨3Ñ
/Ô
/€CØ€C„IØ€C„HØ€C„HÝ�s—}’}‘”°´·²ÀÑ1CÔ1CÐDÑDÔDÐDr   c           
      ó¤  — | j         }dD ]r}t          ||¦  «        }t          |t          ¦  «        rK	 t	          |t
          ¦  «         Œ># t          $ r'}t          d|› dt          |¦  «        › �¦  «        ‚d }~ww xY wŒs| j                              ¦   «         \  }}|j	         
                    |¦  «        }	|j	         
                    |¦  «        }
|j	                             |	¦  «        }|j	                             |
¦  «        }|j	                             ||¦  «        }|j	                             |¦  «         |j	                             |¦  «         |S )N)r  r  rÈ   z7Unable to create literal slice. Error encountered with z attribute. )Úliteral_valueÚgetattrÚ
isinstanceÚintr   r   Ú
ValueErrorÚstrÚ
__reduce__r   r‡   r†   ÚcallrD   )r   r   r   Ú	slice_litÚ
field_nameÚ	field_objÚeÚpy_ctorÚpy_argsÚserialized_ctorÚserialized_argsÚctorÚargsr(   s                 r   Úbox_slice_literalr  t  s`  € ð Ô!€IØ/ð 
ð 
ˆ
Ý˜I zÑ2Ô2ˆ	Ý�i¥Ñ%Ô%ð 	ðÝ�y¥'Ñ*Ô*Ð*Ð*øÝð ð ð Ý ð+Ø.8ð+ð +å"% a¡&¤&ð+ð +ñô ð øøøøðøøøð	ð Ô(×3Ò3Ñ5Ô5Ñ€GˆWØ”g×.Ò.¨wÑ7Ô7€OØ”g×.Ò.¨wÑ7Ô7€OØŒ7×Ò˜Ñ/Ô/€DØŒ7×Ò˜Ñ/Ô/€DØ
Œ'�,Š,�t˜TÑ
"Ô
"€CØ„G‡N‚N�4ÑÔÐØ„G‡N‚N�4ÑÔÐØ€Js   ²AÁ
A9Á"A4Á4A9c                 óN   — t          |j                             ¦   «         ¦  «        S r   ry   ©r   r(   r   s      r   Úunbox_string_literalr   Ž  r|   r   c                 óâ  — |j                              | ¦  «        } ||j         |j        |¬¦  «        }|j         j        r�t	          j        | j        ¦  «        }|j                             |j         	                    |¦  «        ¦  «        }|j
                             | ||¦  «        }|j         j                             |j        | |¦  «         |S |j        }|j
                             |¦  «         |S r[   )r-   Ú
make_arrayr%   Ú
enable_nrtr   Úas_dtyper…   rœ   Ú
read_constÚ	add_constr   Únrt_adapt_ndarray_to_pythonrä   rD   ÚparentÚincref)	r   r   r   ÚnativearyclsÚ	nativearyÚnp_dtypeÚdtypeptrÚnewaryr(  s	            r   Ú	box_arrayr/  š  sÒ   € à”9×'Ò'¨Ñ,Ô,€LØ�˜QœY¨¬	¸Ð=Ñ=Ô=€IØ„yÔð 
Ý Ô)¨#¬)Ñ4Ô4ˆØ”=×+Ò+¨A¬M×,CÒ,CÀHÑ,MÔ,MÑNÔNˆØ”×4Ò4°S¸#¸xÑHÔHˆà	Œ	Œ×Ò˜QœY¨¨SÑ1Ô1Ð1ØˆàÔ!ˆØ	Œ�Š�vÑÔÐØˆr   c                 óî  ‡‡
— ‰j                              ¦   «         Š
‰j                              |‰
¦  «        }t          j        ‰j        |¦  «        }‰j                             | ¦  «        } |‰j        ‰j        ¦  «        }|                     ¦   «         }t          j	        ‰j        ‰j         
                    |¦  «        ¦  «        5  ‰j                             |‰j         j        ¦  «        }‰j        j        r‰j                              ‰
|¦  «         n‰j                              ‰
|¦  «         ddd¦  «         n# 1 swxY w Y   ˆ
ˆfd„}	t!          ‰j                             |¦  «        ||	¬¦  «        S )zK
    Convert a Py_buffer-providing object to a native array structure.
    Nc                  ó<   •— ‰j                              ‰ ¦  «         d S r   r¢   r¤   s   €€r   r¦   zunbox_buffer.<locals>.cleanup¿  r§   r   rø   )r   r©   Ú
get_bufferr   r¿   r%   r-   r"  rk   rÐ   rÔ   r™   Úvoidptrr#  Únrt_adapt_buffer_from_pythonÚnumba_buffer_adaptorr	   rG   )r   r(   r   Úresr!   r*  r+  Úaryptrrž   r¦   r¥   s     `       @r   Úunbox_bufferr8  «  sž  øø€ ð
 Œ'×
Ò
Ñ
!Ô
!€CØ
Œ'×
Ò
˜S #Ñ
&Ô
&€CÝÔ" 1¤9¨cÑ2Ô2€Hà”9×'Ò'¨Ñ,Ô,€LØ�˜QœY¨¬	Ñ2Ô2€IØ×"Ò"Ñ$Ô$€Få	Ô	˜1œ9 a¤i§n¢n°XÑ&>Ô&>Ñ	?Ô	?ð 3ð 3ØŒi×Ò ¨¬¬Ñ8Ô8ˆØŒ9Ôð 	3ØŒG×0Ò0°°cÑ:Ô:Ð:Ð:àŒG×(Ò(¨¨cÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð$ð $ð $ð $ð $ð $õ �q”y—~’~ fÑ-Ô-¸Ø&ð(ñ (ô (ð (s   ÃA)D<Ä<E ÅE c                 óž  — |j                              | ¦  «        } ||j         |j        ¦  «        }|                     ¦   «         }|j                             ||j        j        ¦  «        }|j         j        r|j                             ||¦  «        }n|j         	                    ||¦  «        }	 t          j        | j        ¦  «        j        }|j                             |¦  «        }|j                             d|j        |¦  «        }	n# t           $ r t"          j        }	Y nw xY w|j                             t#          j        |j        |¦  «        |	¦  «        }
|j                             |
d¬¦  «        5  |j                             dd¦  «         ddd¦  «         n# 1 swxY w Y   t/          |j                             |¦  «        |
¬¦  «        S )zC
    Convert a Numpy array object to a native array structure.
    r   F©Úlikelyri   zXcan't unbox array from PyObject into native value.  The object maybe of a different typeNr    )r-   r"  r%   rk   r™   r   r3  r#  Únrt_adapt_ndarray_from_pythonÚnumba_array_adaptorr   r$  r…   Úitemsizer$   rÑ   r
   r   rú   Úor_r¿   r¾   rn   r	   rG   )r   r(   r   r*  r+  r7  rž   ÚerrcodeÚexpected_itemsizeÚitemsize_mismatchrr   s              r   Úunbox_arrayrC  Å  s  € ð ”9×'Ò'¨Ñ,Ô,€LØ�˜QœY¨¬	Ñ2Ô2€IØ×"Ò"Ñ$Ô$€Fà
Œ)×
Ò
˜F A¤G¤OÑ
4Ô
4€CØ„yÔð 8Ø”'×7Ò7¸¸SÑAÔAˆˆà”'×-Ò-¨c°3Ñ7Ô7ˆðÝ)Ô2°3´9Ñ=Ô=ÔFÐð
 &Ô.×3Ò3Ð4EÑFÔFÐØœI×3Ò3ØØÔØñô ÐÐøõ $ð .ð .ð .å#Ô-ÐÐÐð.øøøð ŒY�]Š]ÝÔ˜AœI wÑ/Ô/Øñô €Fð
 
Œ×	Ò	˜6¨%Ð	Ñ	0Ô	0ð 1ð 1Ø	Œ×ÒÐ0ð 0ñ	1ô 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ
 �q”y—~’~ fÑ-Ô-¸Ð?Ñ?Ô?Ð?s$   Â.D ÄD!Ä D!Å3FÆFÆ"Fc                 ó  — |j                              | j        ¦  «        }t          | ¦  «        D ]R\  }}|j                             ||¦  «        }|                     ||¦  «        }|j                              |||¦  «         ŒS|S )zD
    Convert native array or structure *val* to a tuple object.
    )r   Ú	tuple_newr˜   Ú	enumerater%   Úextract_valuer   Útuple_setitem)r   r   r   Ú	tuple_valÚir…   Úitemr(   s           r   Ú	box_tuplerL  õ  s�   € ð ”×!Ò! #¤)Ñ,Ô,€Iå˜c‘N”Nð 1ð 1‰ˆˆ5ØŒy×&Ò& s¨AÑ.Ô.ˆØ�eŠe�E˜4Ñ Ô ˆØ	Œ×Ò˜i¨¨CÑ0Ô0Ð0Ð0àÐr   c                 ó4  — |j                              |j                              | j        ¦  «        ¦  «        }t	          | ||¦  «        }|j                              ||¦  «        }|j                              |¦  «         |j                              |¦  «         |S )zI
    Convert native array or structure *val* to a namedtuple object.
    )r   r†   r‡   rˆ   rL  r  rD   )r   r   r   r‹   Ú	tuple_objr(   s         r   Úbox_namedtuplerO    s   € ð Œg×!Ò! !¤'×":Ò":¸3Ô;MÑ"NÔ"NÑOÔO€GÝ˜#˜s AÑ&Ô&€IØ
Œ'�,Š,�w 	Ñ
*Ô
*€CØ„G‡N‚N�7ÑÔÐØ„G‡N‚N�9ÑÔÐØ€Jr   c                 óÎ  ‡— t          | ¦  «        }g }g Š|j                             | ¦  «        }t          j        |j        t          j        ¦  «        }t          j        |j        |¦  «        }|j         	                    |¦  «        }|j         
                    d|t          j        |j        |¦  «        ¦  «        }	|j                             |j                             |	¦  «        d¬¦  «        5  |j                             dd|fz  |¦  «         |j                             t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   t'          | ¦  «        D ]Ï\  }
}|j                             ||
¦  «        }|                     ||¦  «        }|                     |j        ¦  «         |j                             |j        d¬¦  «        5  |j                             t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   |j        �‰                     |j        ¦  «         ŒÐ|j                             |j        | |¦  «        }|j                             ||¦  «         ‰r:|j                             |	d¬¦  «        5  ˆfd„}ddd¦  «         n# 1 swxY w Y   nd}t7          |j                             |¦  «        ||j                             |¦  «        ¬	¦  «        S )
zN
    Convert tuple *obj* to a native array (if homogeneous) or structure.
    z==Fr:  ÚPyExc_ValueErrorz<size mismatch for tuple, expected %d element(s) but got %%zdNTc                  ó@   •— t          ‰¦  «        D ]}  | ¦   «          Œd S r   )Úreversed)ÚfuncÚcleanupss    €r   r¦   zunbox_tuple.<locals>.cleanup:  s1   ø€ Ý$ XÑ.Ô.ð ð �DØ�D‘F”F�F�Fðð r   r¨   )Úlenr-   r~   r   r¸   r%   rú   r?   r   Ú
tuple_sizerÑ   r   r#   r$   r¾   rÔ   Ú
err_formatrE   Útrue_bitrF  Útuple_getitemr   Úappendr]   r!   r¦   Ú
make_tupler	   rG   )r   r(   r   ÚnÚvaluesrÕ   Úis_error_ptrÚ	value_ptrÚactual_sizeÚsize_matchesrJ  ÚeltypeÚelemr÷   r]   r¦   rU  s                   @r   Úunbox_tuplere    sh  ø€ õ
 	ˆC‰Œ€AØ€FØ€HØ
Œ)×
"Ò
" 3Ñ
'Ô
'€CåÔ,¨Q¬Y½Ô8IÑJÔJ€LÝÔ# A¤I¨sÑ3Ô3€Ið ”'×$Ò$ SÑ)Ô)€KØ”9×*Ò*¨4°Ý,.¬K¸Ô8HÈ!Ñ,LÔ,LñNô N€Là	
Œ×	Ò	˜1œ9Ÿ>š>¨,Ñ7Ô7ÀÐ	Ñ	FÔ	Fð 8ð 8Ø	Œ×ÒØØJÈaÈTÑQØñ	ô 	ð 	ð 	
Œ	�Š�Ô(¨,Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ ˜s‘^”^ð ,ð ,‰	ˆˆ6ØŒw×$Ò$ S¨!Ñ,Ô,ˆØ—’˜ Ñ&Ô&ˆØ�Š�f”lÑ#Ô#Ð#ØŒY×Ò˜vœ°uÐÑ=Ô=ð 	<ð 	<ØŒI�OŠO�GÔ,¨lÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<àŒ>Ð%Ø�OŠO˜FœNÑ+Ô+Ð+øàŒI× Ò  ¤¨C°Ñ8Ô8€EØ„I‡O‚O�E˜9Ñ%Ô%Ð%àð ØŒY×Ò˜|°DÐÑ9Ô9ð 	ð 	ðð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð
 ˆå�q”y—~’~ iÑ0Ô0¸'Ø !¤	§¢¨|Ñ <Ô <ð>ñ >ô >ð >s7   Ã/AEÅEÅEÇ&G>Ç>H	ÈH	ÊJÊJÊJc           	      ó†  — t          j        |j        |j        | |¦  «        }|j        }t          j        |j        |¦  «        }|j                             t          j        |j        |¦  «        ¦  «        5 \  }}|5  |j	         
                    |¦  «         ddd¦  «         n# 1 swxY w Y   |5  |j        }|j	                             |¦  «        }|j                             t          j        |j        |¦  «        d¬¦  «        5  t          j        |j        |¦  «        5 }	|                     |	j        ¦  «        }
|                     |
¦  «         |                     | j        |
¦  «        }|j	                             ||	j        |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |j        j                             |j        | |¦  «         |j                             |¦  «        S )z5
    Convert native list *val* to a list object.
    NTr:  )r   ÚListInstancer-   r%   r(  r   r¸   rí   r¿   r   r)  r�   Úlist_newr¾   Ú	for_rangeÚgetitemÚindexÚincref_valuer   r…   Úlist_setitemrE   rä   rD   rG   )r   r   r   Úlistr(   r6  Ú
has_parentrñ   rã   ÚlooprK  Úitemobjs               r   Úbox_listrr  D  sR  € õ
 Ô ¤	¨1¬9°c¸3Ñ?Ô?€DØ
Œ+€CÝ
Ô
# A¤I¨sÑ
3Ô
3€CØ	
Œ×	Ò	�7Ô.¨q¬y¸#Ñ>Ô>Ñ	?Ô	?ð &ÑCZÀJÐPYØð 	 ð 	 ð ŒG�NŠN˜3ÑÔÐð		 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ð 	&ð 	&à”YˆFØ”'×"Ò" 6Ñ*Ô*ˆCØ”×"Ò"¥7Ô#6°q´yÀ#Ñ#FÔ#FØ*.ð #ñ 0ô 0ð Cð CåÔ& q¤y°&Ñ9Ô9ð C¸TØŸ<š<¨¬
Ñ3Ô3�DØ×%Ò% dÑ+Ô+Ð+ØŸeše C¤I¨tÑ4Ô4�GØ”G×(Ò(¨¨d¬j¸'ÑBÔBÐBð	Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð CðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð ŒI�OŠO˜C Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð, „I„M×Ò˜œ C¨Ñ-Ô-Ð-ØŒ9�>Š>˜#ÑÔÐs¤   Á5G8Á;B"ÂG8Â"B&	Â&G8Â)B&	Â*G8Â/AG!ÄF/Ä A,F	ÆF/ÆFÆF/ÆFÆ F/Æ#G!Æ/F3Æ3G!Æ6F3Æ7G!ÇG8Ç!G%	Ç%G8Ç(G%	Ç)G8Ç8G<Ç?G<c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú_NumbaTypeHelperaÿ  A helper for acquiring `numba.typeof` for type checking.

    Usage
    -----

        # `c` is the boxing context.
        with _NumbaTypeHelper(c) as nth:
            # This contextmanager maintains the lifetime of the `numba.typeof`
            # function.
            the_numba_type = nth.typeof(some_object)
            # Do work on the type object
            do_checks(the_numba_type)
            # Cleanup
            c.pyapi.decref(the_numba_type)
        # At this point *nth* should not be used.
    c                 ó   — || _         d S r   )r   )Úselfr   s     r   Ú__init__z_NumbaTypeHelper.__init__w  s   € ØˆŒˆˆr   c                 ó
  — | j         }|j                             |j        j        d¦  «        }|j                             |¦  «        }|j                             |d¦  «        }|| _        |j         	                    |¦  «         | S )NÚnumbar   )
r   r-   Úinsert_const_stringr%   Úmoduler   Úimport_modulerŽ   Ú	typeof_fnrD   )rv  r   Ú
numba_nameÚ	numba_modr}  s        r   Ú	__enter__z_NumbaTypeHelper.__enter__z  sq   € ØŒFˆØ”Y×2Ò2°1´9Ô3CÀWÑMÔMˆ
Ø”G×)Ò)¨*Ñ5Ô5ˆ	Ø”G×1Ò1°)¸XÑFÔFˆ	Ø"ˆŒØ	Œ�Š�yÑ!Ô!Ð!Øˆr   c                 óR   — | j         }|j                             | j        ¦  «         d S r   )r   r   rD   r}  )rv  r  Úkwargsr   s       r   Ú__exit__z_NumbaTypeHelper.__exit__ƒ  s%   € ØŒFˆØ	Œ�Š�t”~Ñ&Ô&Ð&Ð&Ð&r   c                 óR   — | j         j                             | j        |g¦  «        }|S r   )r   r   r‰   r}  )rv  r(   r6  s      r   r   z_NumbaTypeHelper.typeof‡  s$   € ØŒfŒl×0Ò0°´À#ÀÑGÔGˆØˆ
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rw  r€  rƒ  r   © r   r   rt  rt  f  sZ   € € € € € ðð ð ð ð ðð ð ð'ð 'ð 'ðð ð ð ð r   rt  c                 óê  ‡‡‡— ˆˆˆfd„}t           j                             ‰j        ‰j        | |¦  «        \  }}‰j                             |d¬¦  «        5 \  }	}
|	5  ||_        t          j        |j	        d¦  «        }‰j         
                    ‰j                             d||¦  «        d¬¦  «        5  t          ‰¦  «        5 }|                     ‰j                             ||¦  «        ¦  «        }t!          j        ‰j        |¦  «        5 Š‰j                             |‰j        ¦  «        } ||||¦  «         ‰                     | j        |¦  «        }‰j         
                    |j        d¬¦  «        5  ‰j                             t           j        ‰¦  «         ‰                     ¦   «          ddd¦  «         n# 1 swxY w Y   |                     ‰j        |j        d¬¦  «         ddd¦  «         n# 1 swxY w Y   ‰j                             |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   | j        r||_        ‰j         
                    ‰j                             ‰j                             ‰¦  «        ¦  «        d¬¦  «        5  ‰j                              ||j!        ¦  «         ddd¦  «         n# 1 swxY w Y   | "                    d¦  «         ‰j                             |j        |¦  «         ddd¦  «         n# 1 swxY w Y   |
5  ‰j                             t           j        ‰¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ‰j         
                    ‰j                             ‰¦  «        ¦  «        5  ‰j        j#                             ‰j        | |j        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z9
    Construct a new native list from a Python list.
    c                 óð  •— |                       |¦  «        }‰j                             t          j        ‰j        |¦  «        d¬¦  «        5  ‰j                             t          j        ‰¦  «         ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰j                             d||¦  «        }‰j                             |d¬¦  «        5  ‰j                             t          j        ‰¦  «         ‰j	         
                    dd||¦  «         ‰j	                             |¦  «         ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ‰j	                             |¦  «         d S )NFr:  r   ri   z(can't unbox heterogeneous list: %S != %S)r   r%   r¾   r   r«   rE   rY  Údo_breakr&   r   rX  rD   )Únthrq  Úexpected_typobjÚtypobjÚtype_mismatchr   Úerrorptrrp  s        €€€r   Úcheck_element_typez2_python_list_to_native.<locals>.check_element_type�  sÊ  ø€ Ø—’˜GÑ$Ô$ˆàŒY×ÒÝ” ¤	¨6Ñ2Ô2Øð ñ ô ð 	ð 	ð ŒI�OŠO�GÔ,¨hÑ7Ô7Ð7Ø�MŠM‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð œ	×-Ò-¨d°F¸OÑLÔLˆàŒY×Ò˜}°UÐÑ;Ô;ð 	ð 	ØŒI�OŠO�GÔ,¨hÑ7Ô7Ð7ØŒG×ÒØ!Ø:Ø ñô ð ð
 ŒG�NŠN˜6Ñ"Ô"Ð"Ø�MŠM‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	
Œ�Š�vÑÔÐÐÐs%   Á:BÂBÂBÃA1EÅEÅETr:  r   ú>FN)r)  )$r   rg  Úallocate_exr-   r%   rí   r�   r   r#   r$   r¾   r&   rt  r   r   Úlist_getitemr   ri  rk  r   r…   r!   rE   rY  rŒ  Úsetitemr]   rD   Ú	reflectedr(  rÔ   rG   Úobject_set_private_dataÚmeminfoÚ	set_dirtyrä   )r   r(   r   r�   Úlistptrr‘  r’  rq   rn  Úif_okÚ	if_not_okr*   r�  rŽ  rq  r÷   rp  s     `  `          @r   Ú_python_list_to_nativerž  Œ  sñ  øøø€ ðð ð ð ð ð ð õ0 Ô#×/Ò/°´	¸1¼9ÀcÈ4ÑPÔP�H€BˆØ	
Œ×	Ò	˜2 dÐ	Ñ	+Ô	+ð "8Ñ/A°°yØð 	1ð 	1ØˆDŒIÝ”;˜tœy¨!Ñ,Ô,ˆDØ”×"Ò" 1¤9×#8Ò#8¸¸dÀDÑ#IÔ#IØ*.ð #ñ 0ô 0ð 4ð 4õ & aÑ(Ô(ð 4¨Cà&)§j¢j°´×1EÒ1EÀcÈ4Ñ1PÔ1PÑ&QÔ&Q�OÝ Ô*¨1¬9°dÑ;Ô;ð M¸tØ"#¤'×"6Ò"6°s¸D¼JÑ"GÔ"G˜Ø*Ð*¨3°¸ÑIÔIÐIð "#§¢¨¬°GÑ!<Ô!<˜ØœY×.Ò.¨v¬ÀuÐ.ÑMÔMð ,ð ,ØœIŸOšO­GÔ,<¸hÑGÔGÐGØ ŸMšM™OœO˜Oð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð Ÿš T¤Z°´Àe˜ÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð ”G—N’N ?Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð& Œ}ð "Ø!�”ð ”×"Ò" 1¤9§>¢>°!´)·.².ÀÑ2JÔ2JÑ#KÔ#KØ9>ð #ñ @ô @ð Cð Cà”×/Ò/°°T´\ÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð �NŠN˜5Ñ!Ô!Ð!ØŒI�OŠO˜DœJ¨Ñ0Ô0Ð0ð=	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð@ ð 	8ð 	8ØŒI�OŠO�GÔ,¨hÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ðC"8ð "8ð "8ñ "8ô "8ð "8ð "8ð "8ð "8ð "8ð "8øøøð "8ð "8ð "8ð "8ðJ 
Œ×	Ò	˜1œ9Ÿ>š>¨(Ñ3Ô3Ñ	4Ô	4ð 9ð 9Ø	Œ	Œ×Ò˜QœY¨¨T¬ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s$  ÁM2ÁALÂ4H>ÃA	H'	ÄA*G6Å7:F=Æ1G6Æ=GÇG6ÇGÇ%G6Ç*H'	Ç6G:Ç:H'	Ç=G:Ç>H'	ÈH>È'H+È+H>È.H+È/H>È2LÈ>IÉLÉIÉALÊ#!KËLËKËLËKË8LÌM2ÌL 	Ì M2Ì#L 	Ì$M2Ì)&MÍM2ÍM	ÍM2Í"M	Í#M2Í2M6Í9M6Î/,O(Ï(O,Ï/O,c           
      ó–  ‡‡— ‰j                              ‰¦  «        }t          j        ‰j        t          j        ¦  «        }t          j        ‰j        ‰j                             | ¦  «        ¦  «        }‰j          	                    ‰¦  «        }‰j         
                    t          j        ‰j        |¦  «        ¦  «        5 \  }}|5  t          j                             ‰j        ‰j        | |¦  «        }	||	_        | j        r‰|	_        ‰j                             |	j        |¦  «         ddd¦  «         n# 1 swxY w Y   |5  t)          | ‰‰|||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ˆˆfd„}
t+          ‰j                             |¦  «        ‰j                             |¦  «        |
¬¦  «        S )z�
    Convert list *obj* to a native list.

    If list was previously unboxed, we reuse the existing native list
    to ensure consistency.
    Nc                  ó<   •— ‰ j                              ‰¦  «         d S r   ©r   Úobject_reset_private_data©r   r(   s   €€r   r¦   zunbox_list.<locals>.cleanupð  ó   ø€ à	Œ×)Ò)¨#Ñ.Ô.Ð.Ð.Ð.r   rø   )r   Ú	list_sizer   r¸   r%   rú   r?   r-   r~   Úobject_get_private_datarí   r¿   r   rg  Úfrom_meminfor�   r—  r(  rE   r]   rž  r	   rG   )r   r(   r   r�   r‘  r›  rž   Úhas_meminforñ   rn  r¦   s    ``        r   Ú
unbox_listr©  Ò  s†  øø€ ð Œ7×Ò˜SÑ!Ô!€DåÔ(¨¬µGÔ4EÑFÔF€HÝÔ! !¤)¨Q¬Y×-EÒ-EÀcÑ-JÔ-JÑKÔK€Gð Œ'×
)Ò
)¨#Ñ
.Ô
.€Cà	
Œ×	Ò	�7Ô.¨q¬y¸#Ñ>Ô>Ñ	?Ô	?ð IÙ#ˆK˜àð 	1ð 	1åÔ'×4Ò4°Q´YÀÄ	È3ÐPSÑTÔTˆDØˆDŒIØŒ}ð "Ø!�”ØŒI�OŠO˜DœJ¨Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð ð 	Ið 	IÝ" 3¨¨Q°°g¸xÑHÔHÐHð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	IðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ið/ð /ð /ð /ð /ð /õ �q”y—~’~ gÑ.Ô.Ø !¤	§¢¨xÑ 8Ô 8Ø&ð(ñ (ô (ð (s[   Â?E8ÃA"D3Ä'E8Ä3D7	Ä7E8Ä:D7	Ä;E8Å E!ÅE8Å!E%	Å%E8Å(E%	Å)E8Å8E<Å?E<c           	      ó^  — | j         sdS | j        j         r$d                     | ¦  «        }t          |¦  «        ‚t	          j        |j        |j        | |¦  «        }|j                             |j	        d¬¦  «        5  |j
        }|j                             |¦  «        }|j        }|j                             ||¦  «        }|j                             d|t!          j        |j        d¦  «        ¦  «        }	|j                             |	¦  «        5 \  }
}|
5  t)          j        |j        |¦  «        5 }|                     |j        ¦  «        }|                     |¦  «         |                     | j        |¦  «        }|j                             ||j        |¦  «         ddd¦  «         n# 1 swxY w Y   t)          j        |j        |¦  «        5 }|j                             ||j        ¦  «        }|                     |¦  «        }|                     |¦  «         |                     | j        |¦  «        }|j                             ||¦  «         |j                             |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |5  |j                             |||d¦  «         t)          j        |j        |¦  «        5 }|                     |j        ¦  «        }|                     |¦  «         |                     | j        |¦  «        }|j                             ||j        |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |                     d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zD
    Reflect the native list's contents into the Python object.
    Nz2cannot reflect element of reflected container: {}
Fr:  z>=r   ) r—  r…   ÚformatÚ	TypeErrorr   rg  r-   r%   r¾   Údirtyr(  r   r¥  r�   Úsubr&   r   r#   r$   rí   r   ri  rj  rk  rl  r   rm  rÀ   Úlist_appendrD   Úlist_setslicerš  )r   r   r   r‘   rn  r(   r�   Únew_sizeÚdiffÚ	diff_gt_0Úif_growÚ	if_shrinkrp  rK  rq  rÉ   s                   r   Úreflect_listr¶  ù  s;  € ð
 Œ=ð ØˆØ
„yÔð ØC×JÒJÈ3ÑOÔOˆÝ˜‰nŒnÐåÔ ¤	¨1¬9°c¸3Ñ?Ô?€DØ	
Œ×	Ò	˜4œ:¨eÐ	Ñ	4Ô	4ð $ð $ØŒkˆØŒw× Ò  Ñ%Ô%ˆØ”9ˆØŒy�}Š}˜X tÑ,Ô,ˆØ”I×)Ò)¨$°Ý*,¬+°d´iÀÑ*CÔ*CñEô Eˆ	àŒY×Ò˜yÑ)Ô)ð 	CÑ-A¨g°yàð ,ð ,åÔ& q¤y°$Ñ7Ô7ð C¸4ØŸ<š<¨¬
Ñ3Ô3�DØ×%Ò% dÑ+Ô+Ð+ØŸeše C¤I¨tÑ4Ô4�GØ”G×(Ò(¨¨d¬j¸'ÑBÔBÐBð	Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cõ Ô& q¤y°$Ñ7Ô7ð ,¸4Øœ)Ÿ-š-¨¨d¬jÑ9Ô9�CØŸ<š<¨Ñ,Ô,�DØ×%Ò% dÑ+Ô+Ð+ØŸeše C¤I¨tÑ4Ô4�GØ”G×'Ò'¨¨WÑ5Ô5Ð5Ø”G—N’N 7Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð  ð Cð Cà”×%Ò% c¨8°T¸4Ñ@Ô@Ð@åÔ& q¤y°(Ñ;Ô;ð C¸tØŸ<š<¨¬
Ñ3Ô3�DØ×%Ò% dÑ+Ô+Ð+ØŸeše C¤I¨tÑ4Ô4�GØ”G×(Ò(¨¨d¬j¸'ÑBÔBÐBð	Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð	Cð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð%	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð: 	�Š�uÑÔÐðI$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $sî   Á<BN"ÄM5ÄJ
Ä/A,F'	ÆJ
Æ'F+Æ+J
Æ.F+Æ/J
ÇBI3	É'J
É3I7É7J
É:I7É;J
É>M5Ê
JÊM5ÊJÊM5Ê8MËA,M	Ì;MÍMÍMÍMÍMÍM5ÍM"Í"M5Í%M"Í&M5Í)N"Í5M9	Í9N"Í<M9	Í=N"Î"N&Î)N&c                 ó 	  — t           j                             |j        |j        | |¦  «        \  }}|j                             |d¬¦  «        5 \  }}	|5  t          j        |j        t          j	        |j
        j        d¦  «        ¦  «        }
|j
                             |¦  «        5 }|j        }|j
                             |¦  «        }|j                             |
¦  «        }|j                             t          j        |j        |¦  «        d¬¦  «        5 \  }}|5  |j                             ||
¦  «         ddd¦  «         n# 1 swxY w Y   |5  |j                             d||¦  «        }|j                             |d¬¦  «        5  |j                             t          j        |¦  «         |j
                             dd¦  «         |                     ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |                     | j        |¦  «        }|j                             |j        d¬¦  «        5  |j                             t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |j
        |j        d¬¦  «         ddd¦  «         n# 1 swxY w Y   | j        r||_        |j                             |j                             |j                             |¦  «        ¦  «        d¬¦  «        5  |j
                             ||j        ¦  «         ddd¦  «         n# 1 swxY w Y   |                      d¦  «         |j                             |j        |¦  «         ddd¦  «         n# 1 swxY w Y   |	5  |j                             t          j        |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |j                             |j                             |¦  «        ¦  «        5  |j        j!         "                    |j        | |j        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z7
    Construct a new native set from a Python set.
    Tr:  NFr   ri   zcan't unbox heterogeneous set)Ú	do_resize)#r   ÚSetInstancer”  r-   r%   rí   r   r¸   r   r#   r   ÚpyobjÚset_iterater]   Úget_typerG   r«   rE   r&   r¾   rY  rn   rŒ  r   r…   r!   Ú	add_pyapir—  r(  rÔ   r˜  r™  rš  rä   rD   )r   r(   r   r�   Úsetptrr‘  rq   Úinstrœ  r�  Ú	typobjptrrp  rq  r�  rŽ  Úif_firstÚif_not_firstr�  r÷   s                      r   Ú_python_set_to_nativerÃ  ,  sè  € õ
 Ô!×-Ò-¨a¬i¸¼ÀCÈÑNÔN�H€BˆØ	
Œ×	Ò	˜2 dÐ	Ñ	+Ô	+ð .8Ñ/A°°yØð *	0ð *	0åÔ1°!´)Ý24´+¸a¼g¼mÈTÑ2RÔ2RñTô TˆIð ”×$Ò$ SÑ)Ô)ð G¨TØœ*�àœ×)Ò)¨'Ñ2Ô2�Ø"#¤)§.¢.°Ñ";Ô";�à”Y×&Ò&Ý”O A¤I¨Ñ?Ô?Ø ð 'ñ "ô "ð ,á%= h°Ø!ð ;ð ;àœ	Ÿš¨°	Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð &ð ,ð ,à()¬	×(=Ò(=¸dÀFØ>Mñ)Oô )O˜àœY×.Ò.¨}ÀUÐ.ÑKÔKð ,ð ,ØœIŸOšO­GÔ,<¸hÑGÔGÐGØœG×2Ò2Ð3DØ3RñTô Tð Tà ŸMšM™OœO˜Oð	,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð	,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð& Ÿš ¤¨GÑ4Ô4�Ø”Y×&Ò& v¤¸uÐ&ÑEÔEð @ð @Ø”I—O’O¥GÔ$4°hÑ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @à—’˜qœw¨¬À�ÑFÔFÐFð9Gð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð< Œ}ð "Ø!�”à”×"Ò" 1¤9§>¢>°!´)·.².ÀÑ2JÔ2JÑ#KÔ#KØ*/ð #ñ 1ô 1ð Cð Cà”×/Ò/°°T´\ÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð �NŠN˜5Ñ!Ô!Ð!ØŒI�OŠO˜DœJ¨Ñ/Ô/Ð/ðU*	0ð *	0ð *	0ñ *	0ô *	0ð *	0ð *	0ð *	0ð *	0ð *	0ð *	0øøøð *	0ð *	0ð *	0ð *	0ðX ð 	8ð 	8ØŒI�OŠO�GÔ,¨hÑ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð[.8ð .8ð .8ñ .8ô .8ð .8ð .8ð .8ð .8ð .8ð .8øøøð .8ð .8ð .8ð .8ðb 
Œ×	Ò	˜1œ9Ÿ>š>¨(Ñ3Ô3Ñ	4Ô	4ð 9ð 9Ø	Œ	Œ×Ò˜QœY¨¨T¬ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9sl  ÁO=ÁAN'Â$A0K	ÄH	ÄEÄ6H	ÅEÅH	Å	EÅ
H	Å9H ÆAG)ÇH Ç)G-Ç-H Ç0G-Ç1H Ç4H	È HÈH	ÈHÈH	ÈK	ÈHÈK	ÈHÈ?K	É&J	ÊK	ÊJÊK	ÊJÊ%K	Ê=N'Ë	KËN'ËKËAN'Ì.!MÍN'ÍMÍN'Í"MÍ#8N'ÎO=Î'N+	Î+O=Î.N+	Î/O=Î4&O&ÏO=Ï&O*	Ï*O=Ï-O*	Ï.O=Ï=PÐPÐ:,Q3Ñ3Q7Ñ:Q7c           
      óˆ  ‡‡— ‰j                              ‰¦  «        }t          j        ‰j        t          j        ¦  «        }t          j        ‰j        ‰j                             | ¦  «        ¦  «        }‰j          	                    ‰¦  «        }‰j         
                    t          j        ‰j        |¦  «        ¦  «        5 \  }}|5  t          j                             ‰j        ‰j        | |¦  «        }	| j        r‰|	_        ‰j                             |	j        |¦  «         ddd¦  «         n# 1 swxY w Y   |5  t'          | ‰‰|||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ˆˆfd„}
t)          ‰j                             |¦  «        ‰j                             |¦  «        |
¬¦  «        S )zŒ
    Convert set *obj* to a native set.

    If set was previously unboxed, we reuse the existing native set
    to ensure consistency.
    Nc                  ó<   •— ‰ j                              ‰¦  «         d S r   r¡  r£  s   €€r   r¦   zunbox_set.<locals>.cleanup„  r¤  r   rø   )r   Úset_sizer   r¸   r%   rú   r?   r-   r~   r¦  rí   r¿   r   r¹  r§  r—  r(  rE   r]   rÃ  r	   rG   )r   r(   r   r�   r‘  r¾  rž   r¨  rñ   r¿  r¦   s    ``        r   Ú	unbox_setrÇ  g  s~  øø€ ð Œ7×Ò˜CÑ Ô €DåÔ(¨¬µGÔ4EÑFÔF€HÝÔ  ¤¨A¬I×,DÒ,DÀSÑ,IÔ,IÑJÔJ€Fð Œ'×
)Ò
)¨#Ñ
.Ô
.€Cà	
Œ×	Ò	�7Ô.¨q¬y¸#Ñ>Ô>Ñ	?Ô	?ð GÙ#ˆK˜àð 	0ð 	0åÔ%×2Ò2°1´9¸a¼iÈÈcÑRÔRˆDØŒ}ð "Ø!�”ØŒI�OŠO˜DœJ¨Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð ð 	Gð 	GÝ! # s¨A¨t°V¸XÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	GðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð/ð /ð /ð /ð /ð /õ �q”y—~’~ fÑ-Ô-Ø !¤	§¢¨xÑ 8Ô 8Ø&ð(ñ (ô (ð (s[   Â?E1ÃAD,Ä E1Ä,D0	Ä0E1Ä3D0	Ä4E1Ä9EÅE1ÅE	ÅE1Å!E	Å"E1Å1E5Å8E5c           	      óP  — |j         }|j                             |¦  «        }t          j        |j        |¦  «        }|j                             |d¬¦  «        5  t          j        |j        t          j	        |j
        d¦  «        ¦  «        }|                     ¦   «         5 }|j                             |¦  «        }|j        j        }	|j        j                             |j        | j        |	¦  «         |                     | j        |	¦  «        }
|j                             |||
¦  «         |j                             |t          j	        |j
        d¦  «        ¦  «        }|j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ||fS )z9
    Create a Python list from a native set's items.
    Tr:  r   r¯   N)Úusedr   rh  r   r¿   r%   r¾   r¸   r   r#   r$   Ú_iteraterG   ÚentryÚkeyr-   rä   r)  r…   r   rm  rÀ   rE   )r   Úpayloadr   rã   r   rq   rk  rp  rJ  rK  rq  s              r   Ú_native_set_to_python_listrÎ  �  sá  € ð Œ\€FØŒg×Ò˜vÑ&Ô&€GÝ	Ô	˜QœY¨Ñ	0Ô	0€BØ	
Œ×	Ò	˜2 dÐ	Ñ	+Ô	+ð 
&ð 
&ÝÔ)¨!¬)Ý*,¬+°f´kÀ1Ñ*EÔ*EñGô Gˆà×ÒÑÔð 	& 4Ø”	—’˜uÑ%Ô%ˆAØ”:”>ˆDØŒIŒM× Ò  ¤¨C¬I°tÑ<Ô<Ð<Ø—e’e˜CœI tÑ,Ô,ˆGØŒG× Ò  ¨!¨WÑ5Ô5Ð5Ø”	—’˜a¥¤¨Q¬V°QÑ!7Ô!7Ñ8Ô8ˆAØŒI�OŠO˜A˜uÑ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð
&ð 
&ð 
&ñ 
&ô 
&ð 
&ð 
&ð 
&ð 
&ð 
&ð 
&øøøð 
&ð 
&ð 
&ð 
&ð ˆwˆ;Ðs8   ÁAFÂCFÅ6FÆF	ÆFÆ	F	Æ
FÆFÆ Fc                 óx  — t          j        |j        |j        | |¦  «        }|j        }t          j        |j        |¦  «        }|j                             t          j        |j        |¦  «        ¦  «        5 \  }}|5  |j	         
                    |¦  «         ddd¦  «         n# 1 swxY w Y   |5  |j        }t          | ||¦  «        \  }	}
|j                             |	d¬¦  «        5  |j	                             |
¦  «        }|j	                             |
¦  «         |j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |j        j                             |j        | |¦  «         |j                             |¦  «        S )z3
    Convert native set *val* to a set object.
    NTr:  )r   r¹  r-   r%   r(  r   r¸   rí   r¿   r   r)  rÍ  rÎ  r¾   Úset_newrD   rE   rä   rG   )r   r   r   r¿  r(   r6  ro  rñ   rÍ  rq   r   s              r   Úbox_setrÑ  £  s�  € õ
 Ô˜aœi¨¬°C¸Ñ=Ô=€DØ
Œ+€CÝ
Ô
# A¤I¨sÑ
3Ô
3€Cà	
Œ×	Ò	�7Ô.¨q¬y¸#Ñ>Ô>Ñ	?Ô	?ð *ÑCZÀJÐPYØð 	 ð 	 ð ŒG�NŠN˜3ÑÔÐð		 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð ð 	*ð 	*à”lˆGÝ4°S¸'À1ÑEÔE‰KˆB�Ø”×"Ò" 2¨dÐ"Ñ3Ô3ð *ð *Ø”g—o’o gÑ.Ô.�Ø”—’˜wÑ'Ô'Ð'Ø”	—’  SÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð		*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð" „I„M×Ò˜œ C¨Ñ-Ô-Ð-ØŒ9�>Š>˜#ÑÔÐs   Á5E1Á;B"ÂE1Â"B&	Â&E1Â)B&	Â*E1Â/8EÃ'AEÄ7EÅEÅEÅ
EÅEÅE1ÅE	ÅE1Å!E	Å"E1Å1E5Å8E5c                 óB  — | j         sdS t          j        |j        |j        | |¦  «        }|j        }|j                             |j        d¬¦  «        5  |j        }|j	         
                    |¦  «         t          | ||¦  «        \  }}|j                             |d¬¦  «        5  |j	                             ||¦  «         |j	                             |¦  «         ddd¦  «         n# 1 swxY w Y   |                     d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zC
    Reflect the native set's contents into the Python object.
    NFr:  T)r—  r   r¹  r-   r%   rÍ  r¾   r­  r(  r   Ú	set_clearrÎ  Ú
set_updaterD   rš  )r   r   r   r¿  rÍ  r(   rq   r   s           r   Úreflect_setrÕ  À  s™  € ð
 Œ=ð ØˆÝÔ˜aœi¨¬°C¸Ñ=Ô=€DØŒl€Gà	
Œ×	Ò	˜7œ=°Ð	Ñ	7Ô	7ð ð ØŒkˆà	Œ×Ò˜#ÑÔÐõ 1°°g¸qÑAÔA‰ˆˆGØŒY×Ò˜r¨$ÐÑ/Ô/ð 	$ð 	$ØŒG×Ò˜s GÑ,Ô,Ð,ØŒG�NŠN˜7Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð
 	�Š�uÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s7   ÁADÂ%6C'ÃDÃ'C+	Ã+DÃ.C+	Ã/DÄDÄDc                 óN   — |j                              || |j        j        ¦  «        S r   )r   Úfrom_native_generatorrœ   Úenv_ptrr   s      r   Úbox_generatorrÙ  Ý  s!   € àŒ7×(Ò(¨¨c°1´=Ô3HÑIÔIÐIr   c                 ó8   — |j                              || ¦  «        S r   )r   Úto_native_generatorr  s      r   Úunbox_generatorrÜ  á  s   € àŒ7×&Ò& s¨CÑ0Ô0Ð0r   c                 ó˜   — t          j        | j        ¦  «        }|j                             |j                             |¦  «        ¦  «        S r   ©r   r$  r…   r   r†   r‡   ©r   r   r   r,  s       r   Ú	box_dtyperà  æ  ó:   € åÔ% c¤iÑ0Ô0€HØŒ7×Ò˜qœw×7Ò7¸ÑAÔAÑBÔBÐBr   c                 óN   — t          |j                             ¦   «         ¦  «        S r   ry   r   s      r   Úunbox_dtyperã  ë  ó   € å�q”y×0Ò0Ñ2Ô2Ñ3Ô3Ð3r   c                 ó˜   — t          j        | j        ¦  «        }|j                             |j                             |¦  «        ¦  «        S r   rÞ  rß  s       r   Úbox_number_classræ  ð  rá  r   c                 óN   — t          |j                             ¦   «         ¦  «        S r   ry   r   s      r   Úunbox_number_classrè  õ  rä  r   c                 ó   — |S r   r‰  r   s      r   Úbox_pyobjectrê  ú  s	   € ð €Jr   c                 ó    — t          |¦  «        S r   ©r	   r  s      r   Úunbox_pyobjectrí  ÿ  ó   € õ �sÑÔÐr   c                 ó  — | j         €t          | ¦  «        ‚|j                             | ¦  «        }t	          j        |j        t          j        |d ¦  «        d¬¦  «        }|j	         
                    | j         ¦  «        }|j	                             |¦  «        }t	          j        |j        t	          j        |j        |¦  «        ¦  «        5  |j	                             ||f¦  «        }|j	                             |¦  «         t	          j        |j        t	          j        |j        |¦  «        ¦  «        5  |j	                             |¦  «        }|j	                             |¦  «         |j                             |j                             ||¦  «        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t'          |j                             |¦  «        |j	                             ¦   «         ¬¦  «        S )NÚfnptr)Únamer    )Úget_pointerÚNotImplementedErrorr-   Úget_function_pointer_typer   r¸   r%   r   r#   r   r‡   r†   rÐ   r¿   r‰   rD   Úlong_as_voidptrrE   r™   r	   rG   r'   )	r   r(   r   ÚptrtyrÝ   Úserrò  Úintobjrž   s	            r   Úunbox_funcptrrù    s[  € à
„ÐÝ! #Ñ&Ô&Ð&ð ŒI×/Ò/°Ñ4Ô4€EÝ
Ô
# A¤IÝ$&¤K°°tÑ$<Ô$<Ø)0ð2ñ 2ô 2€Cð Œ'×
"Ò
" 3¤?Ñ
3Ô
3€CØ”'×%Ò% cÑ*Ô*€KÝ	Ô	˜1œ9Ý"Ô.¨q¬y¸+ÑFÔFñ
Hô 
Hð @ð @à”×.Ò.¨{¸S¸FÑCÔCˆØ	Œ�Š�{Ñ#Ô#Ð#ÝÔ˜qœyÝ&Ô2°1´9¸fÑEÔEñGô Gð 	@ð 	@à”'×)Ò)¨&Ñ1Ô1ˆCØŒG�NŠN˜6Ñ"Ô"Ð"ØŒI�OŠO˜AœI×-Ò-¨c°5Ñ9Ô9¸3Ñ?Ô?Ð?ð		@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð	@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ �q”y—~’~ cÑ*Ô*°Q´W×5HÒ5HÑ5JÔ5JÐKÑKÔKÐKs8   ÃA)G Ä4A)F)ÆG Æ)F-	Æ-G Æ0F-	Æ1G Ç GÇGc                 ó¢   — |j                              |                      ¦   «         |j                             |dg¦  «        |j        ¬¦  «        }|S )Nr   )rœ   )r   Úfrom_native_valueÚgetr%   rG  rœ   )r   r   r   Úouts       r   Úbox_deferredrþ    sK   € à
Œ'×
#Ò
# C§G¢G¡I¤IØ$%¤I×$;Ò$;¸CÀ!ÀÑ$EÔ$EØ01´ð $ñ ?ô ?€Cð €Jr   c                 ó  — |j                              |                      ¦   «         |¦  «        }|j        j        |          }|                     |j        |                     ¦   «         |j        ¦  «        }t          ||j
        |j        ¬¦  «        S )Nrø   )r   Úto_native_valuerü  r-   Údata_model_managerÚsetr%   Úmake_uninitializedr]   r	   r!   r¦   )r   r(   r   Únative_valueÚmodelr6  s         r   Úunbox_deferredr  $  sz   € à”7×*Ò*¨3¯7ª7©9¬9°cÑ:Ô:€LØŒIÔ(¨Ô-€EØ
�)Š)�A”I˜u×7Ò7Ñ9Ô9¸<Ô;MÑ
NÔ
N€CÝ�s \Ô%:Ø+Ô3ð5ñ 5ô 5ð 5r   c                 ó    — t          |¦  «        S r   rì  r  s      r   Úunbox_dispatcherr  -  rî  r   c                 ó:   — |j                              |¦  «         |S r   )r   r)  r   s      r   rê  rê  3  s   € à„G‡N‚N�3ÑÔÐØ€Jr   c                 óÈ   — |j                              dd                     | ¦  «        ¦  «         |j                             | ¦  «        }t          |t          j        ¬¦  «        S )Nri   zcan't unbox {!r} typer    )r   rn   r«  r-   Úget_constant_nullr	   r   rY  )r   r(   r   r6  s       r   Úunbox_unsupportedr  9  s^   € Ø„G×ÒÐ,Ø2×9Ò9¸#Ñ>Ô>ñ@ô @ð @à
Œ)×
%Ò
% cÑ
*Ô
*€CÝ�s¥WÔ%5Ð6Ñ6Ô6Ð6r   c                 óz   — d| ›d�}|j                              d|¦  «         |j                              ¦   «         }|S )Nzcannot convert native z to Python objectri   )r   rn   Úget_null_object)r   r   r   r‘   r6  s        r   Úbox_unsupportedr  @  sA   € € Ø9<¸¸Ð
>€CØ„G×ÒÐ,¨cÑ2Ô2Ð2Ø
Œ'×
!Ò
!Ñ
#Ô
#€CØ€Jr   c                 ót   — | j         }|j                             |j                             |¦  «        ¦  «        S r   )r  r   r†   r‡   )r   r   r   Úretvals       r   Úbox_literalr  G  s2   € ð Ô€FàŒ7×Ò˜qœw×7Ò7¸Ñ?Ô?Ñ@Ô@Ð@r   c                 ó6   — |j                              |¦  «        S r   )r   Únrt_meminfo_as_pyobjectr   s      r   Úbox_meminfo_pointerr  P  s   € àŒ7×*Ò*¨3Ñ/Ô/Ð/r   c                 óŒ   — |j                              |¦  «        }t          j        |j        |¦  «        }t          ||¬¦  «        S r=   )r   Únrt_meminfo_from_pyobjectr   r«   r%   r	   )r   r(   r   r6  Úerroreds        r   Úunbox_meminfo_pointerr  U  s=   € à
Œ'×
+Ò
+¨CÑ
0Ô
0€CÝŒo˜aœi¨Ñ-Ô-€GÝ�s WÐ-Ñ-Ô-Ð-r   c                 óf   — t          |j                             ¦   «         t          j        ¬¦  «        S r=   )r	   r-   rz   r   rú   r   s      r   Úunbox_typerefr  [  s&   € å�q”y×0Ò0Ñ2Ô2½WÔ=NÐOÑOÔOÐOr   c                 ó$   — t          | ||¦  «        S r   )r  r   s      r   Úbox_LiteralStrKeyDictr  `  s   € å˜3  QÑ'Ô'Ð'r   c           
      óx  ‡‡	‡
‡‡‡‡‡‡‡‡— t          j        ‰j        t           j        ¦  «        Šg Šˆˆfd„Š	ˆˆ	ˆfd„Št	          ¦   «         5 Šˆˆfd„Š t          j        | ¦  «        ‰j        ‰j        ¦  «        Š|‰_         ‰|d¦  «        Št          j        ‰j        ‰‰¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y    ‰‰d¦  «        }t          j        ‰j        ‰|¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y   t          ‰d‰ 
                    t          j        |¦  «        j        ¦  «          ‰‰d¦  «        }t          j        ‰j        ‰|¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y    ‰|d¦  «        }t          j        ‰j        ‰|¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y   t          ‰d‰ 
                    t          j        |¦  «        j        ¦  «         ‰j                             ‰j        j        d¦  «        }‰j                             |¦  «        }‰                     |¦  «         t          j        ‰j        ‰|¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y    ‰|d	¦  «        Š
t          j        ‰j        ‰‰
¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y    ‰|d
¦  «        Št          j        ‰j        ‰‰¦  «        5   ‰¦   «          ddd¦  «         n# 1 swxY w Y   ˆˆ
ˆˆˆˆˆˆˆf	d„} |d¦  «          |d¦  «          |d¦  «          ‰	¦   «          ddd¦  «         n# 1 swxY w Y   t'          ‰                     ¦   «         ‰j                             ‰¦  «        ¬¦  «        S )ar  
    The bit_generator instance has a `.ctypes` attr which is a namedtuple
    with the following members (types):
    * state_address (Python int)
    * state (ctypes.c_void_p)
    * next_uint64 (ctypes.CFunctionType instance)
    * next_uint32 (ctypes.CFunctionType instance)
    * next_double (ctypes.CFunctionType instance)
    * bit_generator (ctypes.c_void_p)
    c                  óF   •— ‰D ]} ‰j                              | ¦  «         Œd S r   )r   rD   )Ú_refr   Ú
extra_refss    €€r   Úclear_extra_refsz9unbox_numpy_random_bitgenerator.<locals>.clear_extra_refsv  s3   ø€ Øð 	!ð 	!ˆDØŒG�NŠN˜4Ñ Ô Ð Ð ð	!ð 	!r   c                  óf   •— ‰ j                              t          j        ‰¦  «          ‰¦   «          d S r   )r%   rE   r   rY  )r   r"  r_  s   €€€r   Úhandle_failurez7unbox_numpy_random_bitgenerator.<locals>.handle_failurez  s1   ø€ Ø	Œ	�Š�Ô(¨,Ñ7Ô7Ð7ØÐÑÔÐÐÐr   c                 óh   •— ‰j                              | |¦  «        }‰                     |¦  «         |S r   )r   rŽ   r[  )r(   ÚattrÚattr_objr   r!  s      €€r   Úobject_getattr_safelyz>unbox_numpy_random_bitgenerator.<locals>.object_getattr_safely€  s3   ø€ Ø”w×4Ò4°S¸$Ñ?Ô?ˆHØ×Ò˜hÑ'Ô'Ð'ØˆOr   ÚctypesNÚstate_addressÚstater]   r.   Úc_void_pc                 ó  •	— ‰j                              ‰| ¦  «        }‰	                     |¦  «         t          j        ‰j        ‰|¦  «        5   ‰
¦   «          d d d ¦  «         n# 1 swxY w Y   ‰j                              |‰g¦  «        }t          j        ‰j        ‰|¦  «        5   ‰
¦   «          d d d ¦  «         n# 1 swxY w Y   ‰	                     |¦  «         ‰j                              ‰|¦  «        }‰	                     |¦  «          ‰|d¦  «        }t          j        ‰j        ‰|¦  «        5   ‰
¦   «          d d d ¦  «         n# 1 swxY w Y   t          ‰d| › �‰ 	                    t          j        |¦  «        j        ¦  «         d S )Nr]   Úfnptr_)r   rŽ   r[  r   Úearly_exit_if_nullr%   Ú
tuple_packr  Úsetattrr   r   r   r]   )rñ  Úinterface_next_fnr  Úinterface_next_fn_castedÚinterface_next_fn_casted_valuer   Úct_castÚct_voidptr_tyÚctypes_bindingr!  r$  r(  ÚstackÚ
struct_ptrs        €€€€€€€€€r   Úwire_in_fnptrsz7unbox_numpy_random_bitgenerator.<locals>.wire_in_fnptrs¹  sd  ø€ à !¤× =Ò =Ø ñ!&ô !&Ðð ×ÒÐ/Ñ0Ô0Ð0ÝÔ+¨A¬I°uÐ>OÑPÔPð !ð !Ø�Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð
 ”7×%Ò%Ð'8¸-Ð&HÑIÔIˆDÝÔ+¨A¬I°u¸dÑCÔCð !ð !Ø�Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !à×Ò˜dÑ#Ô#Ð#ð ()¤w§|¢|°G¸TÑ'BÔ'BÐ$Ø×ÒÐ6Ñ7Ô7Ð7ð .CÐ-BØ(¨'ñ.3ô .3Ð*åÔ+¨A¬I°uÐ>\Ñ]Ô]ð !ð !Ø�Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ �J ¨  Ø—G’G�EœKÐ)GÑHÔHÔNñPô Pð Pð Pð Ps6   ÁA$Á$A(Á+A(Â&B=Â=CÃCÄ4EÅEÅEÚnext_doubleÚnext_uint64Únext_uint32r    )r   r¸   r%   rú   r   Úcreate_struct_proxyr-   r(  r/  r1  r   r   r   r]   rz  r{  r   r|  r[  r	   ro   rG   )r   r(   r   Úinterface_state_addressÚinterface_stateÚinterface_state_valueÚctypes_nameÚctypes_moduler:  r"  r5  r6  r7  r!  r$  r_  r(  r8  r9  s     `      @@@@@@@@@@r   Úunbox_numpy_random_bitgeneratorrD  f  sl  øøøøøøøøøøø€ õ Ô,¨Q¬Y½Ô8IÑJÔJ€LØ€Jð!ð !ð !ð !ð !ð !ðð ð ð ð ð ð õ 
‰Œð _˜ð	ð 	ð 	ð 	ð 	ð 	ð
 6•WÔ0°Ñ5Ô5°a´iÀÄÑKÔKˆ
Øˆ
Ôð /Ð.¨s°HÑ=Ô=ˆÝÔ'¨¬	°5¸.ÑIÔIð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð #8Ð"7Ø˜Oñ#-ô #-ÐåÔ'¨¬	°5Ð:QÑRÔRð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	�
˜OØ—’�œÐ%<Ñ=Ô=ÔCñ	Eô 	Eð 	Eð 0Ð/°ÀÑHÔHˆÝÔ'¨¬	°5¸/ÑJÔJð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð !6Ð 5Ø˜Wñ!&ô !&ÐåÔ'¨¬	°5Ð:OÑPÔPð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åØØØ�GŠGÝ”Ø%ñ'ô 'ä',ñ	.ô 	.ð 	.ð ”i×3Ò3°A´IÔ4DÀhÑOÔOˆØœ×-Ò-¨kÑ:Ô:ˆØ×Ò˜-Ñ(Ô(Ð(ÝÔ'¨¬	°5¸-ÑHÔHð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð (Ð'¨°vÑ>Ô>ˆÝÔ'¨¬	°5¸'ÑBÔBð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð .Ð-¨m¸ZÑHÔHˆÝÔ'¨¬	°5¸-ÑHÔHð 	ð 	ØˆNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð@ 	ˆ�}Ñ%Ô%Ð%Øˆ�}Ñ%Ô%Ð%Øˆ�}Ñ%Ô%Ð%àÐÑÔÐð_ð _ð _ñ _ô _ð _ð _ð _ð _ð _ð _øøøð _ð _ð _ð _õB �z×+Ò+Ñ-Ô-¸¼	¿ºÀ|Ñ8TÔ8TÐUÑUÔUÐUs  ÁAM6Â*CÂ5M6ÃC	ÃM6ÃC	Ã	*M6Ã3D
Ã>M6Ä
D	ÄM6ÄD	ÄAM6Å0FÅ;M6ÆF	ÆM6ÆF	Æ*M6Æ9GÇM6ÇG	ÇM6ÇG	ÇB&M6É>JÊ	M6ÊJ	ÊM6ÊJ	Ê*M6ËKËM6ËK"	Ë"M6Ë%K"	Ë&*M6ÌL'ÌM6Ì'L+	Ì+M6Ì.L+	Ì/;M6Í6M:Í=M:Úbit_generatorc                 ó:  — t          j        |j        t           j        ¦  «        }t	          ¦   «         5 } t          j        | ¦  «        |j        |j        ¦  «        }|j                             |d¦  «        }t          j	        |j        ||¦  «        5  |j         
                    t           j        |¦  «         ddd¦  «         n# 1 swxY w Y   |                     t          |¦  «        j        }||_        ||_        t          j        d¦  «        }|j                             ||¦  «        |_        |j                             |¦  «         ddd¦  «         n# 1 swxY w Y   t+          |                     ¦   «         |j                             |¦  «        ¬¦  «        S )aŸ  
    Here we're creating a NumPyRandomGeneratorType StructModel with following fields:
    * ('bit_generator', _bit_gen_type): The unboxed BitGenerator associated with
                                        this Generator object instance.
    * ('parent', types.pyobject): Pointer to the original Generator PyObject.
    * ('meminfo', types.MemInfoPointer(types.voidptr)): The information about the memory
        stored at the pointer (to the original Generator PyObject). This is useful for
        keeping track of reference counts within the Python runtime. Helps prevent cases
        where deletion happens in Python runtime without NRT being awareness of it.
    rE  Nr    )r   r¸   r%   rú   r   r>  r-   r   rŽ   r/  rE   rY  r   Ú_bit_gen_typer]   rE  r(  Ú	voidptr_tÚnrt_meminfo_new_from_pyobjectr™  rD   r	   ro   rG   )	r   r(   r   r_  r8  r9  Úbit_gen_instÚunboxedÚNULLs	            r   Úunbox_numpy_random_generatorrM  ã  sÎ  € õ Ô,¨Q¬Y½Ô8IÑJÔJ€Lå	‰Œð %˜Ø5•WÔ0°Ñ5Ô5°a´iÀÄÑKÔKˆ
Ø”w×4Ò4°S¸/ÑJÔJˆÝÔ'¨¬	°5¸,ÑGÔGð 	<ð 	<ØŒI�OŠO�GÔ,¨lÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<à—'’'�-¨Ñ6Ô6Ô<ˆØ#*ˆ
Ô Øˆ
ÔÝÔ  Ñ&Ô&ˆØœW×BÒBØØñ
ô 
ˆ
Ôð
 	
Œ�Š�|Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ  �z×+Ò+Ñ-Ô-¸¼	¿ºÀ|Ñ8TÔ8TÐUÑUÔUÐUs7   ³AEÂ&CÂ8EÃC	ÃEÃC	ÃA?EÅEÅEc                 ó:  — |j                              |j        | |¦  «        }|j        }t	          j        |j        |¦  «        }|j                             |¦  «         |j         j         	                    |j        | |¦  «         |j         
                    |¦  «        S r   )r-   rà   r%   r(  r   r¸   r   r)  rä   rD   rG   )r   r   r   r¿  r(   r6  s         r   Úbox_numpy_random_generatorrO    s~   € àŒ9× Ò  ¤¨C°Ñ5Ô5€DØ
Œ+€CÝ
Ô
# A¤I¨sÑ
3Ô
3€CØ„G‡N‚N�3ÑÔÐà„I„M×Ò˜œ C¨Ñ-Ô-Ð-ØŒ9�>Š>˜#ÑÔÐr   N)†rˆ  Úllvmliter   Ú
numba.corer   r   Únumba.core.pythonapir   r   r   r	   Únumba.core.errorsr
   r   Únumba.core.typing.typeofr   r   r  r   r   Únumba.npr   Ú
contextlibr   r   ÚBooleanr   r+   ÚIntegerLiteralÚBooleanLiteralr0   ÚIntegerr;   rK   ÚFloatrS   rY   ÚComplexrg   rt   ÚNoneTyperw   ÚEllipsisTyper{   Ú
RawPointerrƒ   Ú
EnumMemberrŒ   r�   ÚUndefVarr’   ÚRecordrŸ   r­   ÚUnicodeCharSeqrÌ   rÞ   ÚBytesrå   ÚCharSeqrç   rê   ÚOptionalró   r  Ú	SliceTyper	  ÚSliceLiteralr  ÚStringLiteralr   ÚArrayr/  ÚBufferr8  rC  ÚTupleÚUniTuplerL  Ú
NamedTupleÚNamedUniTuplerO  Ú	BaseTuplere  ÚListrr  Úobjectrt  rž  r©  r¶  rÃ  ÚSetrÇ  rÎ  rÑ  rÕ  Ú	GeneratorrÙ  rÜ  ÚDTyperà  rã  ÚNumberClassræ  rè  ÚPyObjectÚObjectrê  rí  ÚExternalFunctionPointerrù  ÚDeferredTyperþ  r  Ú
Dispatcherr  r  r  ÚLiteralr  ÚMemInfoPointerr  r  ÚTypeRefr  ÚLiteralStrKeyDictr  ÚNumPyRandomBitGeneratorTyperD  rG  ÚNumPyRandomGeneratorTyperM  rO  r‰  r   r   ú<module>r‚     s˜  ððð ð Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø "Ð "Ð "Ð "Ð "Ð "Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ð €€U„]ÑÔð'ð 'ñ Ôð'ð €€u„}ÑÔð<ð <ñ Ôð<ð €€UÔÑÔØ€€UÔÑÔð(ð (ñ Ôñ Ôð(ð
 €€U„]ÑÔð3ð 3ñ Ôð3ð €€u„}ÑÔð7ð 7ñ Ôð7ð €€U„[ÑÔð,ð ,ñ Ôð,ð €€u„{ÑÔð
<ð 
<ñ Ôð
<ð €€U„]ÑÔð	6ð 	6ñ Ôð	6ð €€u„}ÑÔð:ð :ñ Ôð:ð. €€U„^ÑÔðð ñ Ôðð €€u„~ÑÔØ€€uÔÑÔð4ð 4ñ Ôñ Ôð4ð €€UÔÑÔð$ð $ñ Ôð$ð €€UÔÑÔð=ð =ñ Ôð=ð €€uÔÑÔð&ð &ñ Ôð&ð €€U„^ÑÔðð ñ Ôðð €€U„\ÑÔðHð Hñ ÔðHð €€u„|ÑÔð
@ð 
@ñ Ôð
@ð €€UÔÑÔðCð Cñ ÔðCð2 €€uÔÑÔð9ð 9ñ Ôð9ð: €€U„[ÑÔðð ñ Ôðð €€U„]ÑÔð>ð >ñ Ôð>ð, €€u„}ÑÔð9ð 9ñ Ôð9ð6 €€U„^ÑÔð	ð 	ñ Ôð	ð €€u„~ÑÔð(ð (ñ Ôð(ðB €€u„ÑÔð
Eð 
Eñ Ôð
Eð €€UÔÑÔðð ñ Ôðð2 €€uÔÑÔð4ð 4ñ Ôð4ð €€U„[ÑÔðð ñ Ôðð  €€u„|ÑÔð(ð (ñ Ôð(ð2 €€u„{ÑÔð,@ð ,@ñ Ôð,@ð^ €€U„[ÑÔØ€€U„^ÑÔðð ñ Ôñ Ôðð €€UÔÑÔØ€€UÔÑÔð	ð 	ñ Ôñ Ôð	ð €€u„ÑÔð.>ð .>ñ Ôð.>ðb €€U„Z�„ðð ñ „ððB#ð #ð #ð #ð #�vñ #ô #ð #ðLC9ð C9ð C9ðL €€u„zÑÔð#(ð #(ñ Ôð#(ðL 	€ˆŒÑÔð/ð /ñ Ôð/ðd89ð 89ð 89ðv €€u„yÑÔð"(ð "(ñ Ôð"(ðJð ð ð, €€U„Y�„ðð ñ „ðð8 	€ˆŒÑÔðð ñ Ôðð8 €€U„_ÑÔðJð Jñ ÔðJð €€u„ÑÔð1ð 1ñ Ôð1ð €€U„[ÑÔðCð Cñ ÔðCð €€u„{ÑÔð4ð 4ñ Ôð4ð €€UÔÑÔðCð Cñ ÔðCð €€uÔÑÔð4ð 4ñ Ôð4ð €€U„^ÑÔØ€€U„\ÑÔðð ñ Ôñ Ôðð €€u„~ÑÔØ€€u„|ÑÔðð ñ Ôñ Ôðð €€uÔ$Ñ%Ô%ðLð Lñ &Ô%ðLð, €€UÔÑÔðð ñ Ôðð €€uÔÑÔð5ð 5ñ Ôð5ð €€uÔÑÔðð ñ Ôðð
 €€UÔÑÔðð ñ Ôðð
7ð 7ð 7ðð ð ð €€U„]ÑÔðAð Añ ÔðAð €€UÔÑÔð0ð 0ñ Ôð0ð €€uÔÑÔð.ð .ñ Ôð.ð
 €€u„}ÑÔðPð Pñ ÔðPð €€UÔÑÔð(ð (ñ Ôð(ð
 €€uÔ(Ñ)Ô)ðxVð xVñ *Ô)ðxVðt 2�Ô1°/ÑBÔB€à€€uÔ%Ñ&Ô&ðVð Vñ 'Ô&ðVð@ €€UÔ#Ñ$Ô$ðð ñ %Ô$ðð ð r   