§
    ƒÛg6·  ã                   ó6  — 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 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„ ¦   «         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j9        ¦  «        d„ ¦   «         Z; eej<        ¦  «        d „ ¦   «         Z= eej>        ¦  «        d!„ ¦   «         Z? eej>        ¦  «        d"„ ¦   «         Z@ eejA        ¦  «        d#„ ¦   «         ZB eejA        ¦  «        d$„ ¦   «         ZC eejD        ¦  «        d%„ ¦   «         ZE eejF        ¦  «        d&„ ¦   «         ZG eejH        ¦  «        d'„ ¦   «         ZI eejJ        ¦  «        d(„ ¦   «         ZK eejL        ¦  «        d)„ ¦   «         ZM eejJ        ¦  «        d*„ ¦   «         ZN eejO        ¦  «         eejP        ¦  «        d+„ ¦   «         ¦   «         ZQ eejR        ¦  «         eejS        ¦  «        d,„ ¦   «         ¦   «         ZT eejU        ¦  «        d-„ ¦   «         ZV eejW        ¦  «        d.„ ¦   «         ZX G d/„ d0eY¦  «        ZZd1„ Z[ eejW        ¦  «        d2„ ¦   «         Z\ e	ejW        ¦  «        d3„ ¦   «         Z]d4„ Z^ eej_        ¦  «        d5„ ¦   «         Z`d6„ Za eej_        ¦  «        d7„ ¦   «         Zb e	ej_        ¦  «        d8„ ¦   «         Zc eejd        ¦  «        d9„ ¦   «         Ze eejd        ¦  «        d:„ ¦   «         Zf eejg        ¦  «        d;„ ¦   «         Zh eejg        ¦  «        d<„ ¦   «         Zi eejj        ¦  «        d=„ ¦   «         Zk eejj        ¦  «        d>„ ¦   «         Zl eejm        ¦  «         eejn        ¦  «        d?„ ¦   «         ¦   «         Zo eejm        ¦  «         eejn        ¦  «        d@„ ¦   «         ¦   «         Zp eejq        ¦  «        dA„ ¦   «         Zr eejs        ¦  «        dB„ ¦   «         Zt eejs        ¦  «        dC„ ¦   «         Zu eejv        ¦  «        dD„ ¦   «         Zw eejv        ¦  «        dE„ ¦   «         ZodF„ ZxdG„ Zy eejz        ¦  «        dH„ ¦   «         Z{ eej|        ¦  «        dI„ ¦   «         Z} eej|        ¦  «        dJ„ ¦   «         Z~ eej        ¦  «        dK„ ¦   «         Z€ eej�        ¦  «        dL„ ¦   «         Z‚ eejƒ        ¦  «        dM„ ¦   «         Z„ ejƒ        dN¦  «        Z… eej†        ¦  «        dO„ ¦   «         Z‡ eej†        ¦  «        dP„ ¦   «         ZˆdQS )RzG
Boxing and unboxing of native Numba values to / from CPython objects.
é    )Úir)ÚtypesÚcgutils)ÚboxÚunboxÚreflectÚNativeValue)ÚNumbaNotImplementedError)ÚtypeofÚPurpose)ÚsetobjÚlistobj)Únumpy_support)ÚcontextmanagerÚ	ExitStackc                 ó6   — |j                              |¦  «        S ©N)ÚpyapiÚbool_from_bool©ÚtypÚvalÚcs      úG/granary/edev/quantum/lib/python3.11/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_integerr/   !   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_okr1   Úlong_as_longlongÚlong_as_ulonglongÚdecrefÚstoreÚtruncr	   Úloadr&   )r   r'   r   Úll_typer   ÚlongobjÚllvals          r   Úunbox_integerrJ   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_floatrR   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_doublerC   r   rL   r$   Úfptruncr,   r=   rO   r	   r&   )r   r'   r   ÚfobjrQ   r   s         r   Úunbox_floatrX   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   Ú	complex64rM   Úrealr   rN   ÚimagÚ
complex128Úcomplex_from_doubles)r   r   r   ÚcvalÚfrealÚfimags         r   Úbox_complexrf   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   ra   r   Úcomplex_adaptorÚ_getpointerr   Úis_falseÚif_unlikelyÚerr_set_stringr^   r-   r_   rO   rL   r`   r	   Ú	_getvalue)r   r'   r   Úc128ÚokÚfailedÚcplxs          r   Úunbox_complexrs   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_nonerv   |   s   € àŒ7×ÒÑÔÐr   c                 óN   — t          |j                             ¦   «         ¦  «        S r   ©r	   r,   Úget_dummy_valuer   s      r   Ú
unbox_nonerz   €   ó    € õ �q”y×0Ò0Ñ2Ô2Ñ3Ô3Ð3r   c                 óB   — |j                              || j        ¦  «        S r   )r   Úcreate_np_datetimeÚ	unit_coder   s      r   Úbox_npdatetimer   †   s   € àŒ7×%Ò% c¨3¬=Ñ9Ô9Ð9r   c                 ó†   — |j                              |¦  «        }t          ||j                              ¦   «         ¬¦  «        S r<   )r   Úextract_np_datetimer	   r&   ©r   r'   r   r   s       r   Úunbox_npdatetimerƒ   Š   s8   € à
Œ'×
%Ò
% cÑ
*Ô
*€CÝ�s Q¤W×%8Ò%8Ñ%:Ô%:Ð;Ñ;Ô;Ð;r   c                 óB   — |j                              || j        ¦  «        S r   )r   Úcreate_np_timedeltar~   r   s      r   Úbox_nptimedeltar†   �   s   € àŒ7×&Ò& s¨C¬MÑ:Ô:Ð:r   c                 ó†   — |j                              |¦  «        }t          ||j                              ¦   «         ¬¦  «        S r<   )r   Úextract_np_timedeltar	   r&   r‚   s       r   Úunbox_nptimedeltar‰   ”   s8   € à
Œ'×
&Ò
& sÑ
+Ô
+€CÝ�s Q¤W×%8Ò%8Ñ%:Ô%:Ð;Ñ;Ô;Ð;r   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                 ó:  — 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_constantr   Úint32r   Úalloca_once_valuer$   r£   ÚcstringÚintpr¢   r#   Ú	loop_nestrF   ÚgepÚmulÚif_thenÚis_not_nullrD   Ú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Ô(ð*ð *õ +8Ô*KôM€Lð Œ9×!Ò!¥%¤+¨|Ñ<Ô<€DÝÔ& q¤y¸Ð<Ñ<Ô<€FØŒY×Ò˜v q¤w¤Ñ7Ô7€FàŒy×%Ò%¥e¤j°#´)Ñ<Ô<€HØ�=Š=˜ÑÔ€DØ
�-Š-˜Ñ
Ô
€CØ�=Š=�Ô:Ñ;Ô;€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£   rF   r	   Únot_)r   r'   r   Últyrp   Ú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ÚnrtrC   )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Å   rF   rÆ   rÈ   rÉ   rD   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£   rF   r	   rÞ   )r   r'   r   rß   rp   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ì   rD   ru   rF   )r   r   r   Úoptvalrç   ÚthenÚ	otherwiseÚvalidress           r   Úbox_optionalrý   E  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>.cleanupi  s�   ø€ Ø”×"Ò" ;Ñ/Ô/ð !ð !Ø—’Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   œ>¾AÁA©r    r°   )r,   Úmake_optional_noner$   r#   r%   r   rö   r   r>   rÂ   Ú	false_bitr÷   r   Úmake_optional_valuer\   rD   r    r°   rF   r	   )r   r'   r   ÚnonevalÚretptrÚerrptrrú   ÚorelseÚjustr°   rç   r   r  s     `        @@r   Úunbox_optionalr  R  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	   rn   rÞ   )	r   r'   r   r  rp   r  r  rÒ   Úslis	            r   Úunbox_slicer  t  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“   ÚcallrC   )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'  �  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   rx   ©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 rZ   )r,   Ú
make_arrayr$   Ú
enable_nrtr   Úas_dtyper’   r¦   Ú
read_constÚ	add_constr   Únrt_adapt_ndarray_to_pythonrî   rC   ÚparentÚincref)	r   r   r   ÚnativearyclsÚ	nativearyÚnp_dtypeÚdtypeptrÚnewaryr2  s	            r   Ú	box_arrayr9  §  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,  rj   rÚ   rÞ   r£   Úvoidptrr-  Únrt_adapt_buffer_from_pythonÚnumba_buffer_adaptorr	   rF   )r   r'   r   Úresr    r4  r5  Úaryptrr¨   r°   r¯   s     `       @r   Úunbox_bufferrB  ¸  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©Úlikelyrh   zXcan't unbox array from PyObject into native value.  The object maybe of a different typeNr   )r,   r,  r$   rj   r£   r   r=  r-  Únrt_adapt_ndarray_from_pythonÚnumba_array_adaptorr   r.  r’   Úitemsizer#   rÛ   r
   r   r  Úor_rÉ   rÈ   rm   r	   rF   )r   r'   r   r4  r5  rA  r¨   ÚerrcodeÚexpected_itemsizeÚitemsize_mismatchrq   s              r   Úunbox_arrayrM  Ò  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_tuplerV    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•   rV  r  rC   )r   r   r   r˜   Ú	tuple_objr'   s         r   Úbox_namedtuplerY    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==FrD  Ú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>.cleanupG  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_formatrD   Útrue_bitrP  Útuple_getitemr   Úappendr\   r    r°   Ú
make_tupler	   rF   )r   r'   r   ÚnÚvaluesrß   Úis_error_ptrÚ	value_ptrÚactual_sizeÚsize_matchesrT  ÚeltypeÚelemr  r\   r°   r_  s                   @r   Úunbox_tuplero    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.
    NTrD  )r   ÚListInstancer,   r$   r2  r   rÂ   r÷   rÉ   r   r3  r§   Úlist_newrÈ   Ú	for_rangeÚgetitemÚindexÚincref_valuer   r’   Úlist_setitemrD   rî   rC   rF   )r   r   r   Úlistr'   r@  Ú
has_parentrû   rí   ÚlooprU  Úitemobjs               r   Úbox_listr|  Q  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__„  s   € ØˆŒˆˆr   c                 ó
  — | j         }|j                             |j        j        d¦  «        }|j                             |¦  «        }|j                             |d¦  «        }|| _        |j         	                    |¦  «         | S )NÚnumbar   )
r   r,   Úinsert_const_stringr$   Úmoduler   Úimport_module_noblockr›   Ú	typeof_fnrC   )r€  r   Ú
numba_nameÚ	numba_modr‡  s        r   Ú	__enter__z_NumbaTypeHelper.__enter__‡  sq   € ØŒFˆØ”Y×2Ò2°1´9Ô3CÀWÑMÔMˆ
Ø”G×1Ò1°*Ñ=Ô=ˆ	Ø”G×1Ò1°)¸XÑFÔFˆ	Ø"ˆŒØ	Œ�Š�yÑ!Ô!Ð!Øˆr   c                 óR   — | j         }|j                             | j        ¦  «         d S r   )r   r   rC   r‡  )r€  r&  Úkwargsr   s       r   Ú__exit__z_NumbaTypeHelper.__exit__�  s%   € ØŒFˆØ	Œ�Š�t”~Ñ&Ô&Ð&Ð&Ð&r   c                 óR   — | j         j                             | j        |g¦  «        }|S r   )r   r   r–   r‡  )r€  r'   r@  s      r   r   z_NumbaTypeHelper.typeof”  s$   € ØŒfŒl×0Ò0°´À#ÀÑGÔGˆØˆ
r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r�  rŠ  r�  r   © r   r   r~  r~  s  sZ   € € € € € ðð ð ð ð ðð ð ð'ð 'ð 'ðð ð ð ð r   r~  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 )NFrD  r   rh   z(can't unbox heterogeneous list: %S != %S)r   r$   rÈ   r   rµ   rD   rc  Údo_breakr%   r   rb  rC   )Únthr{  Úexpected_typobjÚtypobjÚtype_mismatchr   Úerrorptrrz  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TrD  r   ú>FN)r3  )$r   rq  Úallocate_exr,   r$   r÷   r§   r   r"   r#   rÈ   r%   r~  r   r   Úlist_getitemr   rs  ru  r   r’   r    rD   rc  r–  Úsetitemr\   rC   Ú	reflectedr2  rÞ   rF   Úobject_set_private_dataÚmeminfoÚ	set_dirtyrî   )r   r'   r   r§   Úlistptrr›  rœ  rp   rx  Úif_okÚ	if_not_okr)   r—  r˜  r{  r  rz  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   rq  Úfrom_meminfor§   r¡  r2  rD   r\   r¨  r	   rF   )r   r'   r   r§   r›  r¥  r¨   Úhas_meminforû   rx  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: {}
FrD  z>=r   ) r¡  r’   ÚformatÚ	TypeErrorr   rq  r,   r$   rÈ   Údirtyr2  r   r¯  r§   Úsubr%   r   r"   r#   r÷   r   rs  rt  ru  rv  r   rw  rÊ   Úlist_appendrC   Úlist_setslicer¤  )r   r   r   Úmsgrx  r'   r§   Únew_sizeÚdiffÚ	diff_gt_0Úif_growÚ	if_shrinkrz  rU  r{  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.
    TrD  NFr   rh   zcan't unbox heterogeneous set)Ú	do_resize)#r   ÚSetInstancerž  r,   r$   r÷   r   rÂ   r   r"   r   ÚpyobjÚset_iterater\   Úget_typerF   rµ   rD   r%   rÈ   rc  rm   r–  r   r’   r    Ú	add_pyapir¡  r2  rÞ   r¢  r£  r¤  rî   rC   )r   r'   r   r§   Úsetptrr›  rp   Úinstr¦  r§  Ú	typobjptrrz  r{  r™  r˜  Úif_firstÚif_not_firstrš  r  s                      r   Ú_python_set_to_nativerÎ  9  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¡  r2  rD   r\   rÎ  r	   rF   )r   r'   r   r§   r›  rÉ  r¨   r²  rû   rÊ  r°   s    ``        r   Ú	unbox_setrÒ  t  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.
    TrD  r   r¹   N)Úusedr   rr  r   rÉ   r$   rÈ   rÂ   r   r"   r#   Ú_iteraterF   ÚentryÚkeyr,   rî   r3  r’   r   rw  rÊ   rD   )r   Úpayloadr   rí   r   rp   ru  rz  rT  rU  r{  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.
    NTrD  )r   rÄ  r,   r$   r2  r   rÂ   r÷   rÉ   r   r3  rØ  rÙ  rÈ   Úset_newrC   rD   rî   rF   )r   r   r   rÊ  r'   r@  ry  rû   rØ  rp   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.
    NFrD  T)r¡  r   rÄ  r,   r$   rØ  rÈ   r·  r2  r   Ú	set_clearrÙ  Ú
set_updaterC   r¤  )r   r   r   rÊ  rØ  r'   rp   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   r6  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   rx   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   rx   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–   rC   Úlong_as_voidptrrD   r£   r	   rF   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$   rQ  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Úmodelr@  s         r   Úunbox_deferredr  1  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   r3  r   s      r   rõ  rõ  @  s   € à„G‡N‚N�3ÑÔÐØ€Jr   c                 óÈ   — |j                              dd                     | ¦  «        ¦  «         |j                             | ¦  «        }t          |t          j        ¬¦  «        S )Nrh   zcan't unbox {!r} typer   )r   rm   rµ  r,   Úget_constant_nullr	   r   rc  )r   r'   r   r@  s       r   Úunbox_unsupportedr  F  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 objectrh   )r   rm   Úget_null_object)r   r   r   r»  r@  s        r   Úbox_unsupportedr  M  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  T  s2   € ð Ô€FàŒ7×Ò˜qœw×7Ò7¸Ñ?Ô?Ñ@Ô@Ð@r   c                 ó6   — |j                              |¦  «        S r   )r   Únrt_meminfo_as_pyobjectr   s      r   Úbox_meminfo_pointerr   ]  s   € àŒ7×*Ò*¨3Ñ/Ô/Ð/r   c                 óŒ   — |j                              |¦  «        }t          j        |j        |¦  «        }t          ||¬¦  «        S r<   )r   Únrt_meminfo_from_pyobjectr   rµ   r$   r	   )r   r'   r   r@  Úerroreds        r   Úunbox_meminfo_pointerr$  b  s=   € à
Œ'×
+Ò
+¨CÑ
0Ô
0€CÝŒo˜aœi¨Ñ-Ô-€GÝ�s WÐ-Ñ-Ô-Ð-r   c                 óf   — t          |j                             ¦   «         t          j        ¬¦  «        S r<   )r	   r,   ry   r   r  r   s      r   Úunbox_typerefr&  h  s&   € å�q”y×0Ò0Ñ2Ô2½WÔ=NÐOÑOÔOÐOr   c                 ó$   — t          | ||¦  «        S r   )r  r   s      r   Úbox_LiteralStrKeyDictr(  m  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   rC   )Ú_refr   Ú
extra_refss    €€r   Úclear_extra_refsz9unbox_numpy_random_bitgenerator.<locals>.clear_extra_refsƒ  s3   ø€ Øð 	!ð 	!ˆDØŒG�NŠN˜4Ñ Ô Ð Ð ð	!ð 	!r   c                  óf   •— ‰ j                              t          j        ‰¦  «          ‰¦   «          d S r   )r$   rD   r   rc  )r   r-  ri  s   €€€r   Úhandle_failurez7unbox_numpy_random_bitgenerator.<locals>.handle_failure‡  s1   ø€ Ø	Œ	�Š�Ô(¨,Ñ7Ô7Ð7ØÐÑÔÐÐÐr   c                 óh   •— ‰j                              | |¦  «        }‰                     |¦  «         |S r   )r   r›   re  )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›   re  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/  r3  ÚstackÚ
struct_ptrs        €€€€€€€€€r   Úwire_in_fnptrsz7unbox_numpy_random_bitgenerator.<locals>.wire_in_fnptrsÆ  s;  ø€ à !¤× =Ò =Ø ñ!&ô !&Ðð ×ÒÐ/Ñ0Ô0Ð0ÝÔ+¨A¬I°uÐ>OÑPÔPð !ð !Ø�Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð
 ”7×%Ò%Ð'8¸-Ð&HÑIÔIˆDÝÔ+¨A¬I°u¸dÑCÔCð !ð !Ø�Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ()¤w§|¢|°G¸TÑ'BÔ'BÐ$ð .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Ä
D!Ä!D%Ä(D%Únext_doubleÚnext_uint64Únext_uint32r   )r   rÂ   r$   r  r   Úcreate_struct_proxyr,   r2  r:  r<  r   r   rŒ   r\   r„  r…  r   r†  re  r	   rn   rF   )r   r'   r   Úinterface_state_addressÚinterface_stateÚinterface_state_valueÚctypes_nameÚctypes_modulerE  r-  r@  rA  rB  r,  r/  ri  r3  rC  rD  s     `      @@@@@@@@@@r   Úunbox_numpy_random_bitgeneratorrO  s  sk  øøøøøøøøøøø€ õ Ô,¨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ˆØœ×5Ò5°kÑBÔBˆØ×Ò˜-Ñ(Ô(Ð(ÝÔ'¨¬	°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ð< 	ˆ�}Ñ%Ô%Ð%Øˆ�}Ñ%Ô%Ð%Øˆ�}Ñ%Ô%Ð%àÐÑÔÐð{]ð ]ð ]ñ ]ô ]ð ]ð ]ð ]ð ]ð ]ð ]øøøð ]ð ]ð ]ð ]õ~ �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. 
    rP  Nr   )r   rÂ   r$   r  r   rI  r,   r   r›   r:  rD   rc  r   Ú_bit_gen_typer\   rP  r2  Ú	voidptr_tÚnrt_meminfo_new_from_pyobjectr£  rC   r	   rn   rF   )	r   r'   r   ri  rC  rD  Úbit_gen_instÚunboxedÚNULLs	            r   Úunbox_numpy_random_generatorrX  î  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$   r2  r   rÂ   r   r3  rî   rC   rF   )r   r   r   rÊ  r'   r@  s         r   Úbox_numpy_random_generatorrZ    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
   Únumba.core.typing.typeofr   r   r  r   r   Únumba.npr   Ú
contextlibr   r   ÚBooleanr   r*   ÚIntegerLiteralÚBooleanLiteralr/   ÚIntegerr:   rJ   ÚFloatrR   rX   ÚComplexrf   rs   ÚNoneTyperv   ÚEllipsisTyperz   Ú
NPDatetimer   rƒ   ÚNPTimedeltar†   r‰   Ú
RawPointerr�   Ú
EnumMemberr™   rœ   ÚRecordr©   r·   ÚUnicodeCharSeqrÖ   rè   ÚBytesrï   ÚCharSeqrñ   rô   ÚOptionalrý   r  Ú	SliceTyper  ÚSliceLiteralr'  ÚStringLiteralr*  ÚArrayr9  ÚBufferrB  rM  ÚTupleÚUniTuplerV  Ú
NamedTupleÚNamedUniTuplerY  Ú	BaseTuplero  ÚListr|  Úobjectr~  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(  ÚNumPyRandomBitGeneratorTyperO  rR  ÚNumPyRandomGeneratorTyperX  rZ  r“  r   r   ú<module>rŽ     s  ððð ð Ð Ð Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 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ÔÑÔð$ð $ñ Ôð$ð €€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Ô(Ñ)Ô)ðvVð vVñ *Ô)ðvVðp 2�Ô1°/ÑBÔB€à€€uÔ%Ñ&Ô&ðVð Vñ 'Ô&ðVð@ €€UÔ#Ñ$Ô$ðð ñ %Ô$ðð ð r   