§
    2@Äj6 ã                   ó´
  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlmZ d dlZd dlmZmZmZmZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d	l'm(Z( d dl)Z)d d
l*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB ddlCmDZDmEZE 	 d dlFmGc mHZI n# eJ$ r dZIY nw xY w G d„ deK¦  «        ZL G d„ dejM        ¦  «        ZN eNd¦  «        ZO eL¦   «         ZP e+jQ        eL¦  «        d„ ¦   «         ZR e.eNejS        ¦  «        d„ ¦   «         ZTd„ ZU  e3eN¦  «        e2jV        ¦  «          e5eN¦  «        d„ ¦   «         ZWd„ ZX eXd¦  «        \  ZYZZZ[ e5eY¦  «        d„ ¦   «         Z\d~d„Z]d„ Z^  e,e]¦  «        e^¦  «        Z_ e-e]¦  «         e-e]ej`        ¦  «        d„ ¦   «         ¦   «         Za e-e]ejb        ¦  «        d„ ¦   «         Zce@ G d„ de>¦  «        ¦   «         Zd e-d eN¦  «        d!„ ¦   «         Zed"„ Zfd#„ Zgd$„ Zh e/ef¦  «        d%„ ¦   «         Zi e/ef¦  «        d&„ ¦   «         Zj e/ek¦  «        d'„ ¦   «         Zl e/ejm        ¦  «        d(„ ¦   «         Zn e/ejo        ¦  «        d)„ ¦   «         Zp e/ejq        ¦  «        d*„ ¦   «         Zr e/ejs        ¦  «        d+„ ¦   «         Ztd,„ Zud-„ Zv e/ejw        ¦  «        d.„ ¦   «         Zxd/„ Zyd0„ Zzd1„ Z{d2„ Z|d3„ Z} e1eNd4¦  «        d5„ ¦   «         Z~d6„ Zd7„ Z€d8„ Z�d9„ Z‚d:„ Zƒd;„ Z„d<„ Z…d=„ Z†d>„ Z‡d?„ Zˆd@„ Z‰dA„ ZŠdB„ Z‹ e/e‹¦  «        dC„ ¦   «         ZŒdD„ Z�dE„ ZŽdF„ Z� eAe�¦  «         G dG„ dHeB¦  «        ¦   «         Z�dI„ Z‘ G dJ„ dKeK¦  «        Z’ G dL„ dMej“        ¦  «        Z” e3e”¦  «         G dN„ dOe2jV        ¦  «        ¦   «         Z• eAe’ e”e’¦  «        ¦  «          ee”¦  «        dP„ ¦   «         Z– e/e
j—        ¦  «        dQ„ ¦   «         Z˜ G dR„ dSe ¦  «        Z™ G dT„ dUe ¦  «        Zš G dV„ dWe ¦  «        Z›dX„ Zœe% G dY„ dZe ¦  «        ¦   «         Z�d[„ Zž G d\„ d]e ¦  «        ZŸ G d^„ d_e)j         ¦  «        Z  G d`„ dae)j         ¦  «        Z¡ e1eNdbdcddi¬e¦  «        df„ ¦   «         Z¢ e1eNdgdcdhi¬e¦  «        di„ ¦   «         Z£ e0eNdjdcddi¬e¦  «        dk„ ¦   «         Z¤ e0eNdldcdhi¬e¦  «        dm„ ¦   «         Z¥ G dn„ doe ¦  «        Z¦ G dp„ dqe ¦  «        Z§dr„ Z¨e% G ds„ dte ¦  «        ¦   «         Z© G du„ dve ¦  «        Zª G dw„ dxe ¦  «        Z« G dy„ dze ¦  «        Z¬ G d{„ d|e ¦  «        Z­e®d}k    r e)j¯        ¦   «          dS dS )é    N)Úir)ÚnjitÚjitÚ	vectorizeÚguvectorizeÚobjmode)ÚtypesÚerrorsÚtypingÚcompilerÚcgutils)Útype_inference_stage)Ú
cpu_target)Úlower_constant)ÚTestCaseÚcaptured_stdoutÚtemp_directoryÚoverride_configÚrun_in_new_process_in_cache_dirÚskip_if_typeguardÚnumpy_sincos_low_precision)ÚLoweringError)Útypeof_implÚtype_callableÚlower_builtinÚ
lower_castÚoverloadÚoverload_attributeÚoverload_methodÚmodelsÚregister_modelÚboxÚunboxÚNativeValueÚ	intrinsicÚ
_IntrinsicÚregister_jitableÚget_cython_function_addressÚ	is_jittedÚoverload_classmethod)ÚConcreteTemplateÚ	signatureÚinferÚinfer_globalÚAbstractTemplateé   )ÚIndexÚSeriesc                   ó   — e Zd ZdS )ÚMyDummyN©Ú__name__Ú
__module__Ú__qualname__© ó    úKC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_extending.pyr4   r4   K   ó   € € € € € Ø€Dr:   r4   c                   ó   — e Zd Zd„ ZdS )ÚMyDummyTypec                 óT   — t          |t          j        ¦  «        rddlm} |j        S d S )Nr   )Ú
Conversion)Ú
isinstancer	   ÚNumberÚnumba.core.typeconvr@   Úsafe)ÚselfÚcontextÚtotyr@   s       r;   Úcan_convert_tozMyDummyType.can_convert_toP   s:   € Ý�d�EœLÑ)Ô)ð 	#Ø6Ð6Ð6Ð6Ð6Ð6à”?Ð"ð	#ð 	#r:   N)r6   r7   r8   rH   r9   r:   r;   r>   r>   O   s#   € € € € € ð#ð #ð #ð #ð #r:   r>   Úmydummyc                 ó   — t           S ©N)Úmydummy_type)ÚvalÚcs     r;   Útypeof_mydummyrO   [   s   € åÐr:   c                 ó.   — |                       |d¦  «        S )z2
    Implicit conversion from MyDummy to int.
    é*   )Úget_constant)rF   ÚbuilderÚfromtyrG   rM   s        r;   Úmydummy_to_numberrU   `   s   € ð
 ×Ò  bÑ)Ô)Ð)r:   c                  ó   — t           S rK   )rI   r9   r:   r;   Ú	get_dummyrW   h   s   € Ý€Nr:   c                 óN   — t          |j                             ¦   «         ¦  «        S rK   ©r$   rF   Úget_dummy_value©ÚtypÚobjrN   s      r;   Úunbox_indexr^   o   ó   € å�q”y×0Ò0Ñ2Ô2Ñ3Ô3Ð3r:   c                 óü   ‡—  G d„ dt           ¦  «        } G d„ dt          j        ¦  «        } || ¦  «        Št          j        |¦  «        ˆfd„¦   «         } t          |¦  «        t          j        ¦  «         ||‰fS )Nc                   ó   — e Zd ZdS )ú(base_dummy_type_factory.<locals>.DynTypeNr5   r9   r:   r;   ÚDynTyperb   y   ó   € € € € € Øˆr:   rc   c                   ó   — e Zd ZdS )ú,base_dummy_type_factory.<locals>.DynTypeTypeNr5   r9   r:   r;   ÚDynTypeTyperf   |   rd   r:   rg   c                 ó   •— ‰S rK   r9   )rM   rN   Údyn_type_types     €r;   rO   z/base_dummy_type_factory.<locals>.typeof_mydummy�   s	   ø€ àÐr:   )Úobjectr	   ÚOpaquer   Úregisterr!   r    ÚOpaqueModel)Únamerc   rg   rO   ri   s       @r;   Úbase_dummy_type_factoryro   x   sÃ   ø€ ðð ð ð ð •&ñ ô ð ðð ð ð ð •e”lñ ô ð ð  �K Ñ%Ô%€MåÔ˜'Ñ"Ô"ðð ð ð ñ #Ô"ðð  …N�;ÑÔ¥Ô 2Ñ3Ô3Ð3Ø˜ Ð.Ð.r:   Úmydummy2c                 óN   — t          |j                             ¦   «         ¦  «        S rK   rY   r[   s      r;   Úunbox_index2rr   Œ   r_   r:   c                 ó   — t           ‚rK   ©ÚNotImplementedError©Úxs    r;   Úfunc1rx   –   ó   € Ý
Ðr:   c                 ó   — dd„}|S )Nc                 óv   — | d t           j        fv rt           j        S t          | t           j        ¦  «        r| S d S rK   )r	   ÚnoneÚint32rA   ÚFloatrv   s    r;   Útyperztype_func1_.<locals>.typer›   s?   € Ø�•u”zÐ"Ð"Ð"å”;ÐÝ˜�5œ;Ñ'Ô'ð 	àˆHð	ð 	r:   rK   r9   )rF   r   s     r;   Útype_func1_r€   š   s   € ðð ð ð ð €Lr:   c                 ó8   — |                       |j        d¦  «        S ©NrQ   )rR   Úreturn_type)rF   rS   ÚsigÚargss       r;   Úfunc1_nullaryr†   ©   s   € ð ×Ò ¤°Ñ4Ô4Ð4r:   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó0   — t          j        d| z  ¦  «        S )Né   )ÚmathÚsqrtrv   s    r;   Ú
func1_implzfunc1_unary.<locals>.func1_impl±   s   € ÝŒy˜˜Q™ÑÔÐr:   )Úcompile_internal)rF   rS   r„   r…   rŒ   s        r;   Úfunc1_unaryrŽ   ¯   s-   € ð ð  ð  ð ×#Ò# G¨Z¸¸dÑCÔCÐCr:   c                   ó6   — e Zd ZdZ eej        e¦  «        gZdS )Ú
PrintDummyÚ
print_itemN)	r6   r7   r8   Úkeyr,   r	   r|   rL   Úcasesr9   r:   r;   r�   r�   »   s)   € € € € € à
€CØˆY�u”z <Ñ0Ô0Ð1€E€E€Er:   r�   r‘   c                 ó   — |\  }|                       |¦  «        }|                     |                     d¦  «        ¦  «        }|                     |¦  «         |                     |¦  «         |                      ¦   «         S )Nzhello!)Úget_python_apiÚunserializeÚserialize_objectÚprint_objectÚdecrefrZ   )rF   rS   r„   r…   rw   ÚpyapiÚstrobjs          r;   Úprint_dummyrœ   Á   su   € à
�C€QØ×"Ò" 7Ñ+Ô+€EØ×Ò˜u×5Ò5°hÑ?Ô?Ñ@Ô@€FØ	×Ò�vÑÔÐØ	‡L‚L�ÑÔÐØ×"Ò"Ñ$Ô$Ð$r:   c                 ó   — t           ‚rK   rt   ©Úcondrw   Úys      r;   Úwherer¡   Ï   ry   r:   c                 ó.   — t          j        | ||¦  «        S )z8
    Wrap np.where() to allow for keyword arguments
    )Únpr¡   rž   s      r;   Únp_wherer¤   Ó   s   € õ Œ8�D˜!˜QÑÔÐr:   c                 ó&   — t          | ||¬¦  «        S )N)r    rw   )r¡   rž   s      r;   Ú
call_wherer¦   Ú   s   € Ý�˜˜aÐ Ñ Ô Ð r:   c                 óÌ   — t          | t          j        ¦  «        rI|j        |j        k    rt	          j        d¦  «        ‚t          d„ | ||fD ¦   «         ¦  «        rd„ }nd„ }|S dS )z'
    Implement where() for arrays.
    ú"x and y should have the same dtypec              3   ó,   K  — | ]}|j         d k    V — ŒdS )ÚCN)Úlayout)Ú.0Útys     r;   ú	<genexpr>z(overload_where_arrays.<locals>.<genexpr>é   s)   è è € Ð7Ð7 BˆrŒy˜CÒÐ7Ð7Ð7Ð7Ð7Ð7r:   c                 ó"  — | j         }|j         |k    s|j         |k    rt          d¦  «        ‚t          j        |¦  «        }| j        }|j        }|j        }|j        }t          | j        ¦  «        D ]}	||	         r||	         n||	         ||	<   Œ|S )zM
                Fast implementation for C-contiguous arrays
                ú%all inputs should have the same shape)ÚshapeÚ
ValueErrorr£   Ú
empty_likeÚflatÚrangeÚsize)
rŸ   rw   r    r±   ÚresÚcfÚxfÚyfÚrfÚis
             r;   Ú
where_implz)overload_where_arrays.<locals>.where_implë   sœ   € ð œ
�Ø”7˜eÒ#Ð# q¤w°%Ò'7Ð'7Ý$Ð%LÑMÔMÐMÝ”m AÑ&Ô&�Ø”Y�Ø”V�Ø”V�Ø”X�Ý˜tœyÑ)Ô)ð 6ð 6�AØ%'¨¤UÐ5˜B˜qœE˜E°°1´�B�q‘E�EØ�
r:   c                 óä   — | j         }|j         |k    s|j         |k    rt          d¦  «        ‚t          j        |¦  «        }t          j        | ¦  «        D ]\  }}|r||         n||         ||<   Œ|S )zI
                Generic implementation for other arrays
                r°   )r±   r²   r£   r³   Úndenumerate)rŸ   rw   r    r±   r·   ÚidxrN   s          r;   r½   z)overload_where_arrays.<locals>.where_implý   s€   € ð œ
�Ø”7˜eÒ#Ð# q¤w°%Ò'7Ð'7Ý$Ð%LÑMÔMÐMÝ”m AÑ&Ô&�Ý œn¨TÑ2Ô2ð 7ð 7‘F�C˜Ø)*Ð6˜q œv˜v°°#´�C˜‘H�HØ�
r:   N)rA   r	   ÚArrayÚdtyper
   ÚTypingErrorÚall©rŸ   rw   r    r½   s       r;   Úoverload_where_arraysrÆ   Þ   s–   € õ �$�œÑ$Ô$ð %ØŒ7�a”gÒÐÝÔ$Ð%IÑJÔJÐJõ Ð7Ð7¨4°°A¨,Ð7Ñ7Ô7Ñ7Ô7ð 	ðð ð ð ð$
ð 
ð 
ð ÐðK%ð %r:   c                 óx   — t          | t          j        ¦  «        s||k    rt          j        d¦  «        ‚d„ }|S dS )z(
    Implement where() for scalars.
    z!x and y should have the same typec                 óD   — | r|n|}t          j        |¦  «        }||d<   |S )z@
            Scalar where() => return a 0-dim array
            r9   )r£   r³   )rŸ   rw   r    ÚscalÚarrs        r;   r½   z*overload_where_scalars.<locals>.where_impl  s/   € ð Ð#�1�1 !ˆDå”- Ñ%Ô%ˆCØˆC�‰GØˆJr:   N)rA   r	   rÁ   r
   rÃ   rÅ   s       r;   Úoverload_where_scalarsrË     sT   € õ
 �d�EœKÑ(Ô(ð Ø�Š6ˆ6ÝÔ$Ð%HÑIÔIÐIð	ð 	ð 	ð Ððð r:   c                 ó:   — t          | t          ¦  «        rd„ }|S d S )Nc                 ó   — dS )Né   r9   ©Úargs    r;   Úlen_implz$overload_len_dummy.<locals>.len_impl.  ó   € Ø�2r:   ©rA   r>   )rÐ   rÑ   s     r;   Úoverload_len_dummyrÔ   *  s4   € å�#•{Ñ#Ô#ð ð	ð 	ð 	ð ˆðð r:   c                 ó„   — t          | t          t          f¦  «        r!t          |t          t          f¦  «        rd„ }|S d S d S )Nc                 ó   — dS r‚   r9   ©Úarg1Úarg2s     r;   Údummy_add_implz*overload_add_dummy.<locals>.dummy_add_impl:  rÒ   r:   ©rA   r>   ÚMyDummyType2)rØ   rÙ   rÚ   s      r;   Úoverload_add_dummyrÝ   4  s_   € å�$�¥lÐ3Ñ4Ô4ð ½Ø�{�LÐ)ñ:ô :ð ð	ð 	ð 	ð Ððð ð ð r:   c                 ór   — t          | t          ¦  «        rt          |t          j        ¦  «        rd„ }|S d S d S )Nc                 ó(   — t          d| |¦  «         d S )NÚdel©Úprint©r]   rÀ   s     r;   Údummy_delitem_implz2overload_dummy_delitem.<locals>.dummy_delitem_implD  s   € Ý�%˜˜cÑ"Ô"Ð"Ð"Ð"r:   ©rA   r>   r	   ÚInteger)r]   rÀ   rä   s      r;   Úoverload_dummy_delitemrç   @  sR   € å�#•{Ñ#Ô#ð "­
°3½¼Ñ(FÔ(Fð "ð	#ð 	#ð 	#ð "Ð!ð"ð "ð "ð "r:   c                 ór   — t          | t          ¦  «        rt          |t          j        ¦  «        rd„ }|S d S d S )Nc                 ó   — |dz   S )Né{   r9   rã   s     r;   Údummy_getitem_implz2overload_dummy_getitem.<locals>.dummy_getitem_implN  s   € Ø˜‘9Ðr:   rå   )r]   rÀ   rë   s      r;   Úoverload_dummy_getitemrì   J  sR   € å�#•{Ñ#Ô#ð "­
°3½¼Ñ(FÔ(Fð "ð	ð 	ð 	ð "Ð!ð"ð "ð "ð "r:   c                 óº   — t          t          | t          ¦  «        t          |t          j        ¦  «        t          |t          j        ¦  «        g¦  «        rd„ }|S d S )Nc                 ó&   — t          ||¦  «         d S rK   rá   ©r]   rÀ   rM   s      r;   Údummy_setitem_implz2overload_dummy_setitem.<locals>.dummy_setitem_impl^  s   € Ý�#�s‰OŒOˆOˆOˆOr:   )rÄ   rA   r>   r	   ræ   )r]   rÀ   rM   rð   s       r;   Úoverload_dummy_setitemrñ   T  se   € å
å�s�KÑ(Ô(Ý�s�EœMÑ*Ô*Ý�s�EœMÑ*Ô*ð	
ñô ð "ð	ð 	ð 	ð "Ð!ð"ð "r:   c                 ó,   — t          j        | |¦  «        S rK   ©ÚoperatorÚaddr×   s     r;   Úcall_add_operatorrö   d  ó   € ÝŒ<˜˜dÑ#Ô#Ð#r:   c                 ó   — | |z   S rK   r9   r×   s     r;   Úcall_add_binoprù   h  s   € Ø�$‰;Ðr:   c                 ó„   — t          | t          t          f¦  «        r!t          |t          t          f¦  «        rd„ }|S d S d S )Nc                 ó   — dS r‚   r9   r×   s     r;   Údummy_iadd_implz,overload_iadd_dummy.<locals>.dummy_iadd_implr  rÒ   r:   rÛ   )rØ   rÙ   rü   s      r;   Úoverload_iadd_dummyrý   l  s_   € å�$�¥lÐ3Ñ4Ô4ð ½Ø�{�LÐ)ñ:ô :ð ð	ð 	ð 	ð Ððð ð ð r:   c                 ó,   — t          j        | |¦  «        S rK   ró   r×   s     r;   Úcall_iadd_operatorrÿ   x  r÷   r:   c                 ó   — | |z  } | S rK   r9   r×   s     r;   Úcall_iadd_binopr  |  s   € ØˆD�L€Dà€Kr:   c                 ó   — | |= d S rK   r9   rã   s     r;   Úcall_delitemr  ‚  s   € ØˆCˆˆˆr:   c                 ó   — | |         S rK   r9   rã   s     r;   Úcall_getitemr  †  s   € ØˆsŒ8€Or:   c                 ó   — || |<   d S rK   r9   rï   s      r;   Úcall_setitemr  Š  s   € Ø€Cˆ�H€H€Hr:   Úlengthc                 ó   — d„ }|S )Nc                 ó    — t          | ¦  «        S rK   ©ÚlenrÏ   s    r;   Úimpz#overload_method_length.<locals>.imp�  s   € Ý�3‰xŒxˆr:   r9   )rÐ   r  s     r;   Úoverload_method_lengthr  Ž  s   € ðð ð ð €Jr:   c                 ó*   — |                       ¦   «         S rK   )r  rv   s    r;   Úcache_overload_method_usecaser  –  s   € Ø�8Š8‰:Œ:Ðr:   c                  ó   — t          ¦   «         S rK   ©rx   r9   r:   r;   Úcall_func1_nullaryr  š  s   € Ý‰7Œ7€Nr:   c                 ó    — t          | ¦  «        S rK   r  rv   s    r;   Úcall_func1_unaryr  ž  s   € Ý�‰8Œ8€Or:   c                 ó    — t          | ¦  «        S rK   r  rv   s    r;   Úlen_usecaser  ¢  s   € Ýˆq‰6Œ6€Mr:   c                 ó$   — t          | ¦  «         d S rK   rá   rv   s    r;   Úprint_usecaser  ¦  s   € Ý	ˆ!�H„H€H€H€Hr:   c                 ó   — | |         S rK   r9   )rw   r’   s     r;   Úgetitem_usecaser  ª  s   € ØˆSŒ6€Mr:   c                 óN   — t          j        t          j        | ¦  «        ¦  «        S rK   )r£   ÚcosÚsinrv   s    r;   Únpyufunc_usecaser  ®  s   € ÝŒ6•"”&˜‘)”)ÑÔÐr:   c                 ó   — | j         S rK   )Ú_datarv   s    r;   Úget_data_usecaser"  ²  s	   € ØŒ7€Nr:   c                 ó   — | j         S rK   )Ú_indexrv   s    r;   Úget_index_usecaser%  ¶  s	   € ØŒ8€Or:   c                 ó   — | j         S rK   )Úis_monotonic_increasingrv   s    r;   Úis_monotonic_usecaser(  º  s   € ØÔ$Ð$r:   c                 ó"   — t          | |¦  «        S rK   )r2   )ÚdataÚindexs     r;   Úmake_series_usecaser,  ¾  s   € Ý�$˜ÑÔÐr:   c                 ó.   — |                       ||¦  «        S rK   )Úclip)rw   ÚloÚhis      r;   Úclip_usecaser1  Â  s   € Ø�6Š6�"�b‰>Œ>Ðr:   c                  ó   — t           S rK   ©r£   r9   r:   r;   Úreturn_non_boxabler4  É  s   € Ý€Ir:   c                  ó   — d„ } | S )Nc                  ó   — t           S rK   r3  r9   r:   r;   r  z(overload_return_non_boxable.<locals>.impÏ  s   € Ýˆ	r:   r9   )r  s    r;   Úoverload_return_non_boxabler7  Í  s   € ðð ð ð €Jr:   c                 óH   — t          ¦   «         }|                     | ¦  «        S rK   )r4  Úarange)ÚszÚmods     r;   Únon_boxable_ok_usecaser<  Õ  s   € Ý
Ñ
Ô
€CØ�:Š:�b‰>Œ>Ðr:   c                  ó   — t          ¦   «         S rK   )r4  r9   r:   r;   Únon_boxable_bad_usecaser>  Ú  s   € ÝÑÔÐr:   c                 ó   — d S rK   r9   )Úfs    r;   Úmk_func_inputrA  Þ  s   € Ø€Dr:   c                   ó   — e Zd Zd„ ZdS )ÚMkFuncTypingc                 ót   — t          |d         t          j        ¦  «        sJ ‚t          t          j        g|¢R Ž S ©Nr   )rA   r	   ÚMakeFunctionLiteralr,   r|   )rE   r…   Úkwss      r;   ÚgenericzMkFuncTyping.genericä  s7   € Ý˜$˜qœ'¥5Ô#<Ñ=Ô=Ð=Ð=Ð=Ý�œÐ+ dÐ+Ð+Ð+Ð+r:   N)r6   r7   r8   rH  r9   r:   r;   rC  rC  â  s#   € € € € € ð,ð ,ð ,ð ,ð ,r:   rC  c                  ó&   — t          d„ ¦  «         d S )Nc                 ó   — | S rK   r9   ©Úas    r;   ú<lambda>z#mk_func_test_impl.<locals>.<lambda>ê  s   € ˜A€ r:   )rA  r9   r:   r;   Úmk_func_test_implrN  é  s   € Ý�+�+ÑÔÐÐÐr:   c                   ó   — e Zd ZdS )ÚMyClassNr5   r9   r:   r;   rP  rP  ñ  r<   r:   rP  c                   ó0   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚCallableTypeRefc                 ó²   •— || _         i | _        g | _        t          t          | ¦  «                             d                     | j         ¦  «        ¦  «         d S )Nzcallable_type_ref[{}])Úinstance_typeÚsig_to_impl_keyÚcompiled_templatesÚsuperrR  Ú__init__Úformat)rE   rT  Ú	__class__s     €r;   rX  zCallableTypeRef.__init__÷  sa   ø€ Ø*ˆÔØ!ˆÔØ"$ˆÔÝ�o˜tÑ$Ô$×-Ò-ð /5ß5;²V¸DÔ<NÑ5OÔ5Oñ	Qô 	Qð 	Qð 	Qð 	Qr:   c                 ó  — d }|j         t          | ¦  «                 D ]j}	 |                     ||¦  «        }t          |di ¦  «        }||v r,||         | j        |<   | j                             |¦  «          nŒ[# t          $ r Y Œgw xY w|S )NÚ_compiled_overloads)Ú
_functionsÚtypeÚapplyÚgetattrrU  rV  ÚappendÚ	Exception)rE   rF   r…   rG  Úres_sigÚtemplateÚcompiled_ovldss          r;   Úget_call_typezCallableTypeRef.get_call_typeþ  s·   € àˆØÔ*­4°©:¬:Ô6ð 
	ð 
	ˆHð	Ø"Ÿ.š.¨¨sÑ3Ô3�õ ")¨Ð3HÈ"Ñ!MÔ!M�Ø˜>Ð)Ð)Ø4BÀ4Ô4H�DÔ(¨Ñ1ØÔ+×2Ò2°8Ñ<Ô<Ð<Ø�Eð *øõ	 ð ð ð Ø�ðøøøð ˆs    A8Á8
BÂBc                 óV   — t          | j                             ¦   «         ¦  «        }|dfS )NT)ÚlistrU  Úkeys)rE   Úsigss     r;   Úget_call_signaturesz#CallableTypeRef.get_call_signatures  s(   € Ý�DÔ(×-Ò-Ñ/Ô/Ñ0Ô0ˆØ�TˆzÐr:   c                 ó   — | j         |         S rK   )rU  )rE   r„   s     r;   Úget_impl_keyzCallableTypeRef.get_impl_key  s   € ØÔ# CÔ(Ð(r:   )r6   r7   r8   rX  rf  rk  rm  Ú__classcell__©rZ  s   @r;   rR  rR  õ  sj   ø€ € € € € ðQð Qð Qð Qð Qðð ð ð"ð ð ð)ð )ð )ð )ð )ð )ð )r:   rR  c                   ó   — e Zd Zd„ ZdS )ÚCallableTypeModelc                 óH   — t           j                             | ||¦  «         d S rK   )r    rm   rX  )rE   ÚdmmÚfe_types      r;   rX  zCallableTypeModel.__init__  s#   € åÔ×#Ò# D¨#¨wÑ7Ô7Ð7Ð7Ð7r:   N)r6   r7   r8   rX  r9   r:   r;   rq  rq    s#   € € € € € ð8ð 8ð 8ð 8ð 8r:   rq  c                 ó*   — |                       ¦   «         S rK   )rZ   )rF   rS   r­   Úpyvals       r;   Úconstant_callable_typerefrw  "  s   € à×"Ò"Ñ$Ô$Ð$r:   c                 ó:   — t          | t          ¦  «        rd„ }|S d S )Nc                 ó   — dS )Nì   ï>[= r9   ©r]   s    r;   r  zoverload_np_exp.<locals>.imp.  s   € à�:r:   rÓ   ©r]   r  s     r;   Úoverload_np_expr}  *  s4   € å�#•{Ñ#Ô#ð ð	ð 	ð 	ð ˆ
ðð r:   c                   ód   — e Zd ZdZd„ Zej        d„ ¦   «         Zd„ Zej        d„ ¦   «         Z	d„ Z
dS )ÚTestLowLevelExtendingz4
    Test the low-level two-tier extension API.
    c                 ó>  — t           } t          d¬¦  «        |¦  «        }|                       |¦   «         d¦  «         t          } t          d¬¦  «        |¦  «        }|                       |d ¦  «        d¦  «         |                       |d¦  «        d¦  «         d S )NT©ÚnopythonrQ   g      2@g      @)r  r   ÚassertPreciseEqualr  ©rE   ÚpyfuncÚcfuncs      r;   Ú
test_func1z TestLowLevelExtending.test_func1=  sž   € Ý#ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØ×Ò  ¡¤¨Ñ,Ô,Ð,Ý!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØ×Ò   d¡¤¨RÑ0Ô0Ð0Ø×Ò   d¡¤¨SÑ1Ô1Ð1Ð1Ð1r:   c                 ó.   — |                       ¦   «          d S rK   )r‡  ©rE   s    r;   Útest_func1_isolatedz)TestLowLevelExtending.test_func1_isolatedF  s   € à�ŠÑÔÐÐÐr:   c                 óz   — |                       t          t          ¦  «         |                      t          ¦  «         d S rK   )ÚassertIsÚ
type_func1r€   ÚassertIsNotNoner‰  s    r;   Ú!test_type_callable_keeps_functionz7TestLowLevelExtending.test_type_callable_keeps_functionJ  s0   € Ø�Š•j¥+Ñ.Ô.Ð.Ø×Ò�ZÑ(Ô(Ð(Ð(Ð(r:   c                 ó¢   — t           } t          t          j        ¦   «         ¦  «        |¦  «        }|                       |¦   «         d¦  «         d S )Ng      E@)rW   r   r	   Úfloat64rƒ  r„  s      r;   Útest_cast_mydummyz'TestLowLevelExtending.test_cast_mydummyN  sF   € åˆØ&••U”]‘_”_Ñ&Ô& vÑ.Ô.ˆØ×Ò  ¡¤¨Ñ.Ô.Ð.Ð.Ð.r:   c                 ód  — t          j        t          ¦  «        }t          j        }t          j        }|                     ¦   «          |                     ¦   «          t          |||dd¦  «        }|                      t          d„ |j
                             ¦   «         D ¦   «         ¦  «        ¦  «         dS )zFmake sure make_function is passed to typer class as a literal
        r9   Nc              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S rK   )rA   r	   rF  )r¬   rL  s     r;   r®   z=TestLowLevelExtending.test_mk_func_literal.<locals>.<genexpr>_  sC   è è € ð ð àõ ˜1�eÔ7Ñ8Ô8ðð ð ð ð ð r:   )r   Úrun_frontendrN  r   Útyping_contextÚtarget_contextÚrefreshr   Ú
assertTrueÚanyÚtypemapÚvalues)rE   Útest_irÚ	typingctxÚ	targetctxÚ
typing_ress        r;   Útest_mk_func_literalz*TestLowLevelExtending.test_mk_func_literalT  s»   € õ Ô'Õ(9Ñ:Ô:ˆÝÔ-ˆ	ÝÔ-ˆ	Ø×ÒÑÔÐØ×ÒÑÔÐÝ)¨)°YÀÈØ*.ñ0ô 0ˆ
à�ŠÝð ð à#Ô+×2Ò2Ñ4Ô4ðñ ô ñ ô ñ	
ô 	
ð 	
ð 	
ð 	
r:   N)r6   r7   r8   Ú__doc__r‡  r   Úrun_test_in_subprocessrŠ  r�  r’  r¡  r9   r:   r;   r  r  5  s‰   € € € € € ðð ð2ð 2ð 2ð Ô$ðð ñ %Ô$ðð)ð )ð )ð Ô$ð/ð /ñ %Ô$ð/ð

ð 
ð 
ð 
ð 
r:   r  c                   óN   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestPandasLikeze
    Test implementing a pandas-like Index object.
    Also stresses most of the high-level API.
    c                 óÂ   — t          t          j        d¦  «        ¦  «        } t          d¬¦  «        t          ¦  «        }|                       ||¦  «        d¦  «         d S )Né   Tr�  )r1   r£   r9  r   r  rƒ  )rE   r¼   r†  s      r;   Útest_index_lenzTestPandasLike.test_index_lenl  sU   € Ý•"”)˜A‘,”,ÑÔˆØ"•˜TÐ"Ñ"Ô"¥;Ñ/Ô/ˆØ×Ò   a¡¤¨!Ñ,Ô,Ð,Ð,Ð,r:   c                 ó|  — t          t          j        g d¢¦  «        ¦  «        } t          d¬¦  «        t          ¦  «        }|                       ||d¦  «        d¦  «          ||t          dd ¦  «        ¦  «        }|                      |t           ¦  «         |                      t          |¦  «        ddg¦  «         d S )N©rQ   é   éûÿÿÿTr�  r0   r«  r¬  )
r1   r£   r}   r   r  rƒ  ÚsliceÚassertIsInstanceÚassertEqualrh  )rE   r¼   r†  Úiis       r;   Útest_index_getitemz!TestPandasLike.test_index_getitemq  s¬   € Ý•"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆØ"•˜TÐ"Ñ"Ô"¥?Ñ3Ô3ˆØ×Ò   a¨¡¤¨QÑ/Ô/Ð/ØˆU�1•e˜A˜t‘n”nÑ%Ô%ˆØ×Ò˜b¥%Ñ(Ô(Ð(Ø×Ò�˜b™œ A r 7Ñ+Ô+Ð+Ð+Ð+r:   c                 óx  — t          t          j        g d¢¦  «        ¦  «        } t          d¬¦  «        t          ¦  «        } ||¦  «        }|                      |t           ¦  «         t          rdnd}|                      |j        t          j	        t          j
        |j        ¦  «        ¦  «        d|¬¦  «         dS )	z7
        Check Numpy ufunc on an Index object.
        rª  Tr�  é   r0   Údouble©ÚprecÚulpsN)r1   r£   r}   r   r  r®  r   rƒ  r!  r  r  )rE   r¼   r†  r°  r·  s        r;   Útest_index_ufunczTestPandasLike.test_index_ufuncy  s±   € õ •"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆØ"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆØˆU�1‰XŒXˆØ×Ò˜b¥%Ñ(Ô(Ð(Ý.Ð5ˆqˆq°AˆØ×Ò ¤­"¬&µ´¸¼±´Ñ*AÔ*AØ%-°Dð 	 ñ 	:ô 	:ð 	:ð 	:ð 	:r:   c                 óÔ   — t          t          j        g d¢¦  «        ¦  «        } t          d¬¦  «        t          ¦  «        } ||¦  «        }|                      ||j        ¦  «         d S )Nrª  Tr�  )r1   r£   r}   r   r"  rŒ  r!  )rE   r¼   r†  r*  s       r;   Útest_index_get_dataz"TestPandasLike.test_index_get_data…  sa   € å•"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆØ"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆØˆu�Q‰xŒxˆØ�Š�d˜AœGÑ$Ô$Ð$Ð$Ð$r:   c                 óð   —  t          d¬¦  «        t          ¦  «        }g d¢dfg d¢dfg dffD ]G\  }}t          t          j        |¦  «        ¦  «        } ||¦  «        }|                      ||¦  «         ŒHd S )NTr�  )r«  rQ   é   F)r¼  r«  rQ   )r   r(  r1   r£   r}   r¯  )rE   r†  rœ  Úexpectedr¼   Úgots         r;   Útest_index_is_monotonicz&TestPandasLike.test_index_is_monotonicŒ  s�   € ð #•˜TÐ"Ñ"Ô"Õ#7Ñ8Ô8ˆàˆZˆZ˜ÐØˆZˆZ˜ÐØ�ˆJð!
ð 	,ð 	,ÑˆF�Hõ
 •b”h˜vÑ&Ô&Ñ'Ô'ˆAØ�%˜‘(”(ˆCØ×Ò˜S (Ñ+Ô+Ð+Ð+ð	,ð 	,r:   c                 ó  — t          t          j        g d¢¦  «        ¦  «        }t          t          j        g d¢¦  «        |¦  «        } t          d¬¦  «        t          ¦  «        }|                       ||¦  «        d¦  «         d S )N©r‰   r³  r§  ©g      ø?g      @ç      @Tr�  r§  )r1   r£   r}   r2   r‘  r   r  rƒ  )rE   r¼   Úsr†  s       r;   Útest_series_lenzTestPandasLike.test_series_len™  sx   € Ý•"”(˜9˜9˜9Ñ%Ô%Ñ&Ô&ˆÝ•2”:˜o˜o˜oÑ.Ô.°Ñ2Ô2ˆØ"•˜TÐ"Ñ"Ô"¥;Ñ/Ô/ˆØ×Ò   a¡¤¨!Ñ,Ô,Ð,Ð,Ð,r:   c                 ó\  — t          t          j        g d¢¦  «        ¦  «        }t          t          j        g d¢¦  «        |¦  «        } t          d¬¦  «        t          ¦  «        } ||¦  «        }|                      |t           ¦  «         |                      |j	        |j	        ¦  «         d S )NrÁ  rÂ  Tr�  )
r1   r£   r}   r2   r‘  r   r%  r®  rŒ  r!  )rE   r¼   rÄ  r†  r¾  s        r;   Útest_series_get_indexz$TestPandasLike.test_series_get_indexŸ  s–   € Ý•"”(˜9˜9˜9Ñ%Ô%Ñ&Ô&ˆÝ•2”:˜o˜o˜oÑ.Ô.°Ñ2Ô2ˆØ"•˜TÐ"Ñ"Ô"Õ#4Ñ5Ô5ˆØˆe�A‰hŒhˆØ×Ò˜c¥5Ñ)Ô)Ð)Ø�Š�c”i ¤Ñ)Ô)Ð)Ð)Ð)r:   c                 óJ  — t          t          j        g d¢¦  «        ¦  «        }t          t          j        g d¢¦  «        |¦  «        } t          d¬¦  «        t          ¦  «        } ||¦  «        }|                      |t          ¦  «         |                      |j        t           ¦  «         |  	                    |j        j
        |j
        ¦  «         t          rdnd}|                      |j        t          j        t          j        |j        ¦  «        ¦  «        d|¬¦  «         d	S )
z8
        Check Numpy ufunc on an Series object.
        rª  ©r0   r‰   r§  Tr�  r³  r0   r´  rµ  N)r1   r£   r}   r2   Úint64r   r  r®  r$  rŒ  r!  r   rƒ  Ú_valuesr  r  )rE   r¼   rÄ  r†  Ússr·  s         r;   Útest_series_ufuncz TestPandasLike.test_series_ufunc§  s  € õ •"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆÝ•2”8˜I˜I˜IÑ&Ô&¨Ñ*Ô*ˆØ"•˜TÐ"Ñ"Ô"Õ#3Ñ4Ô4ˆØˆU�1‰XŒXˆØ×Ò˜b¥&Ñ)Ô)Ð)Ø×Ò˜bœi­Ñ/Ô/Ð/Ø�Š�b”i”o q¤wÑ/Ô/Ð/Ý.Ð5ˆqˆq°AˆØ×Ò ¤
­B¬Fµ2´6¸!¼)Ñ3DÔ3DÑ,EÔ,EØ%-°Dð 	 ñ 	:ô 	:ð 	:ð 	:ð 	:r:   c                 óÂ  — t          t          j        g d¢¦  «        ¦  «        }t          j        g d¢¦  «        } t	          d¬¦  «        t
          ¦  «        } |||¦  «        }|                      |t          ¦  «         |                      |j        t           ¦  «         |  	                    |j        j
        |j
        ¦  «         |  	                    |j        |¦  «         d S )Nrª  rÂ  Tr�  )r1   r£   r}   r‘  r   r,  r®  r2   r$  rŒ  r!  rË  )rE   r¼   Údr†  r¾  s        r;   Útest_series_constructorz&TestPandasLike.test_series_constructor¶  s¿   € Ý•"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆÝŒJ���Ñ'Ô'ˆØ"•˜TÐ"Ñ"Ô"Õ#6Ñ7Ô7ˆØˆe�A�q‰kŒkˆØ×Ò˜c¥6Ñ*Ô*Ð*Ø×Ò˜cœj­%Ñ0Ô0Ð0Ø�Š�c”jÔ&¨¬Ñ0Ô0Ð0Ø�Š�c”k 1Ñ%Ô%Ð%Ð%Ð%r:   c                 ó  — t          t          j        g d¢¦  «        ¦  «        }t          t          j        g d¢¦  «        |¦  «        } t          d¬¦  «        t          ¦  «        } ||dd¦  «        }|                      |t          ¦  «         |                      |j        t           ¦  «         |  	                    |j        j
        |j
        ¦  «         |                      |j        t          j        g d¢¦  «        ¦  «         d S )Nrª  rÂ  Tr�  çš™™™™™ù?ç      @)rÒ  rÓ  rÃ  )r1   r£   r}   r2   r‘  r   r1  r®  r$  rŒ  r!  rƒ  rË  )rE   r¼   rÄ  r†  rÌ  s        r;   Útest_series_clipzTestPandasLike.test_series_clipÀ  sÛ   € Ý•"”(˜;˜;˜;Ñ'Ô'Ñ(Ô(ˆÝ•2”:˜o˜o˜oÑ.Ô.°Ñ2Ô2ˆØ"•˜TÐ"Ñ"Ô"¥<Ñ0Ô0ˆØˆU�1�c˜3ÑÔˆØ×Ò˜b¥&Ñ)Ô)Ð)Ø×Ò˜bœi­Ñ/Ô/Ð/Ø�Š�b”i”o q¤wÑ/Ô/Ð/Ø×Ò ¤
­B¬J°°°Ñ,GÔ,GÑHÔHÐHÐHÐHr:   N)r6   r7   r8   r¢  r¨  r±  r¸  rº  r¿  rÅ  rÇ  rÍ  rÐ  rÔ  r9   r:   r;   r¥  r¥  f  s¹   € € € € € ðð ð
-ð -ð -ð
,ð ,ð ,ð
:ð 
:ð 
:ð%ð %ð %ð,ð ,ð ,ð-ð -ð -ð*ð *ð *ð:ð :ð :ð&ð &ð &ðIð Ið Ið Ið Ir:   r¥  c                   óŠ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestHighLevelExtendingz+
    Test the high-level combined API.
    c                 ób  ‡ ‡— t           } t          d¬¦  «        |¦  «        Šˆˆ fd„} |ddd¬¦  «          |ddd¦  «          |t          j        g d¢¦  «        t          j        g d¢¦  «        t          j        g d	¢¦  «        ¦  «         ‰                      t          j        ¦  «        5 } ‰t          j        g ¦  «        t          j        g ¦  «        t          j        g ¦  «        ¦  «         d
d
d
¦  «         n# 1 swxY w Y   ‰  	                    dt          |j        ¦  «        ¦  «         d
S )z>
        Test implementing a function with @overload.
        Tr�  c                  ó\   •— t          | i |¤Ž} ‰| i |¤Ž}‰                     ||¦  «         d S rK   )r¤   rƒ  )r…   Úkwargsr½  r¾  r†  rE   s       €€r;   Úcheckz0TestHighLevelExtending.test_where.<locals>.check×  sE   ø€ Ý Ð0¨Ð0Ð0ˆHØ�%˜Ð( Ð(Ð(ˆCØ×#Ò# H¨cÑ2Ô2Ð2Ð2Ð2r:   r§  r«  )rw   rŸ   r    )TFTrÉ  )r³  r¼  r¼  Nr¨   )r¦   r   r£   Úbool_r}   ÚassertRaisesr
   rÃ   rÊ  ÚassertInÚstrÚ	exception)rE   r…  rÚ  Úraisesr†  s   `   @r;   Ú
test_wherez!TestHighLevelExtending.test_whereÐ  s�  øø€ õ ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð
 	ˆ�˜ Ð"Ñ"Ô"Ð"Øˆˆd�A�qÑÔÐØˆÝŒHÐ(Ð(Ð(Ñ)Ô)ÝŒH�Y�Y�YÑÔÝŒH�Y�Y�YÑÔñ	
ô 	
ð 	
ð ×Ò�vÔ1Ñ2Ô2ð 	<°fØˆE•"”(˜2‘,”,¥¤¨¡¤­b¬h°r©l¬lÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<à�ŠØ0µ#°fÔ6FÑ2GÔ2Gñ	
ô 	
ð 	
ð 	
ð 	
s   Â,AC<Ã<D ÄD c                 óÚ   —  t          d¬¦  «        t          ¦  «        }|                       |t          ¦   «         ¦  «        d¦  «         |                       |ddg¦  «        d¦  «         dS )zN
        Test re-implementing len() for a custom type with @overload.
        Tr�  rÎ   r³  r¼  r‰   N)r   r  rƒ  r4   ©rE   r†  s     r;   Útest_lenzTestHighLevelExtending.test_lenë  sj   € ð #•˜TÐ"Ñ"Ô"¥;Ñ/Ô/ˆØ×Ò  ¥g¡i¤iÑ 0Ô 0°"Ñ5Ô5Ð5Ø×Ò   q¨! f¡¤¨qÑ1Ô1Ð1Ð1Ð1r:   c                 ó"  —  t          d¬¦  «        t          ¦  «        }t          ¦   «         5   |t          ¦   «         ¦  «         |                      t
          j                             ¦   «         d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zP
        Test re-implementing print() for a custom type with @overload.
        Tr�  zhello!
N)r   r  r   r4   r¯  ÚsysÚstdoutÚgetvaluerã  s     r;   Ú
test_printz!TestHighLevelExtending.test_printó  sÚ   € ð #•˜TÐ"Ñ"Ô"¥=Ñ1Ô1ˆÝÑÔð 	@ð 	@ØˆE•'‘)”)ÑÔÐØ×Ò�SœZ×0Ò0Ñ2Ô2°JÑ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   ­A
BÂBÂBc                 óf  — t           } t          d¬¦  «        |¦  «        }|                       |dd¦  «        d¦  «         |                       |t          ¦   «         t          ¦   «         ¦  «        d¦  «         |                       |t	          ¦   «         t	          ¦   «         ¦  «        d¦  «         dS ©	zW
        Test re-implementing operator.add() for a custom type with @overload.
        Tr�  r0   r‰   r§  rQ   éT   N)rö   r   rƒ  ÚMyDummy2r4   r„  s      r;   Útest_add_operatorz(TestHighLevelExtending.test_add_operatorü  sŸ   € õ #ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò   a¨¡¤¨QÑ/Ô/Ð/Ø×Ò  ¥h¡j¤jµ(±*´*Ñ =Ô =¸rÑBÔBÐBð 	×Ò  ¥g¡i¤iµ±´Ñ ;Ô ;¸RÑ@Ô@Ð@Ð@Ð@r:   c                 óf  — t           } t          d¬¦  «        |¦  «        }|                       |dd¦  «        d¦  «         |                       |t          ¦   «         t          ¦   «         ¦  «        d¦  «         |                       |t	          ¦   «         t	          ¦   «         ¦  «        d¦  «         dS ©	zY
        Test re-implementing '+' for a custom type via @overload(operator.add).
        Tr�  r0   r‰   r§  rQ   rì  N)rù   r   rƒ  rí  r4   r„  s      r;   Útest_add_binopz%TestHighLevelExtending.test_add_binop
  sŸ   € õ  ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò   a¨¡¤¨QÑ/Ô/Ð/Ø×Ò  ¥h¡j¤jµ(±*´*Ñ =Ô =¸rÑBÔBÐBð 	×Ò  ¥g¡i¤iµ±´Ñ ;Ô ;¸RÑ@Ô@Ð@Ð@Ð@r:   c                 óf  — t           } t          d¬¦  «        |¦  «        }|                       |dd¦  «        d¦  «         |                       |t          ¦   «         t          ¦   «         ¦  «        d¦  «         |                       |t	          ¦   «         t	          ¦   «         ¦  «        d¦  «         dS rë  )rÿ   r   rƒ  rí  r4   r„  s      r;   Útest_iadd_operatorz)TestHighLevelExtending.test_iadd_operator  sŸ   € õ $ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò   a¨¡¤¨QÑ/Ô/Ð/Ø×Ò  ¥h¡j¤jµ(±*´*Ñ =Ô =¸rÑBÔBÐBð 	×Ò  ¥g¡i¤iµ±´Ñ ;Ô ;¸RÑ@Ô@Ð@Ð@Ð@r:   c                 óf  — t           } t          d¬¦  «        |¦  «        }|                       |dd¦  «        d¦  «         |                       |t          ¦   «         t          ¦   «         ¦  «        d¦  «         |                       |t	          ¦   «         t	          ¦   «         ¦  «        d¦  «         dS rð  )r  r   rƒ  rí  r4   r„  s      r;   Útest_iadd_binopz&TestHighLevelExtending.test_iadd_binop&  sŸ   € õ !ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆà×Ò   a¨¡¤¨QÑ/Ô/Ð/Ø×Ò  ¥h¡j¤jµ(±*´*Ñ =Ô =¸rÑBÔBÐBð 	×Ò  ¥g¡i¤iµ±´Ñ ;Ô ;¸RÑ@Ô@Ð@Ð@Ð@r:   c                 óX  — t           } t          d¬¦  «        |¦  «        }t          ¦   «         }d }t          ¦   «         5 }	  ||d¦  «         n# t          $ r}|}Y d }~nd }~ww xY wd d d ¦  «         n# 1 swxY w Y   |�|‚|                      |                     ¦   «         d¦  «         d S )NTr�  éA  zdel hello! 321
)r  r   r4   r   rb  r¯  rè  ©rE   r…  r†  r]   ÚeÚoutÚexcs          r;   Útest_delitemz#TestHighLevelExtending.test_delitem4  s  € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ‰iŒiˆØˆåÑÔð 	 #ðØ��c˜3‘”��øÝð ð ð Ø������øøøøðøøøð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ=ØˆGØ×Ò˜Ÿš™œÐ);Ñ<Ô<Ð<Ð<Ð<s;   ¿A3ÁAÁA3Á
A$ÁAÁA3ÁA$Á$A3Á3A7Á:A7c                 óž   — t           } t          d¬¦  «        |¦  «        }|                       |t          ¦   «         d¦  «        d¦  «         d S )NTr�  r÷  i¼  )r  r   rƒ  r4   r„  s      r;   Útest_getitemz#TestHighLevelExtending.test_getitemD  sM   € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆØ×Ò  ¥g¡i¤i°Ñ 5Ô 5°yÑAÔAÐAÐAÐAr:   c                 óZ  — t           } t          d¬¦  «        |¦  «        }t          ¦   «         }d }t          ¦   «         5 }	  ||dd¦  «         n# t          $ r}|}Y d }~nd }~ww xY wd d d ¦  «         n# 1 swxY w Y   |�|‚|                      |                     ¦   «         d¦  «         d S )NTr�  r÷  rê   z321 123
)r  r   r4   r   rb  r¯  rè  rø  s          r;   Útest_setitemz#TestHighLevelExtending.test_setitemI  s  € ÝˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ‰iŒiˆØˆåÑÔð 	 #ðØ��c˜3 Ñ$Ô$Ð$Ð$øÝð ð ð Ø������øøøøðøøøð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ=ØˆGØ×Ò˜Ÿš™œ¨Ñ5Ô5Ð5Ð5Ð5s;   ¿A4ÁAÁA4Á
A%ÁA ÁA4Á A%Á%A4Á4A8Á;A8c                 óÆ  —  t          d¬¦  «        t          ¦  «        }d} ||¦  «        }t          |¦  «        }t          j                             ||¦  «          t          d¬¦  «        t
          ¦  «        }|                      t          ¦  «        5 } |¦   «          ddd¦  «         n# 1 swxY w Y   t          |j	        ¦  «        }d}|  
                    ||¦  «         dS )zW
        Test overloading whose return value cannot be represented in CPython.
        Tr�  é
   Nzcannot convert native Module)r   r<  r£   ÚtestingÚassert_equalr>  rÜ  Ú	TypeErrorrÞ  rß  rÝ  )	rE   Úok_cfuncÚnr¾  ÚexpectÚ	bad_cfuncrà  ÚerrmsgÚ	expectmsgs	            r;   Útest_no_cpython_wrapperz.TestHighLevelExtending.test_no_cpython_wrapperY  s  € ð &•3 Ð%Ñ%Ô%Õ&<Ñ=Ô=ˆØˆØˆh�q‰kŒkˆÝ'¨Ñ*Ô*ˆÝ
Œ
×Ò ¨Ñ,Ô,Ð,à&•C Ð&Ñ&Ô&Õ'>Ñ?Ô?ˆ	Ø×Ò�yÑ)Ô)ð 	¨VØˆI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�VÔ%Ñ&Ô&ˆØ2ˆ	Ø�Š�i Ñ(Ô(Ð(Ð(Ð(s   ÂB*Â*B.Â1B.c                 ó¢  — dd„}d}d d„}|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d
|¦  «         |                      d|¦  «         |                      d|¦  «         dd„}|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|¦  «         |                      d|¦  «         dd„}|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|v ¦  «         |                      d|¦  «         |                      d|¦  «         ddlm}m	}	 |                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|v ¦  «         |                      d|¦  «         |                       t          j        ¦  «        5 }  ||	¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|v ¦  «         |                      d|¦  «         |                      d|¦  «         dd„}
|                       t          j        ¦  «        5 }  ||
¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|v ¦  «         |                      d|¦  «         |                      d|¦  «         dd„}|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|v ¦  «         |                      d|¦  «         d!d„}|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|¦  «         d„ }|                       t          j        ¦  «        5 }  ||¦  «        dddd	¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      ||¦  «         |                      d|¦  «         |                      d|¦  «         dS )"z}
        Tests that an overload which has a differing typing and implementing
        signature raises an exception.
        Nc                 ó~   ‡ ‡— dd„Št          ‰¦  «        dˆ fd„	¦   «         }t          d¬¦  «        ˆfd„¦   «         }|S )Nc                 ó   — d S rK   r9   ©rL  ÚbrN   Úkws       r;   Ú
myoverloadzjTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.myoverloads  ó   € Ø�r:   c                 ó   •— ‰S rK   r9   )rL  r  rN   r  Úimpls       €r;   Ú_myoverload_implzpTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>._myoverload_implv  s   ø€ à�r:   Tr�  c                 ó&   •—  ‰| |||¬¦  «         d S )N©r  r9   )rL  r  rN   rÏ  r  s       €r;   ÚfoozcTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_ol.<locals>.fooz  s"   ø€ à�
˜1˜a  qÐ)Ñ)Ô)Ð)Ð)Ð)r:   rK   ©r   r   )r  r  r  r  s   `  @r;   Úgen_olzVTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.gen_olr  sƒ   øø€ ðð ð ð õ �jÑ!Ô!ðð ð ð ð ñ "Ô!ðõ ˜$ÐÑÔð*ð *ð *ð *ñ  Ôð*ð ˆJr:   z-Typing and implementation arguments differ iné   c                 ó   — | dk    rdS dS ©Nr  r0   éÿÿÿÿr9   r  s       r;   Úimpl1zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl1ƒ  ó   € Ø�2ŠvˆvØ�qà�rr:   r0   r‰   r§  r³  zkeyword argument default valuesz<Parameter "kw=12">z<Parameter "kw=None">c                 ó   — | dk    rdS dS r  r9   )rL  r  rN   Úkwargs       r;   Úimpl2zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl2’  r"  r:   zkeyword argument namesz<Parameter "kwarg=None">c                 ó    — t           dk    rdS dS r  rK  )Úzr  rN   r  s       r;   Úimpl3zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl3¡  s   € Ý�2ŠvˆvØ�qà�rr:   zargument namesÚkeywordz<Parameter "a">z<Parameter "z">)Úimpl4Úimpl5zFirst difference: 'z'c                 ó   — | dk    rdS dS r  r9   )rL  r  rN   rÏ  rù  r  s         r;   Úimpl6zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl6Ä  r"  r:   z<Parameter "d">z<Parameter "e">c                 ó   — | dk    rdS dS r  r9   )rL  r  r  s      r;   Úimpl7zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl7Ô  r"  r:   z<Parameter "c">c                 ó   — | dk    rdS dS r  r9   )rL  r  rN   r  Úextra_kwargs        r;   Úimpl8zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl8ã  r"  r:   z<Parameter "extra_kwarg=None">c                 ó   — | dk    rdS dS r  r9   )rL  r  rN   s      r;   Úimpl9zUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling.<locals>.impl9ñ  r"  r:   rK   )r  )NN)
rÜ  r
   rÃ   rÞ  rß  rÝ  ÚassertFalseÚoverload_usecasesr*  r+  )rE   r  Úsentinelr!  rù  Úmsgr%  r(  r*  r+  r-  r/  r2  r4  s                 r;   Ú/test_typing_vs_impl_signature_mismatch_handlingzFTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handlingl  s+	  € ð	ð 	ð 	ð 	ð Cˆð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ7¸Ñ=Ô=Ð=Ø�ŠÐ+¨SÑ1Ô1Ð1Ø�ŠÐ-¨sÑ3Ô3Ð3ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ.°Ñ4Ô4Ð4Ø�ŠÐ0°#Ñ6Ô6Ð6Ø�ŠÐ-¨sÑ3Ô3Ð3ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ&¨Ñ,Ô,Ð,Ø×Ò˜ cÐ)Ñ*Ô*Ð*Ø�ŠÐ'¨Ñ-Ô-Ð-Ø�ŠÐ'¨Ñ-Ô-Ð-à3Ð3Ð3Ð3Ð3Ð3Ð3Ð3à×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ&¨Ñ,Ô,Ð,Ø×Ò˜ cÐ)Ñ*Ô*Ð*Ø�ŠÐ-¨sÑ3Ô3Ð3à×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ&¨Ñ,Ô,Ð,Ø×Ò˜ cÐ)Ñ*Ô*Ð*Ø�ŠÐ'¨Ñ-Ô-Ð-Ø�ŠÐ'¨Ñ-Ô-Ð-ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ&¨Ñ,Ô,Ð,Ø×Ò˜ cÐ)Ñ*Ô*Ð*Ø�ŠÐ'¨Ñ-Ô-Ð-Ø�ŠÐ'¨Ñ-Ô-Ð-ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ&¨Ñ,Ô,Ð,Ø×Ò˜ cÐ)Ñ*Ô*Ð*Ø�ŠÐ'¨Ñ-Ô-Ð-ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ.°Ñ4Ô4Ð4Ø�ŠÐ6¸Ñ<Ô<Ð<ð	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	&°aØˆFˆF�5‰MŒM˜!˜Q  1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å�!”+ÑÔˆØ�Š�h Ñ$Ô$Ð$Ø�ŠÐ.°Ñ4Ô4Ð4Ø�ŠÐ-¨sÑ3Ô3Ð3Ð3Ð3s¡   ªAÁAÁAÃ(DÄDÄDÆ&G
Ç
GÇGÉ?J#Ê#J'Ê*J'Ì:MÍM"Í%M"ÐP3Ð3P7Ð:P7Ó$TÔTÔTÖ#W×W×WÙ
Y.Ù.Y2Ù5Y2c                 óˆ  ‡— dd„Šddl m}  t          ‰¦  «        |¦  «         t          d¬¦  «        ˆfd„¦   «         }|                      t
          j        ¦  «        5 } |dd¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|  	                    d	|¦  «         |  	                    d
|¦  «         dS )z¦
        Tests that an overload which has a differing typing and implementing
        signature raises an exception and uses VAR_POSITIONAL (*args) in typing
        Nc                 ó   — d S rK   r9   ©rL  r  s     r;   r  ziTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.myoverload  ó   € ØˆDr:   r0   )Úvar_positional_implTr�  c                 ó"   •—  ‰| |dd¬¦  «        S )Né	   é   r  r9   ©rL  r  r  s     €r;   r  zbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positional.<locals>.foo  s   ø€ à�:˜a  A¨"Ð-Ñ-Ô-Ð-r:   r¼  z)VAR_POSITIONAL (e.g. *args) argument kindz-offending argument name is '*star_args_token'rK   )
r6  r>  r   r   rÜ  r
   rÃ   rÞ  rß  rÝ  )rE   r>  r  rù  r8  r  s        @r;   Ú>test_typing_vs_impl_signature_mismatch_handling_var_positionalzUTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_positionalþ  s,  ø€ ð	ð 	ð 	ð 	ð 	;Ð:Ð:Ð:Ð:Ð:à��ÑÔÐ0Ñ1Ô1Ð1å	�dÐ	Ñ	Ô	ð	.ð 	.ð 	.ð 	.ñ 
Ô	ð	.ð ×Ò�vÔ1Ñ2Ô2ð 	°aØˆC��1‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�!”+ÑÔˆØ�ŠÐAÀ3ÑGÔGÐGØ�ŠÐEÀsÑKÔKÐKÐKÐKs   ÁA7Á7A;Á>A;c                 óx  — dd„}d„ }  ||d¦  «        dd¦  «         |                       t          j        ¦  «        5 }  ||¦  «        dd¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         |                      d	|¦  «         dd„}|                       t          j        ¦  «        5 }  ||¦  «        dd¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }|                      d|¦  «         |                      d	|¦  «         dS )zJ
        Tests that an overload which uses **kwargs (VAR_KEYWORD)
        Tc                 óz   ‡— dd„Š t          ‰|¬¦  «        | ¦  «         t          d¬¦  «        ˆfd„¦   «         }|S )Nc                 ó   — d S rK   r9   r<  s     r;   r  zvTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.myoverload  r  r:   ©ÚstrictTr�  c                 ó   •—  ‰| d¬¦  «        S )NrA  r  r9   rB  s     €r;   r  zoTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol.<locals>.foo   s   ø€ à!�z !¨Ð+Ñ+Ô+Ð+r:   rK   r  )r  rH  r  r  s      @r;   r  zbTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.gen_ol  sl   ø€ ðð ð ð ð 0�H�Z¨Ð/Ñ/Ô/°Ñ5Ô5Ð5å˜$ÐÑÔð,ð ,ð ,ð ,ñ  Ôð,ð ˆJr:   c                 ó   — dd„}|S )Nr  c                 ó   — | S rK   r9   r<  s     r;   r  zmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1.<locals>.impl(  ó   € Ø�r:   ©r  r9   )rL  rG  r  s      r;   Úol1z_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol1'  s   € ðð ð ð ð ˆKr:   Fr0   r‰   Nz1use of VAR_KEYWORD (e.g. **kwargs) is unsupportedz"offending argument name is '**kws'r   c                 ó   — d„ }|S )Nc                 ó   — | S rK   r9   )rL  rG  s     r;   r  zmTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol2.<locals>.impl6  rL  r:   r9   )rL  r  r  s      r;   Úol2z_TestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword.<locals>.ol25  s   € ðð ð ð ˆKr:   )T)r   )rÜ  r
   rÃ   rÞ  rß  rÝ  )rE   r  rN  rù  r8  rQ  s         r;   Ú;test_typing_vs_impl_signature_mismatch_handling_var_keywordzRTestHighLevelExtending.test_typing_vs_impl_signature_mismatch_handling_var_keyword  sÙ  € ð

	ð 
	ð 
	ð 
	ð	ð 	ð 	ð 	ˆˆˆs�EÑÔ˜1˜aÑ Ô Ð Ø×Ò�vÔ1Ñ2Ô2ð 	°aØˆFˆF�3‰KŒK˜˜1ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�!”+ÑÔˆØ�ŠÐIÈ3ÑOÔOÐOØ�ŠÐ:¸CÑ@Ô@Ð@ð	ð 	ð 	ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	°aØˆFˆF�3‰KŒK˜˜1ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å�!”+ÑÔˆØ�ŠÐIÈ3ÑOÔOÐOØ�ŠÐ:¸CÑ@Ô@Ð@Ð@Ð@s#   ½AÁA#Á&A#ÃC/Ã/C3Ã6C3c                 óÔ   — t          t          j        d¦  «        dd„¦   «         }t          d„ ¦   «         }t	          j        d¦  «        }|                       ||¦  «        d¦  «         d S )Nr  r  c                 ó   — dd„}|S )Nr  c                 ó   — |S rK   r9   )rÊ   Úa_kwargs     r;   r  zQTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimpl.<locals>.implE  s   € Ø�r:   rM  r9   )rÊ   rV  r  s      r;   ÚfooimplzCTestHighLevelExtending.test_overload_method_kwargs.<locals>.fooimplC  s   € ðð ð ð ð ˆKr:   c                 ó~   — |                       ¦   «         |                       d¦  «        |                       d¬¦  «        fS )Né   é   )rV  )r  ©ÚAs    r;   Úbarz?TestHighLevelExtending.test_overload_method_kwargs.<locals>.barJ  s/   € à—5’5‘7”7˜AŸEšE "™IœI q§u¢u°R uÑ'8Ô'8Ð8Ð8r:   r¼  )r  rY  rZ  rM  )r   r	   rÁ   r   r£   r9  r¯  )rE   rW  r]  ÚZs       r;   Útest_overload_method_kwargsz2TestHighLevelExtending.test_overload_method_kwargsA  s{   € å	�œ eÑ	,Ô	,ð	ð 	ð 	ñ 
-Ô	,ð	õ 
ð	9ð 	9ñ 
Œð	9õ ŒI�a‰LŒLˆà×Ò˜˜˜Q™œ Ñ.Ô.Ð.Ð.Ð.r:   c                 óè   — t          t          j        d¦  «        d„ ¦   «         }t          d„ ¦   «         }t	          j        d¦  «        } ||¦  «         |                       ||¦  «        d¦  «         d S )NÚlitfooc                 ó|   — t          |t          j        ¦  «        rt          |t          j        ¦  «        sd„ }|S d S d S )Nc                 ó   — |S rK   r9   )rÊ   rM   s     r;   r  zXTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfoo.<locals>.impl[  s   € Ø"˜
r:   )rA   r	   ræ   ÚLiteral)rÊ   rM   r  s      r;   ra  zJTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.litfooT  sV   € õ ˜#�uœ}Ñ-Ô-ð  å! #¥u¤}Ñ5Ô5ð  ð#ð #ð #ð  �Kð ð  ð ð  r:   c                 ó,   — |                       d¦  «        S ©NéþÊ  )ra  r[  s    r;   r]  zGTestHighLevelExtending.test_overload_method_literal_unpack.<locals>.bar`  s   € à—8’8˜FÑ#Ô#Ð#r:   r0   rg  )r   r	   rÁ   r   r£   Úzerosr¯  )rE   ra  r]  r\  s       r;   Ú#test_overload_method_literal_unpackz:TestHighLevelExtending.test_overload_method_literal_unpackR  sƒ   € å	�œ hÑ	/Ô	/ð		 ð 		 ñ 
0Ô	/ð		 õ 
ð	$ð 	$ñ 
Œð	$õ ŒH�Q‰KŒKˆØˆˆA‰ŒˆØ×Ò˜˜˜Q™œ Ñ(Ô(Ð(Ð(Ð(r:   c                 ób   — t           d„ ¦   «         }|                       |¦   «         d¦  «         d S )Nc                  ó4   — t          j        t          ¦  «        S rK   )r£   ÚexprI   r9   r:   r;   Útestz8TestHighLevelExtending.test_overload_ufunc.<locals>.testl  s   € å”6�'‘?”?Ð"r:   rz  )r   r¯  )rE   rm  s     r;   Útest_overload_ufuncz*TestHighLevelExtending.test_overload_ufunch  sA   € õ 
ð	#ð 	#ñ 
Œð	#ð 	×Ò˜˜™œ Ñ,Ô,Ð,Ð,Ð,r:   c           	      ót  — t          t          d¦  «        d„ ¦   «         }t          d„ ¦   «         }t          ¦   «         }|                       ||dd¦  «        d¦  «         |                       ||ddd¦  «        d¦  «         |                       ||dddd	¦  «        d
¦  «         t          d„ ¦   «         }|                       ||¦  «        d¦  «         |                       ||ddd¦  «        d¦  «         |                       ||ddd¦  «        d¦  «         |                       ||ddd¦  «        d¦  «         d S )NÚmethod_starargc                 ó   — d„ }|S )Nc                 ó   — |||fS rK   r9   )r]   rM   Úval2r…   s       r;   Úgetz\TestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_stararg.<locals>.getu  s   € Ø˜T 4Ð(Ð(r:   r9   )r]   rM   rs  r…   rt  s        r;   Ú_ov_method_starargzOTestHighLevelExtending.test_overload_method_stararg.<locals>._ov_method_starargs  s   € ð)ð )ð )ð ˆJr:   c                 ó   —  | j         |Ž S rK   ©rp  )r]   r…   s     r;   r  z@TestHighLevelExtending.test_overload_method_stararg.<locals>.fooz  s   € ð &�3Ô% tÐ,Ð,r:   r0   r‰   ©r0   r‰   r9   r§  ©r0   r‰   ©r§  r³  ©r0   r‰   ©r§  r³  c                 óŠ   — |                       dd¦  «        |                       ddd¦  «        |                       dddd¦  «        fS )Nr0   r‰   r§  r³  rw  r{  s    r;   r]  z@TestHighLevelExtending.test_overload_method_stararg.<locals>.bar„  sM   € ð ×"Ò" 1 aÑ(Ô(Ø×"Ò" 1 a¨Ñ+Ô+Ø×"Ò" 1 a¨¨AÑ.Ô.ðð r:   )rx  ry  r{  rz  )r0   r‰   )rz  r|  )r0   r‰   )r|  ©r§  )r³  r¼  )r0   r‰   )r~  ©r   r>   r   r4   r¯  )rE   ru  r  r]   r]  s        r;   Útest_overload_method_starargz3TestHighLevelExtending.test_overload_method_starargr  s—  € Ý	�Ð&6Ñ	7Ô	7ð	ð 	ñ 
8Ô	7ð	õ 
ð	-ð 	-ñ 
Œð	-õ ‰iŒiˆØ×Ò˜˜˜S ! Q™œ¨Ñ4Ô4Ð4Ø×Ò˜˜˜S ! Q¨Ñ*Ô*¨LÑ9Ô9Ð9Ø×Ò˜˜˜S ! Q¨¨1Ñ-Ô-¨~Ñ>Ô>Ð>å	ð	ð 	ñ 
Œð	ð 	×ÒØˆC�‰HŒHÐ@ñ	
ô 	
ð 	
ð 	×ÒØˆC��Q˜˜4Ñ Ô  /ñ	
ô 	
ð 	
ð 	×ÒØˆC��Q˜˜6Ñ"Ô"Ð$5ñ	
ô 	
ð 	
ð 	×ÒØˆC��Q˜˜;Ñ'Ô'Ð)?ñ	
ô 	
ð 	
ð 	
ð 	
r:   c                 óè  ‡—  G d„ dt           j        ¦  «        Št          ‰d¦  «        d„ ¦   «         }t          ˆfd„¦   «         }d}|                       ||¦  «        t          j        |¦  «        ¦  «         t          d„ ¦   «         }|                      t          j	        ¦  «        5 } ||¦  «         d d d ¦  «         n# 1 swxY w Y   |  
                    dt          |j        ¦  «        ¦  «         d S )	Nc                   ó   — e Zd ZdS )úATestHighLevelExtending.test_overload_classmethod.<locals>.MyArrayNr5   r9   r:   r;   ÚMyArrayrƒ  Ÿ  s   € € € € € ØˆDr:   r„  Úarray_allocc                 ó   — d„ }|S )Nc                 ó.   — t          j        |¦  «        }|S rK   ©r£   r9  )ÚclsÚnitemsrÊ   s      r;   r  zVTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc.<locals>.impl¤  s   € Ý”i Ñ'Ô'�Ø�
r:   r9   )r‰  rŠ  r  s      r;   Úol_array_alloczHTestHighLevelExtending.test_overload_classmethod.<locals>.ol_array_alloc¢  s   € ðð ð ð ˆKr:   c                 ó.   •— ‰                      | ¦  «        S rK   )r…  )rŠ  r„  s    €r;   r  z=TestHighLevelExtending.test_overload_classmethod.<locals>.foo©  s   ø€ à×&Ò& vÑ.Ô.Ð.r:   rÎ   c                 ó@   — t           j                             | ¦  «        S rK   )r	   rÁ   r…  )rŠ  s    r;   Úno_classmethod_in_basezPTestHighLevelExtending.test_overload_classmethod.<locals>.no_classmethod_in_base²  s   € å”;×*Ò*¨6Ñ2Ô2Ð2r:   z"Unknown attribute 'array_alloc' of)r	   rÁ   r*   r   rƒ  r£   r9  rÜ  r
   rÃ   rÝ  rÞ  rß  )rE   r‹  r  rŠ  rŽ  rà  r„  s         @r;   Útest_overload_classmethodz0TestHighLevelExtending.test_overload_classmethod�  sq  ø€ ð	ð 	ð 	ð 	ð 	•e”kñ 	ô 	ð 	õ 
˜g }Ñ	5Ô	5ð	ð 	ñ 
6Ô	5ð	õ 
ð	/ð 	/ð 	/ð 	/ñ 
Œð	/ð ˆØ×Ò   F¡¤­R¬Y°vÑ->Ô->Ñ?Ô?Ð?õ 
ð	3ð 	3ñ 
Œð	3ð ×Ò�vÔ1Ñ2Ô2ð 	+°fØ"Ð" 6Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+à�ŠØ0Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
s   Â'B?Â?CÃCc                 óü   — t          t          ¦  «        d„ ¦   «         }t          t          ¦  «        d„ ¦   «         }t          d„ ¦   «         }d}d|d         z   d|d         z   f}|                       ||Ž |¦  «         d S )	Nc                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 ó   — d| z   S )Nç     @E@r9   rv   s    r;   r  zeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1.<locals>.implÂ  s   € Ø !™8�Or:   )rA   r	   ræ   ©rw   r  s     r;   Úcallable_type_call_ovld1zWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld1¿  s4   € å˜!�Uœ]Ñ+Ô+ð ð$ð $ð $à�ðð r:   c                 óD   — t          | t          j        ¦  «        rd„ }|S d S )Nc                 ó   — d| z   S )Nú42.5r9   rv   s    r;   r  zeTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2.<locals>.implÉ  s   € Ø! A™:Ð%r:   )rA   r	   ÚUnicodeTyper”  s     r;   Úcallable_type_call_ovld2zWTestHighLevelExtending.test_overload_callable_typeref.<locals>.callable_type_call_ovld2Æ  s7   € å˜!�UÔ.Ñ/Ô/ð ð&ð &ð &ð �ð	ð r:   c                 ó>   — t          | ¦  «        t          |¦  «        fS rK   )rP  ©rL  r  s     r;   r  zBTestHighLevelExtending.test_overload_callable_typeref.<locals>.fooÎ  s   € å˜1‘:”:�w q™zœzÐ)Ð)r:   )r³  Ú4r“  r   r˜  r0   )r   rR  r   rƒ  )rE   r•  rš  r  r…   r½  s         r;   Útest_overload_callable_typerefz5TestHighLevelExtending.test_overload_callable_typeref½  s§   € å	•/Ñ	"Ô	"ð	ð 	ñ 
#Ô	"ð	õ 
•/Ñ	"Ô	"ð	ð 	ñ 
#Ô	"ð	õ 
ð	*ð 	*ñ 
Œð	*ð ˆØ˜4 œ7‘N F¨T°!¬WÑ$4Ð5ˆØ×Ò   T 
¨HÑ5Ô5Ð5Ð5Ð5r:   N)r6   r7   r8   r¢  rá  rä  ré  rî  rñ  ró  rõ  rü  rþ  r   r  r9  rC  rR  r_  ri  rn  r€  r�  rž  r9   r:   r;   rÖ  rÖ  Ë  si  € € € € € ðð ð
ð 
ð 
ð62ð 2ð 2ð@ð @ð @ðAð Að AðAð Að AðAð Að AðAð Að Að=ð =ð =ð Bð Bð Bð
6ð 6ð 6ð )ð )ð )ð&P4ð P4ð P4ðdLð Lð Lð.*Að *Að *AðX/ð /ð /ð")ð )ð )ð,-ð -ð -ð)
ð )
ð )
ðV
ð 
ð 
ð@6ð 6ð 6ð 6ð 6r:   rÖ  c                 óº   — | j         | j        d                  }||k    rt          d¦  «        ‚| j        | j        d                  }||k    rt          d¦  «        ‚d S )Nr   zcache not used)Ú_cache_hitsÚ
signaturesÚAssertionErrorÚ_cache_misses)r†  Ú
expect_hitÚexpect_missesÚhitÚmisss        r;   Ú_assert_cache_statsr¨  ×  sh   € Ø
Ô
˜EÔ,¨QÔ/Ô
0€CØ
ˆjÒÐÝÐ-Ñ.Ô.Ð.ØÔ˜uÔ/°Ô2Ô3€DØˆ}ÒÐÝÐ-Ñ.Ô.Ð.ð Ðr:   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestOverloadMethodCachingFc                 óÆ   — t          | j        j        ¦  «        | _        t	          d| j        ¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NÚ	CACHE_DIR)r   rZ  r6   Ú
_cache_dirr   Úrun_caching_overload_methodr‰  s    r;   Útest_caching_overload_methodz6TestOverloadMethodCaching.test_caching_overload_methodæ  sž   € Ý(¨¬Ô)@ÑAÔAˆŒÝ˜[¨$¬/Ñ:Ô:ð 	/ð 	/Ø×,Ò,Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   ´AÁAÁAc                 ó\  —  t          dd¬¦  «        t          ¦  «        }|                       |t          ¦   «         ¦  «        d¦  «         t	          |dd¦  «         |                     t          f¦  «        }d„ |                     ¦   «         D ¦   «         }|                      t          |¦  «        d¦  «         	 t          j        d¦  «        }n# t          $ r
 t          }Y nw xY w|                     ¦   «         }|                     t          || j        f¬¦  «        }|                     ¦   «          |                     t          ¦   «         ¦  «         |                     ¦   «          |                      |j        d¦  «         |                     d¬	¦  «        }|                      |d¦  «         d S )
NT©r‚  ÚcacherÎ   r   r0   c                 óD   — g | ]}|                      d ¦  «        rd|v ¯|‘ŒS )Údeclarer  )Ú
startswith)r¬   Úlns     r;   ú
<listcomp>zITestOverloadMethodCaching.run_caching_overload_method.<locals>.<listcomp>ñ  sD   € ð 
ð 
ð 
àØ�}Š}˜YÑ'Ô'ð
ð -EÈÐ,JÐ,Jð à,JÐ,JÐ,Jr:   Úspawn)Útargetr…   )Útimeout)r   r  rƒ  r4   r¨  Úinspect_llvmrL   Ú
splitlinesr¯  r  ÚmultiprocessingÚget_contextÚAttributeErrorÚQueueÚProcessr®  r­  ÚstartÚputÚjoinÚexitcodert  )rE   r†  ÚllvmirÚdeclsÚctxÚqÚpr·   s           r;   r®  z5TestOverloadMethodCaching.run_caching_overload_methodë  s—  € Ø.•˜T¨Ð.Ñ.Ô.Õ/LÑMÔMˆØ×Ò  ¥g¡i¤iÑ 0Ô 0°"Ñ5Ô5Ð5Ý˜E 1 aÑ(Ô(Ð(Ø×#Ò#¥\ OÑ4Ô4ˆð
ð 
à×'Ò'Ñ)Ô)ð
ñ 
ô 
ˆð
 	×Ò�˜U™œ QÑ'Ô'Ð'ð	"Ý!Ô-¨gÑ6Ô6ˆCˆCøÝð 	"ð 	"ð 	"Ý!ˆCˆCˆCð	"øøøà�IŠI‰KŒKˆØ�KŠKÝ.°a¸¼Ð5Ið ñ 
ô 
ˆð 	
�Š‰	Œ	ˆ	Ø	�Š�g‰iŒiÑÔÐØ	�Š‰Œˆà×Ò˜œ QÑ'Ô'Ð'Ø�eŠe˜AˆeÑÔˆØ×Ò˜˜bÑ!Ô!Ð!Ð!Ð!s   Â9C ÃC"Ã!C"N)r6   r7   r8   Ú_numba_parallel_test_r¯  r®  r9   r:   r;   rª  rª  à  s:   € € € € € ð "Ðð/ð /ð /ð
"ð "ð "ð "ð "r:   rª  c                 ó   — t          d|¦  «        5  |                      ¦   «         } t          dd¬¦  «        t          ¦  «        } ||¦  «        }|                      |¦  «         t          |dd¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zH
    Used by TestOverloadMethodCaching.test_caching_overload_method
    r¬  Tr±  r0   r   N)r   rt  r   r  rÃ  r¨  )rÉ  Ú	cache_dirrÐ   r†  r·   s        r;   r®  r®  	  sÐ   € õ 
˜ iÑ	0Ô	0ð )ð )Ø�eŠe‰gŒgˆØ.•˜T¨Ð.Ñ.Ô.Õ/LÑMÔMˆØˆe�C‰jŒjˆØ	�Šˆc‰
Œ
ˆ
å˜E 1 aÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ‘A%BÂBÂ
Bc                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIntrinsicc                 óª  ‡‡— t           d„ ¦   «         Št           d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }t          d¬¦  «        ˆfd„¦   «         }|                       |¦   «         d¦  «         |                      t          ¦  «        5 } |¦   «          ddd¦  «         n# 1 swxY w Y   |                      d	|j        j        ¦  «         dS )
z”
        Verify that returning a None from codegen function is handled
        automatically for void functions, otherwise raise exception.
        c                 óL   — t          j        t           j        ¦  «        }d„ }||fS )Nc                 ó   — d S rK   r9   ©rF   rS   r,   r…   s       r;   ÚcodegenzBTestIntrinsic.test_void_return.<locals>.void_func.<locals>.codegen!  r  r:   ©r	   Úvoidr}   ©rž  rL  r„   rÔ  s       r;   Ú	void_funcz1TestIntrinsic.test_void_return.<locals>.void_func  s.   € å”*�Uœ[Ñ)Ô)ˆCðð ð ð ˜�<Ðr:   c                 óL   — t          j        t           j        ¦  «        }d„ }||fS )Nc                 ó   — d S rK   r9   rÓ  s       r;   rÔ  zFTestIntrinsic.test_void_return.<locals>.non_void_func.<locals>.codegen+  r  r:   )r	   r}   r×  s       r;   Únon_void_funcz5TestIntrinsic.test_void_return.<locals>.non_void_func'  s.   € å”+�eœkÑ*Ô*ˆCðð ð ð ˜�<Ðr:   Tr�  c                  ó   •—  ‰ d¦  «         dS ©Nr0   r   r9   )rØ  s   €r;   Úcall_void_funcz6TestIntrinsic.test_void_return.<locals>.call_void_func0  s   ø€ àˆI�a‰LŒLˆLØ�1r:   c                  ó   •—  ‰ d¦  «         dS rÝ  r9   )rÛ  s   €r;   Úcall_non_void_funcz:TestIntrinsic.test_void_return.<locals>.call_non_void_func5  s   ø€ àˆM˜!ÑÔÐØ�1r:   r   Nznon-void function returns None)r%   r   r¯  rÜ  r   rÝ  rß  r8  )rE   rÞ  rà  rù  rÛ  rØ  s       @@r;   Útest_void_returnzTestIntrinsic.test_void_return  sP  øø€ õ 
ð	 ð 	 ñ 
Œð	 õ 
ð	 ð 	 ñ 
Œð	 õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð
 	×Ò˜˜Ñ)Ô)¨1Ñ-Ô-Ð-à×Ò�}Ñ-Ô-ð 	!°ØÐÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!à�ŠÐ6¸¼¼ÑHÔHÐHÐHÐHs   ÂB(Â(B,Â/B,c                 ót  ‡ ‡‡‡— ddl m}m}m}m} ˆ fd„Šd„ Št          ‰d¬¦  «        ˆfd„¦   «         }d„ } |d	 ||¦  «        |¦  «        } ||¦  «        Št          d
¬¦  «        ˆˆfd„¦   «         }t          j        dt          j	        ¬¦  «        }	t          ¦   «         5 }
 ||	¦  «         |
                     ¦   «                              ¦   «         }d	d	d	¦  «         n# 1 swxY w Y   |
                     ¦   «          t          t          t           |	¦  «        ¦  «        }‰                      ||¦  «         d	S )zV
        Usecase test: custom reinterpret cast to turn int values to pointers
        r   )Ú	CFUNCTYPEÚPOINTERÚc_floatÚc_intc                 óh   •‡ — t          ‰ t          j        ¦  «        sJ ‚t          ˆ ˆfd„¦   «         }|S )Nc                 ó´   •— ‰                      | t          j        ¦  «         t          |t          j        ¦  «        r ‰t          j        ¦  «        }d„ }||fS d S )Nc                 ón   — |\  }|j         }|                      |¦  «        }|                     ||¦  «        S rK   )rƒ   Úget_value_typeÚinttoptr)rF   rS   r,   r…   ÚsrcÚrtypeÚllrtypes          r;   rÔ  z_TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_cast.<locals>.codegenR  s:   € Ø $™˜Ø )Ô 5˜Ø")×"8Ò"8¸Ñ"?Ô"?˜Ø&×/Ò/°°WÑ=Ô=Ð=r:   )r®  r   ÚContextrA   r	   ræ   Úuintp)rž  rì  r„   rÔ  Úresult_typerE   s       €€r;   Úunsafe_castzNTestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_caster.<locals>.unsafe_castK  se   ø€ à×%Ò% iµ´Ñ@Ô@Ð@Ý˜c¥5¤=Ñ1Ô1ð 
(Ø%˜+¥e¤kÑ2Ô2�Cð>ð >ð >ð  ˜<Ð'ð
(ð 
(r:   )rA   r	   ÚCPointerr%   )rñ  rò  rE   s   ` €r;   Úunsafe_casterz9TestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_casterH  sL   øø€ Ý˜k­5¬>Ñ:Ô:Ð:Ð:Ð:åð(ð (ð (ð (ð (ñ ŒYð(ð Ðr:   c                 ó    — t          d¦  «        ‚)Nznot callable from pythonrt   ©rì  s    r;   Úunsafe_get_ctypes_pointerzETestIntrinsic.test_ll_pointer_cast.<locals>.unsafe_get_ctypes_pointer^  s   € Ý%Ð&@ÑAÔAÐAr:   FrG  c                 ó�   •‡— t          | t          j        ¦  «        r) ‰t          j        | j        ¦  «        ¦  «        Šˆfd„}|S d S )Nc                 ó0   •—  ‰| j         j        ¬¦  «        S )Nrö  )Úctypesr*  )rÊ   rò  s    €r;   Ú
array_implzdTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointer.<locals>.array_implf  s   ø€ Ø&˜;¨3¬:¬?Ð;Ñ;Ô;Ð;r:   )rA   r	   rÁ   ró  rÂ   )Úarrtyperû  rò  rô  s     @€r;   Ú$array_impl_unsafe_get_ctypes_pointerzPTestIntrinsic.test_ll_pointer_cast.<locals>.array_impl_unsafe_get_ctypes_pointera  s^   øø€ å˜'¥5¤;Ñ/Ô/ð "Ø+˜m­E¬N¸7¼=Ñ,IÔ,IÑJÔJ�ð<ð <ð <ð <ð <ð "Ð!ð"ð "r:   c                 óT   — t          |¦  «        D ]}t          | |         ¦  «         Œd S rK   )rµ   râ   )Úptrr  r¼   s      r;   Úmy_c_fun_rawz8TestIntrinsic.test_ll_pointer_cast.<locals>.my_c_fun_rawl  s2   € Ý˜1‘X”Xð ð �Ý�c˜!”f‘”��ðð r:   NTr�  c                 ó@   •—  ‰| ¦  «        } ‰|| j         ¦  «         d S rK   )r¶   )rÊ   rÿ  Úmy_c_funr÷  s     €€r;   r  z/TestIntrinsic.test_ll_pointer_cast.<locals>.foou  s-   ø€ à+Ð+¨CÑ0Ô0ˆCØˆH�S˜#œ(Ñ#Ô#Ð#Ð#Ð#r:   r  )rÂ   )rú  rã  rä  rå  ræ  r   r   r£   r9  Úfloat32r   rè  r¼  Úcloserh  ÚmaprÞ  r¯  )rE   rã  rä  rå  ræ  rý  r   Ú	prototyper  rÊ   Úbufr¾  r  r  rô  r÷  s   `            @@@r;   Útest_ll_pointer_castz"TestIntrinsic.test_ll_pointer_castA  sÚ  øøøø€ ð 	>Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ð	ð 	ð 	ð 	ð 	ð,	Bð 	Bð 	Bõ 
Ð+°EÐ	:Ñ	:Ô	:ð	"ð 	"ð 	"ð 	"ñ 
;Ô	:ð	"ð	ð 	ð 	ð �I˜d G G¨GÑ$4Ô$4°eÑ<Ô<ˆ	Ø�9˜\Ñ*Ô*ˆõ 
�dÐ	Ñ	Ô	ð	$ð 	$ð 	$ð 	$ð 	$ñ 
Ô	ð	$õ
 Œi˜¥"¤*Ð-Ñ-Ô-ˆÝÑÔð 	. #ØˆC�‰HŒHˆHØ—,’,‘.”.×+Ò+Ñ-Ô-ˆCð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	�	Š	‰ŒˆÝ•c�#˜s‘m”mÑ$Ô$ˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%s   Â#2C!Ã!C%Ã(C%c                 ó  ‡— t           d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }|                       |d¦  «        d¦  «         t          j        }t          |¦  «        }t          j        |¦  «        }|dz  }|                      |t          |¦  «        ¦  «         t          j        |¦  «        }|                      |t          |¦  «        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         t          j        ‰¦  «        }|                      |t          |¦  «        ¦  «         t          j        |¦  «        }|  	                    ‰|¦  «         |                      |t          |¦  «        ¦  «         dS )z9
        Test serialization of intrinsic objects
        c                 ó&   — d„ } ||¦  «        }||fS )Nc                 ó   — |d         S rE  r9   rÓ  s       r;   rÔ  zCTestIntrinsic.test_serialization.<locals>.identity.<locals>.codegenŠ  ó   € Ø˜A”w�r:   r9   )rF   rw   rÔ  r„   s       r;   Úidentityz2TestIntrinsic.test_serialization.<locals>.identityˆ  s*   € ðð ð ð �!�A‘$”$ˆCØ˜�<Ðr:   Tr�  c                 ó   •—  ‰| ¦  «        S rK   r9   )rw   r  s    €r;   r  z-TestIntrinsic.test_serialization.<locals>.foo‘  s   ø€ à�8˜A‘;”;Ðr:   r0   N)
r%   r   r¯  r&   Ú_memor  ÚpickleÚdumpsÚloadsrŒ  )	rE   r  ÚmemoÚ	memo_sizeÚserialized_fooÚfoo_rebuiltÚserialized_identityÚidentity_rebuiltr  s	           @r;   Útest_serializationz TestIntrinsic.test_serializationƒ  s�  ø€ õ
 
ð	 ð 	 ñ 
Œð	 õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	ð 	×Ò˜˜˜Q™œ Ñ#Ô#Ð#õ ÔˆÝ˜‘I”Iˆ	õ  œ cÑ*Ô*ˆà�Q‰ˆ	Ø×Ò˜¥C¨¡I¤IÑ.Ô.Ð.å”l >Ñ2Ô2ˆØ×Ò˜¥C¨¡I¤IÑ.Ô.Ð.à×Ò˜˜˜Q™œ  ¨Q¡¤Ñ0Ô0Ð0õ %œl¨8Ñ4Ô4Ðà×Ò˜¥C¨¡I¤IÑ.Ô.Ð.å!œ<Ð(;Ñ<Ô<Ðà�Š�hÐ 0Ñ1Ô1Ð1à×Ò˜¥C¨¡I¤IÑ.Ô.Ð.Ð.Ð.r:   c                 óª  — d„ }t           j        }t          |¦  «        }t          d|¦  «        }|                      |j        |¦  «         t          j        |¦  «        }|dz  }|                      |t          |¦  «        ¦  «         ~|                      |t          |¦  «        ¦  «         t           j         	                    ¦   «          |dz  }|                      |t          |¦  «        ¦  «         t          j
        |¦  «        }|                      |j        |¦  «         t          j
        |¦  «        }|                      |j        |j        ¦  «         dS )z3
        Test deserialization of intrinsic
        c                 ó"   — d„ } ||¦  «        |fS )Nc                 ó   — |d         S rE  r9   rÓ  s       r;   rÔ  zATestIntrinsic.test_deserialization.<locals>.defn.<locals>.codegen·  r  r:   r9   )rF   rw   rÔ  s      r;   Údefnz0TestIntrinsic.test_deserialization.<locals>.defn¶  s%   € ðð ð ð �1�Q‘4”4˜�=Ð r:   r  r0   N)r&   r  r  rŒ  Ú_defnr  r  r¯  Ú_recentÚclearr  ÚassertIsNot)rE   r  r  r  ÚoriginalÚpickledÚrebuiltÚseconds           r;   Útest_deserializationz"TestIntrinsic.test_deserialization±  s4  € ð
	!ð 	!ð 	!õ ÔˆÝ˜‘I”Iˆ	õ ˜e TÑ*Ô*ˆØ�Š�h”n dÑ+Ô+Ð+Ý”,˜xÑ(Ô(ˆà�Q‰ˆ	Ø×Ò˜¥C¨¡I¤IÑ.Ô.Ð.Øð 	×Ò˜¥C¨¡I¤IÑ.Ô.Ð.õ 	Ô× Ò Ñ"Ô"Ð"Ø�Q‰ˆ	Ø×Ò˜¥C¨¡I¤IÑ.Ô.Ð.å”,˜wÑ'Ô'ˆà×Ò˜œ¨Ñ-Ô-Ð-õ ”˜gÑ&Ô&ˆØ�Š�g”m V¤\Ñ2Ô2Ð2Ð2Ð2r:   c                 ól  — t           dt          fd„¦   «         }|                      d|j        ¦  «         |                      d|j        ¦  «         |                      d|j        ¦  «         |                      dt          it          j        |¦  «        ¦  «         |                      d|j	        ¦  «         d S )NrL  c                 óL   — t          j        t           j        ¦  «        }d„ }||fS )úvoid_func docstringc                 ó   — d S rK   r9   rÓ  s       r;   rÔ  z@TestIntrinsic.test_docstring.<locals>.void_func.<locals>.codegenà  r  r:   rÕ  r×  s       r;   rØ  z/TestIntrinsic.test_docstring.<locals>.void_funcÛ  s0   € õ ”*�Uœ[Ñ)Ô)ˆCðð ð ð ˜�<Ðr:   znumba.tests.test_extendingrØ  z/TestIntrinsic.test_docstring.<locals>.void_funcr)  )
r%   Úintr¯  r7   r6   r8   ÚassertDictEqualÚinspectÚget_annotationsr¢  )rE   rØ  s     r;   Útest_docstringzTestIntrinsic.test_docstringÙ  sÂ   € å	ð	 ¥Cð 	 ð 	 ð 	 ñ 
Œð	 ð 	×ÒÐ5°yÔ7KÑLÔLÐLØ×Ò˜ iÔ&8Ñ9Ô9Ð9Ø×ÒÐJØ"Ô/ñ	1ô 	1ð 	1à×Ò˜c¥3˜Z­Ô)@ÀÑ)KÔ)KÑLÔLÐLØ×ÒÐ.°	Ô0AÑBÔBÐBÐBÐBr:   N)r6   r7   r8   rá  r  r  r&  r/  r9   r:   r;   rÏ  rÏ    sn   € € € € € ð(Ið (Ið (IðT@&ð @&ð @&ðD,/ð ,/ð ,/ð\&3ð &3ð &3ðPCð Cð Cð Cð Cr:   rÏ  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRegisterJitablec                 óÀ   ‡— t           d„ ¦   «         Šˆfd„} t          d¬¦  «        |¦  «        } |dd¦  «        } |dd¦  «        }|                      ||¦  «         d S )Nc                 ó   — | |z   S rK   r9   )rw   r    s     r;   r  z.TestRegisterJitable.test_no_flags.<locals>.fooð  s   € à�q‘5ˆLr:   c                 ó   •—  ‰| |¦  «        S rK   r9   )rw   r    r  s     €r;   r]  z.TestRegisterJitable.test_no_flags.<locals>.barô  s   ø€ Ø�3�q˜!‘9”9Ðr:   Tr�  r0   r‰   )r'   r   r¯  )rE   r]  Úcbarr  r¾  r  s        @r;   Útest_no_flagsz!TestRegisterJitable.test_no_flagsï  sŒ   ø€ Ý	ð	ð 	ñ 
Ô	ð	ð	ð 	ð 	ð 	ð 	ð "�s˜DÐ!Ñ!Ô! #Ñ&Ô&ˆà��Q˜‘”ˆØˆd�1�a‰jŒjˆØ×Ò˜ Ñ%Ô%Ð%Ð%Ð%r:   c                 ó´  ‡— t          d¬¦  «        d„ ¦   «         Šˆfd„}|                       |d¦  «                             ¦   «         g d¢¦  «          t          d¬¦  «        |¦  «        }|                      t
          j        ¦  «        5 } |d	¦  «         d d d ¦  «         n# 1 swxY w Y   d
}|                      |t          |j	        ¦  «        ¦  «         d S )NF)Ú_nrtc                 ó*   — t          j        | ¦  «        S rK   rˆ  )r  s    r;   r  z2TestRegisterJitable.test_flags_no_nrt.<locals>.fooþ  s   € å”9˜Q‘<”<Ðr:   c                 ó   •—  ‰| ¦  «        S rK   r9   )r  r  s    €r;   r]  z2TestRegisterJitable.test_flags_no_nrt.<locals>.bar  s   ø€ Ø�3�q‘6”6ˆMr:   r§  )r   r0   r‰   Tr�  r‰   úCOnly accept returning of array passed into the function as argument)
r'   r¯  Útolistr   rÜ  r
   rÃ   rÝ  rÞ  rß  )rE   r]  r5  rà  r8  r  s        @r;   Útest_flags_no_nrtz%TestRegisterJitable.test_flags_no_nrtý  s.  ø€ Ý	˜uÐ	%Ñ	%Ô	%ð	 ð 	 ñ 
&Ô	%ð	 ð	ð 	ð 	ð 	ð 	ð 	×Ò˜˜˜Q™œŸš™œ¨)¨)¨)Ñ4Ô4Ð4à!�s˜DÐ!Ñ!Ô! #Ñ&Ô&ˆØ×Ò�vÔ1Ñ2Ô2ð 	°fØˆD�‰GŒGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð 	ð 	�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ÂB#Â#B'Â*B'N)r6   r7   r8   r6  r=  r9   r:   r;   r1  r1  î  s2   € € € € € ð&ð &ð &ð2ð 2ð 2ð 2ð 2r:   r1  c                   ó„   — e Zd Z ej        edu d¦  «        d„ ¦   «         Zd„ Z ej        edu d¦  «        d„ ¦   «         ZdS )ÚTestImportCythonFunctionNz&Only run if SciPy >= 0.19 is installedc                 ó  ‡— t          dd¦  «        }t          j        t          j        t          j        ¦  «        } ||¦  «        Š t	          d¬¦  «        ˆfd„¦  «        }|                       |d¦  «        d¦  «         d S )Núscipy.special.cython_specialÚj0Tr�  c                 ó   •—  ‰| ¦  «        S rK   r9   )rw   Ú_j0s    €r;   rM  z@TestImportCythonFunction.test_getting_function.<locals>.<lambda>  s   ø€ ¨#¨#¨a©&¬&€ r:   r   r0   )r(   rú  rã  Úc_doubler   r¯  )rE   ÚaddrÚfunctyperB  rD  s       @r;   Útest_getting_functionz.TestImportCythonFunction.test_getting_function  s„   ø€ å*Ø*¨Dñ
ô 
ˆõ Ô#¥F¤OµV´_ÑEÔEˆØˆh�t‰nŒnˆØ�S˜$ÐÑÔÐ 0Ð 0Ð 0Ð 0Ñ1Ô1ˆØ×Ò˜˜˜A™œ Ñ"Ô"Ð"Ð"Ð"r:   c                 ó  — |                       t          ¦  «        5 }t          dd¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        |t          |j        ¦  «        ¦  «        }|                      |¦  «         d S )NÚ
fakemoduleÚfakefunctionzNo module named '?fakemodule'?)rÜ  ÚImportErrorr(   ÚreÚmatchrÞ  rß  rŽ  )rE   rà  r8  rN  s       r;   Útest_missing_modulez,TestImportCythonFunction.test_missing_module  sÅ   € Ø×Ò�{Ñ+Ô+ð 	F¨vÝ'¨°nÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð /ˆÝ”˜�c &Ô"2Ñ3Ô3Ñ4Ô4ˆØ×Ò˜UÑ#Ô#Ð#Ð#Ð#ó   ›8¸<¿<c                 óÞ   — |                       t          ¦  «        5 }t          dd¦  «         d d d ¦  «         n# 1 swxY w Y   d}|                      |t	          |j        ¦  «        ¦  «         d S )NrA  r  zINo function 'foo' found in __pyx_capi__ of 'scipy.special.cython_special')rÜ  r²   r(   r¯  rÞ  rß  )rE   rà  r8  s      r;   Útest_missing_functionz.TestImportCythonFunction.test_missing_function$  s²   € à×Ò�zÑ*Ô*ð 	¨fÝ'Ø.°ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
-ð 	ð 	×Ò˜�c &Ô"2Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4rP  )	r6   r7   r8   ÚunittestÚskipIfÚscrH  rO  rR  r9   r:   r;   r?  r?    s�   € € € € € Ø€X„_�R˜4�ZÐ!IÑJÔJð#ð #ñ KÔJð#ð$ð $ð $ð €X„_�R˜4�ZÐ!IÑJÔJð	5ð 	5ñ KÔJð	5ð 	5ð 	5r:   r?  Úmethod_jit_option_check_nrtr8  T©Újit_optionsc                 ó   — d„ }|S )Nc                 ó*   — t          j        d¦  «        S ©Nr  rˆ  r{  s    r;   r  z+ov_method_jit_option_check_nrt.<locals>.imp5  ó   € ÝŒy˜‰}Œ}Ðr:   r9   r|  s     r;   Úov_method_jit_option_check_nrtr]  1  ó   € ðð ð ð €Jr:   Úmethod_jit_option_check_no_nrtFc                 ó   — d„ }|S )Nc                 ó*   — t          j        d¦  «        S r[  rˆ  r{  s    r;   r  z.ov_method_jit_option_check_no_nrt.<locals>.imp?  r\  r:   r9   r|  s     r;   Ú!ov_method_jit_option_check_no_nrtrb  ;  r^  r:   Úattr_jit_option_check_nrtc                 ó   — d„ }|S )Nc                 ó*   — t          j        d¦  «        S r[  rˆ  r{  s    r;   r  z)ov_attr_jit_option_check_nrt.<locals>.impI  r\  r:   r9   r|  s     r;   Úov_attr_jit_option_check_nrtrf  E  r^  r:   Úattr_jit_option_check_no_nrtc                 ó   — d„ }|S )Nc                 ó*   — t          j        d¦  «        S r[  rˆ  r{  s    r;   r  z,ov_attr_jit_option_check_no_nrt.<locals>.impS  r\  r:   r9   r|  s     r;   Úov_attr_jit_option_check_no_nrtrj  O  r^  r:   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestJitOptionsNoNRTc                 óØ   — d}|                       t          j        ¦  «        5 } ||i |¤Ž d d d ¦  «         n# 1 swxY w Y   |                      |t	          |j        ¦  «        ¦  «         d S )Nr;  )rÜ  r
   rÃ   rÝ  rÞ  rß  )rE   Úfuncr…   rÙ  r8  rà  s         r;   Úcheck_error_no_nrtz&TestJitOptionsNoNRT.check_error_no_nrt\  s±   € ð'ð 	ð ×Ò�vÔ1Ñ2Ô2ð 	"°fØˆD�$Ð!˜&Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�Š�c�3˜vÔ/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1s   ¢	7·;¾;c                 óü   ‡— d„ Št          ‰d|i¬¦  «        d„ ¦   «         }t          ˆfd„¦   «         }|r2|                       |¦   «         t          j        d¦  «        ¦  «         d S |                      |¦  «         d S )Nc                  ó*   — t          j        d¦  «        S r[  rˆ  r9   r:   r;   Údummyz8TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.dummyg  s   € Ý”9˜R‘=”=Ð r:   r8  rW  c                  ó   — d„ } | S )Nc                  ó*   — t          j        d¦  «        S r[  rˆ  r9   r:   r;   rr  zJTestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummy.<locals>.dummyl  s   € Ý”y ‘}”}Ð$r:   r9   ©rr  s    r;   Úov_dummyz;TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.ov_dummyj  s   € ð%ð %ð %ð ˆLr:   c                  ó   •—  ‰ ¦   «         S rK   r9   ru  s   €r;   r  z6TestJitOptionsNoNRT.no_nrt_overload_check.<locals>.fooq  s   ø€ à�5‘7”7ˆNr:   r  )r   r   rƒ  r£   r9  ro  )rE   Úflagrv  r  rr  s       @r;   Úno_nrt_overload_checkz)TestJitOptionsNoNRT.no_nrt_overload_checkf  s²   ø€ ð	!ð 	!ð 	!õ 
�% f¨d ^Ð	4Ñ	4Ô	4ð	ð 	ñ 
5Ô	4ð	õ 
ð	ð 	ð 	ð 	ñ 
Œð	ð ð 	)Ø×#Ò# C C¡E¤E­2¬9°R©=¬=Ñ9Ô9Ð9Ð9Ð9à×#Ò# CÑ(Ô(Ð(Ð(Ð(r:   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )NTF)ry  r‰  s    r;   Útest_overload_no_nrtz(TestJitOptionsNoNRT.test_overload_no_nrtz  s0   € Ø×"Ò" 4Ñ(Ô(Ð(Ø×"Ò" 5Ñ)Ô)Ð)Ð)Ð)r:   c                 óè   — t           d„ ¦   «         }|                       |t          ¦  «        t          j        d¦  «        ¦  «         t           d„ ¦   «         }|                      |t          ¦  «         d S )Nc                 ó*   — |                       ¦   «         S rK   )rV  rv   s    r;   Úudtz<TestJitOptionsNoNRT.test_overload_method_no_nrt.<locals>.udt  s   € à×0Ò0Ñ2Ô2Ð2r:   r  c                 ó*   — |                       ¦   «         S rK   )r_  rv   s    r;   r~  z<TestJitOptionsNoNRT.test_overload_method_no_nrt.<locals>.udt…  s   € à×3Ò3Ñ5Ô5Ð5r:   ©r   rƒ  rI   r£   r9  ro  ©rE   r~  s     r;   Útest_overload_method_no_nrtz/TestJitOptionsNoNRT.test_overload_method_no_nrt~  sz   € Ý	ð	3ð 	3ñ 
Œð	3ð 	×Ò  ¥G¡¤­b¬i¸©m¬mÑ<Ô<Ð<å	ð	6ð 	6ñ 
Œð	6ð 	×Ò ¥WÑ-Ô-Ð-Ð-Ð-r:   c                 óè   — t           d„ ¦   «         }|                       |t          ¦  «        t          j        d¦  «        ¦  «         t           d„ ¦   «         }|                      |t          ¦  «         d S )Nc                 ó   — | j         S rK   )rc  rv   s    r;   r~  z?TestJitOptionsNoNRT.test_overload_attribute_no_nrt.<locals>.udtŒ  s   € àÔ.Ð.r:   r  c                 ó   — | j         S rK   )rg  rv   s    r;   r~  z?TestJitOptionsNoNRT.test_overload_attribute_no_nrt.<locals>.udt’  s   € àÔ1Ð1r:   r€  r�  s     r;   Útest_overload_attribute_no_nrtz2TestJitOptionsNoNRT.test_overload_attribute_no_nrt‹  sz   € Ý	ð	/ð 	/ñ 
Œð	/ð 	×Ò  ¥G¡¤­b¬i¸©m¬mÑ<Ô<Ð<å	ð	2ð 	2ñ 
Œð	2ð 	×Ò ¥WÑ-Ô-Ð-Ð-Ð-r:   N)r6   r7   r8   ro  ry  r{  r‚  r†  r9   r:   r;   rl  rl  Y  s_   € € € € € ð2ð 2ð 2ð)ð )ð )ð(*ð *ð *ð.ð .ð .ð.ð .ð .ð .ð .r:   rl  c                   ó6   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTestBoxingCallingJITc                 óÂ   •— t          ¦   «                              ¦   «          t          d¦  «        }|\  | _        | _        | _        |                      ¦   «         | _        d S )Nrp   )rW  ÚsetUpro   rg   rc   ri   Údyn_type)rE   ÚmanyrZ  s     €r;   rŠ  zTestBoxingCallingJIT.setUpš  sH   ø€ Ý‰Œ�Š‰ŒˆÝ& zÑ2Ô2ˆØ=AÑ:ˆÔ˜$œ,¨Ô(:ØŸš™œˆŒˆˆr:   c                 ó$  ‡‡‡— dŠdŠt           ˆfd„¦   «         Št          | j        ¦  «        ˆˆfd„¦   «         }t          | j        ¦  «        d„ ¦   «         }t          d„ ¦   «         } || j        ¦  «        }|                      |‰‰z   ¦  «         d S )Nrg  rê   c                 ó6   •— ˆfd„}t          ||¦  «        }||fS )Nc                 ó^   •— |\  }|                      ||                     ‰¦  «        ¦  «        S rK   ©rõ   r^  ©rF   rS   r„   r…   rM   Úmagic_offsets        €r;   r  zKTestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic.<locals>.impl©  ó*   ø€ Ø‘�Ø—{’{ 3¨¯ª°Ñ(>Ô(>Ñ?Ô?Ð?r:   ©r,   ©rž  rM   r  r„   r’  s       €r;   Úmy_intrinsicz=TestBoxingCallingJIT.test_unboxer_basic.<locals>.my_intrinsic¦  ó<   ø€ ð@ð @ð @ð @ð @õ ˜C Ñ%Ô%ˆCØ˜�9Ðr:   c                 ó  •— ˆ	fd„}|j                              t          j        ‰¦  «        g}t	          t          j        t          j        ¦  «        }|j                             |||¦  «        \  }}t          ||¬¦  «        S )Nc                 ó   •—  ‰| ¦  «        S rK   r9   ©rw   r–  s    €r;   ÚbridgezHTestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer.<locals>.bridge³  s   ø€ ð $�| A‘”Ð&r:   ©Úis_error©	rF   rR   r	   Úintpr,   Úvoidptrrš   Úcall_jit_coder$   )
r\   r]   rN   r›  r…   r„   r�  r·   Úmagic_tokenr–  s
           €€r;   Úunboxerz8TestBoxingCallingJIT.test_unboxer_basic.<locals>.unboxer°  s}   ø€ ð'ð 'ð 'ð 'ð 'ð
 ”I×*Ò*­5¬:°{ÑCÔCÐDˆDÝ�EœM­5¬:Ñ6Ô6ˆCØœG×1Ò1°&¸#¸tÑDÔD‰MˆH�cÝ˜s¨XÐ6Ñ6Ô6Ð6r:   c                 ó€   — |j                              |t          j        ¦  «        }|j                             |¦  «        S rK   ©rS   Úptrtointr   Úintp_trš   Úlong_from_ssize_t©r\   rM   rN   r·   s       r;   Úboxerz6TestBoxingCallingJIT.test_unboxer_basic.<locals>.boxer½  ó3   € ð ”)×$Ò$ S­'¬.Ñ9Ô9ˆCØ”7×,Ò,¨SÑ1Ô1Ð1r:   c                 ó   — | S rK   r9   rv   s    r;   Úpassthruz9TestBoxingCallingJIT.test_unboxer_basic.<locals>.passthruÃ  ó   € àˆHr:   ©r%   r#   rg   r"   r   r‹  r¯  )rE   r£  rª  r­  rú  r’  r¢  r–  s        @@@r;   Útest_unboxer_basicz'TestBoxingCallingJIT.test_unboxer_basic   sà   øøø€ ð ˆØˆå	ð	ð 	ð 	ð 	ñ 
Œð	õ 
ˆtÔÑ	 Ô	 ð
	7ð 
	7ð 
	7ð 
	7ð 
	7ñ 
!Ô	 ð
	7õ 
ˆTÔÑ	Ô	ð	2ð 	2ñ 
Ô	ð	2õ
 
ð	ð 	ñ 
Œð	ð ˆh�t”}Ñ%Ô%ˆØ×Ò˜˜k¨LÑ8Ñ9Ô9Ð9Ð9Ð9r:   c                 ón  — t          | j        ¦  «        d„ ¦   «         }t          | j        ¦  «        d„ ¦   «         }t          d„ ¦   «         }|                      t
          ¦  «        5 } || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                 óü   — d„ }|j                              t          j        d¦  «        g}t	          t          j        t          j        ¦  «        }|j                             |||¦  «        \  }}t          ||¬¦  «        S )Nc                 ó0   — | dk    rt          d¦  «        ‚| S )Nr   úcannot be x > 0©r²   rv   s    r;   r›  zHTestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxer.<locals>.bridgeÏ  ó   € Ø�q’5�5Ý$Ð%6Ñ7Ô7Ð7Ø�r:   r0   rœ  rž  )r\   r]   rN   r›  r…   r„   r�  r·   s           r;   r£  z8TestBoxingCallingJIT.test_unboxer_raise.<locals>.unboxerÌ  sr   € ðð ð ð
 ”I×*Ò*­5¬:°qÑ9Ô9Ð:ˆDÝ�EœM­5¬:Ñ6Ô6ˆCØœG×1Ò1°&¸#¸tÑDÔD‰MˆH�cÝ˜s¨XÐ6Ñ6Ô6Ð6r:   c                 ó€   — |j                              |t          j        ¦  «        }|j                             |¦  «        S rK   r¥  r©  s       r;   rª  z6TestBoxingCallingJIT.test_unboxer_raise.<locals>.boxerÙ  r«  r:   c                 ó   — | S rK   r9   rv   s    r;   r­  z9TestBoxingCallingJIT.test_unboxer_raise.<locals>.passthruß  r®  r:   r´  ©
r#   rg   r"   r   rÜ  r²   r‹  rÝ  rÞ  rß  ©rE   r£  rª  r­  rà  s        r;   Útest_unboxer_raisez'TestBoxingCallingJIT.test_unboxer_raiseÊ  s  € å	ˆtÔÑ	 Ô	 ð
	7ð 
	7ñ 
!Ô	 ð
	7õ 
ˆTÔÑ	Ô	ð	2ð 	2ñ 
Ô	ð	2õ
 
ð	ð 	ñ 
Œð	ð ×Ò�zÑ*Ô*ð 	$¨fØˆH�T”]Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�ŠØ�s 6Ô#3Ñ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
ó   Á%BÂBÂ	Bc                 ó$  ‡‡‡— dŠdŠt           ˆfd„¦   «         Št          | j        ¦  «        d„ ¦   «         }t          | j        ¦  «        ˆˆfd„¦   «         }t          d„ ¦   «         } || j        ¦  «        }|                      |‰‰z   ¦  «         d S )Nrg  i8  c                 ó6   •— ˆfd„}t          ||¦  «        }||fS )Nc                 ó^   •— |\  }|                      ||                     ‰¦  «        ¦  «        S rK   r�  r‘  s        €r;   r  zCTestBoxingCallingJIT.test_boxer.<locals>.my_intrinsic.<locals>.implñ  r“  r:   r”  r•  s       €r;   r–  z5TestBoxingCallingJIT.test_boxer.<locals>.my_intrinsicî  r—  r:   c                 óN   — t          |j                             ¦   «         ¦  «        S rK   rY   r[   s      r;   r£  z0TestBoxingCallingJIT.test_boxer.<locals>.unboxerø  ó   € å˜qœy×8Ò8Ñ:Ô:Ñ;Ô;Ð;r:   c                 ó  •— ˆ	fd„}|j                              t          j        ‰¦  «        g}t	          t          j        t          j        ¦  «        }|j                             |||¦  «        \  }}|j                             |¦  «        S )Nc                 ó   •—  ‰| ¦  «        S rK   r9   rš  s    €r;   r›  z>TestBoxingCallingJIT.test_boxer.<locals>.boxer.<locals>.bridgeÿ  s   ø€ Ø#�| A‘”Ð&r:   )rF   rR   r	   rŸ  r,   rš   r¡  r¨  )
r\   rM   rN   r›  r…   r„   r�  r·   r¢  r–  s
           €€r;   rª  z.TestBoxingCallingJIT.test_boxer.<locals>.boxerü  s€   ø€ ð'ð 'ð 'ð 'ð 'ð ”I×*Ò*­5¬:°{ÑCÔCÐDˆDÝ�EœJ­¬
Ñ3Ô3ˆCØœG×1Ò1°&¸#¸tÑDÔD‰MˆH�cØ”7×,Ò,¨SÑ1Ô1Ð1r:   c                 ó   — | S rK   r9   rv   s    r;   r­  z1TestBoxingCallingJIT.test_boxer.<locals>.passthru  r®  r:   r¯  )rE   r£  rª  r­  Úrr’  r¢  r–  s        @@@r;   Ú
test_boxerzTestBoxingCallingJIT.test_boxeré  sÞ   øøø€ àˆØˆå	ð	ð 	ð 	ð 	ñ 
Œð	õ 
ˆtÔÑ	 Ô	 ð	<ð 	<ñ 
!Ô	 ð	<õ 
ˆTÔÑ	Ô	ð	2ð 	2ð 	2ð 	2ð 	2ñ 
Ô	ð	2õ 
ð	ð 	ñ 
Œð	ð ˆH�T”]Ñ#Ô#ˆØ×Ò˜˜K¨,Ñ6Ñ7Ô7Ð7Ð7Ð7r:   c                 ón  — t          | j        ¦  «        d„ ¦   «         }t          | j        ¦  «        d„ ¦   «         }t          d„ ¦   «         }|                      t
          ¦  «        5 } || j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j	        ¦  «        ¦  «         d S )Nc                 óN   — t          |j                             ¦   «         ¦  «        S rK   rY   r[   s      r;   r£  z6TestBoxingCallingJIT.test_boxer_raise.<locals>.unboxer  rÁ  r:   c                 óX  — d„ }|j                              t          j        d¦  «        g}t	          t          j        t          j        ¦  «        }|j                             |||¦  «        \  }}t          j        |j	        |j        j
        d¬¦  «        }|j	                             |j	                             |¦  «        ¦  «        5  |j                             |¦  «        }	|j	                             |	|¦  «         d d d ¦  «         n# 1 swxY w Y   |j	                             |¦  «        S )Nc                 ó0   — | dk    rt          d¦  «        ‚| S )Nr   úcannot do x > 0rµ  rv   s    r;   r›  zDTestBoxingCallingJIT.test_boxer_raise.<locals>.boxer.<locals>.bridge  r¶  r:   r0   T)Úzfill)rF   rR   r	   rŸ  r,   rš   r¡  r   Úalloca_oncerS   ÚpyobjÚif_thenÚnot_r¨  ÚstoreÚload)
r\   rM   rN   r›  r…   r„   r�  r·   Úretvalr]   s
             r;   rª  z4TestBoxingCallingJIT.test_boxer_raise.<locals>.boxer  s6  € ðð ð ð
 ”I×*Ò*­5¬:°qÑ9Ô9Ð:ˆDÝ�EœJ­¬
Ñ3Ô3ˆCØœG×1Ò1°&¸#¸tÑDÔD‰MˆH�cåÔ(¨¬°A´G´MÈÐNÑNÔNˆFØ”×"Ò" 1¤9§>¢>°(Ñ#;Ô#;Ñ<Ô<ð -ð -Ø”g×/Ò/°Ñ4Ô4�Ø”	—’  VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð ”9—>’> &Ñ)Ô)Ð)s   Ã6DÄDÄDc                 ó   — | S rK   r9   rv   s    r;   r­  z7TestBoxingCallingJIT.test_boxer_raise.<locals>.passthru%  r®  r:   rË  r¹  rº  s        r;   Útest_boxer_raisez%TestBoxingCallingJIT.test_boxer_raise  s  € å	ˆtÔÑ	 Ô	 ð	<ð 	<ñ 
!Ô	 ð	<õ 
ˆTÔÑ	Ô	ð	*ð 	*ñ 
Ô	ð	*õ  
ð	ð 	ñ 
Œð	ð ×Ò�zÑ*Ô*ð 	$¨fØˆH�T”]Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�ŠØ�s 6Ô#3Ñ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
r¼  )	r6   r7   r8   rŠ  r°  r»  rÆ  rÕ  rn  ro  s   @r;   rˆ  rˆ  ™  sv   ø€ € € € € ð'ð 'ð 'ð 'ð 'ð(:ð (:ð (:ðT
ð 
ð 
ð>#8ð #8ð #8ðJ
ð 
ð 
ð 
ð 
ð 
ð 
r:   rˆ  c                 ó   — d S rK   r9   rv   s    r;   Úwith_objmode_cache_ov_exampler×  0  s	   € ð 	€Dr:   c                   óp   — e Zd ZdZdZd„ Zd„ Zd„ Zed„ ¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zd	„ Zd
S )ÚTestCachingOverloadObjmodezTTest caching of the use of overload implementations that use
    `with objmode`
    Fc                 óD   — t          j        dt          j        ¦  «         d S )NÚerror)ÚwarningsÚsimplefilterr
   ÚNumbaWarningr‰  s    r;   rŠ  z TestCachingOverloadObjmode.setUp=  s   € ÝÔ˜g¥vÔ':Ñ;Ô;Ð;Ð;Ð;r:   c                 ó,   — t          j        ¦   «          d S rK   )rÜ  Úresetwarningsr‰  s    r;   ÚtearDownz#TestCachingOverloadObjmode.tearDown@  s   € ÝÔÑ Ô Ð Ð Ð r:   c                 óä  ‡‡— t          | j        j        ¦  «        }t          d|¦  «        5  d„ Šˆfd„Št	          t
          ¦  «        ˆfd„¦   «         }t          d¬¦  «        d„ ¦   «         } ‰d¦  «        } |d¦  «        }|                      ||¦  «          t          d¬¦  «        |j        ¦  «        } |d¦  «        }|                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr¬  c                 ón   — t          j        | ¦  «        | z  }t           j                             |¦  «        S rK   )r£   r9  ÚlinalgÚnorm)rw   rÊ   s     r;   ÚrealworkzJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.realworkG  s(   € å”i ‘l”l QÑ&�Ý”y—~’~ cÑ*Ô*Ð*r:   c                 ó   •—  ‰| ¦  «        S rK   r9   )rw   ræ  s    €r;   Úpython_codezMTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.python_codeL  s   ø€ à�x ‘{”{Ð"r:   c                 ó   •— ˆfd„}|S )Nc                 ón   •— t          d¬¦  «        5   ‰| ¦  «        }d d d ¦  «         n# 1 swxY w Y   |S ©Nr‘  )r    ©r   )rw   r    rè  s     €r;   r  zqTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_example.<locals>.implR  s{   ø€ Ý  9Ð-Ñ-Ô-ð +ð +Ø'˜K¨™NœN˜ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +à�Hs   ’*ª.±.r9   )rw   r  rè  s     €r;   Ú!_ov_with_objmode_cache_ov_examplezcTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>._ov_with_objmode_cache_ov_exampleP  s#   ø€ ðð ð ð ð ð
 �r:   T©r²  c                 ó    — t          | ¦  «        S rK   )r×  rv   s    r;   ÚtestcasezJTestCachingOverloadObjmode.test_caching_overload_objmode.<locals>.testcaseY  s   € å4°QÑ7Ô7Ð7r:   rê   )	r   rZ  r6   r   r   r×  r   r¯  Úpy_func)	rE   rÍ  rí  rð  r  r¾  Útestcase_cachedrè  ræ  s	          @@r;   Útest_caching_overload_objmodez8TestCachingOverloadObjmode.test_caching_overload_objmodeC  s|  øø€ Ý" 4¤>Ô#:Ñ;Ô;ˆ	Ý˜[¨)Ñ4Ô4ð 	*ð 	*ð+ð +ð +ð
#ð #ð #ð #ð #õ Õ3Ñ4Ô4ðð ð ð ñ 5Ô4ðõ ˜ÐÑÔð8ð 8ñ Ôð8ð �X˜c‘]”]ˆFØ�(˜3‘-”-ˆCØ×Ò˜S &Ñ)Ô)Ð)à.�d¨Ð.Ñ.Ô.¨xÔ/?Ñ@Ô@ˆOØ!�/ #Ñ&Ô&ˆCØ×Ò˜S &Ñ)Ô)Ð)ð=	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ¬B,C%Ã%C)Ã,C)c                 óæ   ‡‡— d„ Šd„ Št          ‰¦  «        ˆfd„¦   «         }t          d¬¦  «        ˆfd„¦   «         } |¦   «         }|                     ¦   «         }||k    rt          d¦  «        ‚|S )Nc                 ó0   — t          j        | |z   ¦  «        S rK   ©r£   Úsumrœ  s     r;   Údo_thiszGTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_thisg  ó   € Ý”6˜!˜a™%‘=”=Ð r:   c                 ó0   — t          j        | |z   ¦  «        S rK   rö  rœ  s     r;   Údo_somethingzLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.do_somethingj  rù  r:   c                 ó   •— ˆfd„}|S )Nc                 óp   •— t          d¬¦  «        5   ‰| |¦  «        }d d d ¦  «         n# 1 swxY w Y   |S rë  rì  )rL  r  r    rø  s      €r;   Ú_do_something_implzqTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_something.<locals>._do_something_implo  s}   ø€ Ý˜yÐ)Ñ)Ô)ð &ð &Ø˜  1™œ�Að&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à�s   ’+«/²/r9   )rL  r  rþ  rø  s      €r;   Úoverload_do_somethingzUTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.overload_do_somethingm  s$   ø€ ðð ð ð ð ð &Ð%r:   Trî  c                  ól   •— t          j        d¦  «        } t          j        d¦  «        } ‰| |¦  «        S )NrY  rˆ  )rL  r  rû  s     €r;   Útest_cachingzLTestCachingOverloadObjmode.check_objmode_cache_ndarray.<locals>.test_cachingu  s/   ø€ å”	˜"‘”ˆAÝ”	˜"‘”ˆAØ�<  1Ñ%Ô%Ð%r:   zincorrect result)r   r   rñ  r¢  )r‰  rÿ  r  r¾  r  rû  rø  s        @@r;   Úcheck_objmode_cache_ndarrayz6TestCachingOverloadObjmode.check_objmode_cache_ndarraye  s¿   øø€ ð	!ð 	!ð 	!ð	!ð 	!ð 	!õ 
�,Ñ	Ô	ð	&ð 	&ð 	&ð 	&ñ 
 Ô	ð	&õ 
�DÐ	Ñ	Ô	ð	&ð 	&ð 	&ð 	&ñ 
Ô	ð	&ð
 ˆl‰nŒnˆØ×%Ò%Ñ'Ô'ˆð �&Š=ˆ=Ý Ð!3Ñ4Ô4Ð4ØÐr:   c                 ó.   — |                       ¦   «          d S rK   )r  )r‰  s    r;   Ú*populate_objmode_cache_ndarray_check_cachezETestCachingOverloadObjmode.populate_objmode_cache_ndarray_check_cacheƒ  s   € à×'Ò'Ñ)Ô)Ð)Ð)Ð)r:   c                 óÞ   — |                       ¦   «         }t          |j        j        ¦  «        dk    rt	          d¦  «        ‚t          |j        j        ¦  «        dk    rt	          d¦  «        ‚d S )Nr   zunexpected cache misszunexpected missing cache hit)r  r  ÚstatsÚcache_missesr¢  Ú
cache_hits)r‰  Údisps     r;   Ú'check_objmode_cache_ndarray_check_cachezBTestCachingOverloadObjmode.check_objmode_cache_ndarray_check_cache‡  si   € à×.Ò.Ñ0Ô0ˆÝˆtŒzÔ&Ñ'Ô'¨1Ò,Ð,Ý Ð!8Ñ9Ô9Ð9ÝˆtŒzÔ$Ñ%Ô%¨Ò*Ð*Ý Ð!?Ñ@Ô@Ð@ð +Ð*r:   c                 ó  — t          | j        j        ¦  «        }t          d|¦  «        5  t	          | j        |¦  «         t	          | j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |d         d¦  «         d S )Nr¬  rÅ  r   )r   rZ  r6   r   r   r  r
  r¯  )rE   rÍ  r·   s      r;   Ú test_check_objmode_cache_ndarrayz;TestCachingOverloadObjmode.test_check_objmode_cache_ndarray�  sÐ   € õ # 4¤>Ô#:Ñ;Ô;ˆ	Ý˜[¨)Ñ4Ô4ð 	ð 	å+ØÔ?Àñô ð õ 2ØÔ<¸iñô ˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	×Ò˜˜Zœ¨!Ñ,Ô,Ð,Ð,Ð,s   ª+A!Á!A%Á(A%N)r6   r7   r8   r¢  rË  rŠ  rá  ró  Úclassmethodr  r  r
  r  r9   r:   r;   rÙ  rÙ  6  s·   € € € € € ðð ð "Ðð<ð <ð <ð!ð !ð !ð *ð  *ð  *ðD ðð ñ „[ðð: ð*ð *ñ „[ð*ð ðAð Añ „[ðAð-ð -ð -ð -ð -r:   rÙ  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestMiscc           	      óð  — d„ }|                       t          |¦  «        ¦  «         |                      t          t          |¦  «        ¦  «        ¦  «         |                       t          t	          |¦  «        ¦  «        ¦  «         |                       t           t	          d¬¦  «        |¦  «        ¦  «        ¦  «         |                       t           t          dd¦  «        |¦  «        ¦  «        ¦  «         d S )Nc                 ó   — d S rK   r9   rv   s    r;   r  z$TestMisc.test_is_jitted.<locals>.foo¡  r=  r:   T)Úparallelzvoid(float64[:])z(m))r5  r)   r™  r   r   r   )rE   r  s     r;   Útest_is_jittedzTestMisc.test_is_jitted   sä   € ð	ð 	ð 	ð 	×Ò� 3™œÑ(Ô(Ð(Ø�Š�	¥$ s¡)¤)Ñ,Ô,Ñ-Ô-Ð-Ø×Ò�¥9¨S¡>¤>Ñ2Ô2Ñ3Ô3Ð3Ø×Ò�Ð#;¥9°dÐ#;Ñ#;Ô#;¸CÑ#@Ô#@ÑAÔAÑBÔBÐBØ×ÒÝÐ<•kÐ"4°eÑ<Ô<¸SÑAÔAÑBÔBñ	
ô 	
ð 	
ð 	
ð 	
r:   c                 ó  — t           d„ ¦   «         }t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         |                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó8   — t          j        dd¬¦  «        j        S )Nrê   éÈ  )r±   Ú
fill_value©r£   Úfullr±   r9   r:   r;   Ústandard_orderz:TestMisc.test_overload_arg_binding.<locals>.standard_order¯  s   € å”7 °Ð5Ñ5Ô5Ô;Ð;r:   c                  ó8   — t          j        dd¬¦  «        j        S )Nr  rê   )r  r±   r  r9   r:   r;   Úreversed_orderz:TestMisc.test_overload_arg_binding.<locals>.reversed_order³  s   € å”7 c°Ð5Ñ5Ô5Ô;Ð;r:   )r   rƒ  rñ  )rE   r  r  s      r;   Útest_overload_arg_bindingz"TestMisc.test_overload_arg_binding¬  s”   € õ 
ð	<ð 	<ñ 
Œð	<õ 
ð	<ð 	<ñ 
Œð	<ð 	×Ò  Ñ 0Ô 0°.×2HÒ2HÑ2JÔ2JÑKÔKÐKØ×Ò  Ñ 0Ô 0°.×2HÒ2HÑ2JÔ2JÑKÔKÐKÐKÐKr:   N)r6   r7   r8   r  r  r9   r:   r;   r  r  Ÿ  s7   € € € € € ð

ð 

ð 

ðLð Lð Lð Lð Lr:   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestOverloadPreferLiteralc                 ó  ‡‡— d„ Šd„ Šd„ } t          ‰d¬¦  «        |¦  «          t          ‰¦  «        |¦  «         t          ˆfd„¦   «         } |d¦  «        \  }}}|                      |d¦  «         |                      |d	¦  «         |                      |d
¦  «         t          ˆfd„¦   «         } |d¦  «        \  }}}|                      |d¦  «         |                      |d	¦  «         |                      |d
¦  «         d S )Nc                 ó   — d S rK   r9   rv   s    r;   Ú
prefer_litz;TestOverloadPreferLiteral.test_overload.<locals>.prefer_lit½  r=  r:   c                 ó   — d S rK   r9   rv   s    r;   Únon_litz8TestOverloadPreferLiteral.test_overload.<locals>.non_litÀ  r=  r:   c                 óˆ   — t          | t          j        ¦  «        r$| j        dk    rd„ }|S t	          j        d¦  «        ‚d„ }|S )Nr0   c                 ó   — dS rf  r9   rv   s    r;   r  zATestOverloadPreferLiteral.test_overload.<locals>.ov.<locals>.implÇ  ó   € Ø%˜vr:   úliteral valuec                 ó   — | dz  S ©Néd   r9   rv   s    r;   r  zATestOverloadPreferLiteral.test_overload.<locals>.ov.<locals>.implÍ  ó   € Ø˜s™7�Nr:   ©rA   r	   ÚIntegerLiteralÚliteral_valuer
   rÃ   r”  s     r;   Úovz3TestOverloadPreferLiteral.test_overload.<locals>.ovÃ  ó]   € Ý˜!�UÔ1Ñ2Ô2ð à”? aÒ'Ð'ð&ð &ð &à�Kå Ô,¨_Ñ=Ô=Ð=ð#ð #ð #à�r:   T©Úprefer_literalc                 óD   •—  ‰d¦  «         ‰d¦  «         ‰| ¦  «        fS ©Nr0   r‰   r9   ©rw   r"  s    €r;   Úcheck_prefer_litzATestOverloadPreferLiteral.test_overload.<locals>.check_prefer_litÔ  ó(   ø€ à�:˜a‘=”= * *¨Q¡-¤-°°¸A±´Ð>Ð>r:   r§  rg  éÈ   é,  c                 óD   •—  ‰d¦  «         ‰d¦  «         ‰| ¦  «        fS r5  r9   ©rw   r$  s    €r;   Úcheck_non_litz>TestOverloadPreferLiteral.test_overload.<locals>.check_non_litÝ  ó(   ø€ à�7˜1‘:”:˜w˜w q™zœz¨7¨7°1©:¬:Ð5Ð5r:   r+  )r   r   r¯  )	rE   r0  r7  rL  r  rN   r=  r$  r"  s	          @@r;   Útest_overloadz'TestOverloadPreferLiteral.test_overload¼  sg  øø€ ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	2��¨DÐ1Ñ1Ô1°"Ñ5Ô5Ð5Ø��ÑÔ˜"ÑÔÐå	ð	?ð 	?ð 	?ð 	?ñ 
Œð	?ð #Ð" 1Ñ%Ô%‰ˆˆ1ˆaØ×Ò˜˜FÑ#Ô#Ð#Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð å	ð	6ð 	6ð 	6ð 	6ñ 
Œð	6ð  �- Ñ"Ô"‰ˆˆ1ˆaØ×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ð Ð r:   c                 óD  — d„ } t          t          dd¬¦  «        |¦  «          t          t          dd¬¦  «        |¦  «         t          d„ ¦   «         } |t          ¦   «         d¦  «        \  }}}|                      |d	¦  «         |                      |d
¦  «         |                      |d¦  «         t          d„ ¦   «         } |t          ¦   «         d¦  «        \  }}}|                      |d¦  «         |                      |d
¦  «         |                      |d¦  «         d S )Nc                 óˆ   — t          |t          j        ¦  «        r$|j        dk    rd„ }|S t	          j        d¦  «        ‚d„ }|S )Nr0   c                 ó   — dS rf  r9   ©rE   rw   s     r;   r  zHTestOverloadPreferLiteral.test_overload_method.<locals>.ov.<locals>.implë  r'  r:   r(  c                 ó   — |dz  S r*  r9   rC  s     r;   r  zHTestOverloadPreferLiteral.test_overload_method.<locals>.ov.<locals>.implñ  r,  r:   r-  )rE   rw   r  s      r;   r0  z:TestOverloadPreferLiteral.test_overload_method.<locals>.ovç  r1  r:   Úmethod_prefer_literalTr2  Úmethod_non_literalFc                 ó~   — |                       d¦  «        |                       d¦  «        |                       |¦  «        fS r5  )rE  ©rr  rw   s     r;   r7  zHTestOverloadPreferLiteral.test_overload_method.<locals>.check_prefer_litÿ  sA   € ð ×+Ò+¨AÑ.Ô.Ø×+Ò+¨AÑ.Ô.Ø×+Ò+¨AÑ.Ô.ðð r:   r§  rg  r9  r:  c                 ó~   — |                       d¦  «        |                       d¦  «        |                       |¦  «        fS r5  )rF  rH  s     r;   r=  zETestOverloadPreferLiteral.test_overload_method.<locals>.check_non_lit  sA   € ð ×(Ò(¨Ñ+Ô+Ø×(Ò(¨Ñ+Ô+Ø×(Ò(¨Ñ+Ô+ðð r:   r+  r  )rE   r0  r7  rL  r  rN   r=  s          r;   Útest_overload_methodz.TestOverloadPreferLiteral.test_overload_methodæ  sp  € ð	ð 	ð 	ð	
�ÝÐ0Øð	
ñ 	
ô 	
ð ñ	ô 	ð 	ð
	
�ÝÐ-Ø ð	
ñ 	
ô 	
ð ñ	ô 	ð 	õ
 
ð	ð 	ñ 
Œð	ð #Ð"¥7¡9¤9¨aÑ0Ô0‰ˆˆ1ˆaØ×Ò˜˜FÑ#Ô#Ð#Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð å	ð	ð 	ñ 
Œð	ð  �-¥¡	¤	¨1Ñ-Ô-‰ˆˆ1ˆaØ×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ð Ð r:   N)r6   r7   r8   r?  rJ  r9   r:   r;   r  r  »  s3   € € € € € ð(!ð (!ð (!ðT1!ð 1!ð 1!ð 1!ð 1!r:   r  c                   ó   — e Zd Zd„ ZdS )ÚTestIntrinsicPreferLiteralc                 ó   ‡‡— d„ } t          d¬¦  «        |¦  «        Š t          d¬¦  «        |¦  «        Št          ˆfd„¦   «         } |d¦  «        \  }}}|                      |d¦  «         |                      |d¦  «         |                      |d	¦  «         t          ˆfd
„¦   «         } |d¦  «        \  }}}|                      |d¦  «         |                      |d¦  «         |                      |d	¦  «         d S )Nc                 óÄ   — t          t          j        |¦  «        }t          |t          j        ¦  «        r&|j        dk    rd„ }||fS t          j        d¦  «        ‚d„ }||fS )Nr0   c                 óp   — |j         d         }|                      |¦  «        }t          j        |d¦  «        S )Nr   rg  )r…   rê  r   ÚConstant)rF   rS   r,   r…   Úatyperî  s         r;   rÔ  zJTestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin.<locals>.codegen"  s3   € Ø )¤¨qÔ 1˜Ø")×"8Ò"8¸Ñ"?Ô"?˜Ý!œ{¨7°FÑ;Ô;Ð;r:   r(  c                 óœ   — |j         }|                      |¦  «        }t          j        |d¦  «        }|                     |d         |¦  «        S )Nr+  r   )rƒ   rê  r   rP  Úmul)rF   rS   r,   r…   rQ  rî  Úint_100s          r;   rÔ  zJTestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin.<locals>.codegen*  sF   € Ø%Ô1�EØ%×4Ò4°UÑ;Ô;�GÝ œk¨'°3Ñ7Ô7�GØ"Ÿ;š; t¨A¤w°Ñ8Ô8Ð8r:   )r,   r	   rŸ  rA   r.  r/  r
   rÃ   )rF   rw   r„   rÔ  s       r;   Úintrinz9TestIntrinsicPreferLiteral.test_intrinsic.<locals>.intrin  s|   € å�EœJ¨Ñ*Ô*ˆCÝ˜!�UÔ1Ñ2Ô2ð $à”? aÒ'Ð'ð<ð <ð <ð  ˜<Ð'å Ô,¨_Ñ=Ô=Ð=ð9ð 9ð 9ð
 ˜G�|Ð#r:   Tr2  Fc                 óD   •—  ‰d¦  «         ‰d¦  «         ‰| ¦  «        fS r5  r9   r6  s    €r;   r7  zCTestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_prefer_lit4  r8  r:   r§  rg  r9  r:  c                 óD   •—  ‰d¦  «         ‰d¦  «         ‰| ¦  «        fS r5  r9   r<  s    €r;   r=  z@TestIntrinsicPreferLiteral.test_intrinsic.<locals>.check_non_lit=  r>  r:   r+  )r%   r   r¯  )	rE   rU  r7  rL  r  rN   r=  r$  r"  s	          @@r;   Útest_intrinsicz)TestIntrinsicPreferLiteral.test_intrinsic  sH  øø€ ð	$ð 	$ð 	$ð* 4•Y¨dÐ3Ñ3Ô3°FÑ;Ô;ˆ
Ø1•)¨5Ð1Ñ1Ô1°&Ñ9Ô9ˆå	ð	?ð 	?ð 	?ð 	?ñ 
Œð	?ð #Ð" 1Ñ%Ô%‰ˆˆ1ˆaØ×Ò˜˜FÑ#Ô#Ð#Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð å	ð	6ð 	6ð 	6ð 	6ñ 
Œð	6ð  �- Ñ"Ô"‰ˆˆ1ˆaØ×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ø×Ò˜˜CÑ Ô Ð Ð Ð r:   N)r6   r7   r8   rX  r9   r:   r;   rL  rL    s#   € € € € € ð)!ð )!ð )!ð )!ð )!r:   rL  c                   ó   — e Zd Zd„ ZdS )ÚTestNumbaInternalOverloadsc                 ó†  ‡‡— dŠˆfd„Šˆˆfd„}t          d„ ¦  «                             d¦  «         t          j        j        j                             ¦   «         }|                     ¦   «          |j        }| 	                    ¦   «         D ]6\  }}|j
        D ])}t          |dd¦  «        r ||j        |j        ¦  «         Œ*Œ7d S )Nr   c                 ó  •— |                       d¦  «        sët          t          j        | ¦  «        }t	          j        |¦  «        r¿|j                             ¦   «         }|D ]¥}|r�|                     ¦   «         }|                      | ¦  «        rt| dk    rd}d|› d�}i }	 t          |i |¦  «         | 
                    | ¦  «        }t	          j        |¦  «        c S # t          $ r ‰dk    rt          d¦  «         Y  d S w xY wŒ¢d S d S d S )NÚ_Úseedz
seed(seed)zdef z:
	passr‰   z%... skipped as cannot parse signature)rµ  r`  r£   Úrandomr-  Ú	isbuiltinr¢  r¼  ÚstripÚexecrt  r,   ÚSyntaxErrorrâ   )rw   ÚthingÚdocstrÚlÚslÚ	fake_implÚfnÚDEBUGs          €r;   Úsig_from_np_randomz[TestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.sig_from_np_randomX  s\  ø€ Ø—<’< Ñ$Ô$ð AÝ¥¤	¨1Ñ-Ô-�ÝÔ$ UÑ+Ô+ð AØ"œ]×5Ò5Ñ7Ô7�FØ#ð Að A˜Øð AØ!"§¢¡¤˜BØ!Ÿ}š}¨QÑ/Ô/ð Að $%¨¢; ;Ø)5 Bà,@°2Ð,@Ð,@Ð,@ 	Ø$& ð
!AÝ$(¨°B¸Ñ$:Ô$:Ð$:ð *+¯ª¨q©¬ BÝ+2Ô+<¸RÑ+@Ô+@Ð$@Ð$@Ð$@øõ (3ð !0ð !0ð !0à',°¢z zÝ(-ð /:ñ );ô );ð );à+/¨4¨4¨4ð!0øøøøð%Að AðAð AðAð As   ÂCÃC>Ã=C>c                 ób  •— ‰dk    rt          d| › �¦  «         d„ }d }	 t          j        | ¦  «        }nQ# t          $ rD t	          | dd¦  «        x}r.t	          t
          j        |d¦  «        x}r|| k    r ‰|¦  «        }Y nw xY w|��¤t          j        |¦  «        }t          |j         	                    ¦   «         ¦  «        }t          |j         	                    ¦   «         ¦  «        }t          |d t          |¦  «        …         |¦  «        D �]\  }	}
|	|
k    rú|j        |	         }|j        |j        k    r‰dk    rt          d¦  «          d S dt          |¦  «        v r‰dk    rt          d¦  «          d S | j        r| j                             d	¦  «        sL || |||¦  «        }‰d
k    r)‰dk    rt          d¦  «         |rt          |¦  «          d S t          |¦  «        ‚‰dk    r&| j        st          d¦  «         nt          d¦  «          d S �Œ‰dk    rt          d¦  «         d S d S d S )Nr‰   z
Checking: c                 óÎ  — g }| › dt          | d¦  «        › d�}|                     |¦  «         |                     d|› �¦  «         |                     d|› �¦  «         t          j        |¦  «        d         }t          j        |¦  «        }|                     t          j        d         d¦  «        }|                     d	|› d
|› �¦  «         dd                     |¦  «        z   }	|	S )Nz from module 'r7   z' has mismatched sig.z    - expected: z    -      got: r0   r   Ú zfrom ú:ú
)	r`  ra  r-  ÚgetsourcelinesÚgetfileÚreplaceÚnumbaÚ__path__rÄ  )
rn  Úoverload_funcÚfunc_sigÚol_sigr8  rÄ  ÚlinenoÚ
tmpsrcfileÚsrcfileÚmsgstrs
             r;   Úcreate_messagezhTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.checker.<locals>.create_messagey  sò   € Ø�Øð +ð +­G°D¸,Ñ,GÔ,Gð +ð +ð +�à—
’
˜1‘”�Ø—
’
Ð8¨hÐ8Ð8Ñ9Ô9Ð9Ø—
’
Ð6¨fÐ6Ð6Ñ7Ô7Ð7Ý Ô/°Ñ>Ô>¸qÔA�Ý$œ_¨]Ñ;Ô;�
Ø$×,Ò,­U¬^¸AÔ->ÀÑCÔC�Ø—
’
Ð5 7Ð5Ð5¨VÐ5Ð5Ñ6Ô6Ð6Ø §	¢	¨#¡¤Ñ.�Ø�r:   r6   Fz.... skipped as positional only arguments foundÚ*z... skipped as contains *argsrt  r   z... INVALIDz$... skipped as no __module__ presentz... skipped as Numba internalz... OK)râ   r-  r,   r²   r`  r£   r_  rh  Ú
parametersri  Úzipr  ÚkindÚPOSITIONAL_ONLYrÞ  r7   rµ  )rn  rv  r}  rw  ÚfnameÚ
maybe_funcrx  rw   r    rL  r  rÊ  r|  rj  rk  s                €€r;   ÚcheckerzPTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.checkeru  s»  ø€ Ø˜ŠzˆzÝÐ) 4Ð)Ð)Ñ*Ô*Ð*ðð ð ð ˆHðAÝ"Ô,¨TÑ2Ô2��øÝð Að Að Aå# D¨*°eÑ<Ô<Ð<�5ð AÝ%,­R¬Y¸¸uÑ%EÔ%EÐE�zð AØ%¨Ò-Ð-à'9Ð'9¸%Ñ'@Ô'@˜HøøðAøøøð Ñ#Ý Ô*¨=Ñ9Ô9�Ý˜Ô,×1Ò1Ñ3Ô3Ñ4Ô4�Ý˜Ô*×/Ò/Ñ1Ô1Ñ2Ô2�Ý  '¥3 q¡6¤6 '¤
¨AÑ.Ô.ð &(ñ &(‘D�A�qØ˜A’v�vØ$Ô/°Ô2˜Øœ6 QÔ%6Ò6Ð6à$¨šz˜zÝ %ð '8ñ !9ô !9ð !9à!˜E˜EØ ¥C¨¡F¤F˜]˜]Ø$¨šz˜zÝ %Ð&EÑ FÔ FÐ FØ!˜E˜Eð %)¤Oð &Ø(,¬×(BÒ(BÀ7Ñ(KÔ(Kð&à)7¨¸¸mØ8@À&ñ*Jô *J à#(¨A¢: :Ø',°¢z zÝ(-¨mÑ(<Ô(<Ð(<Ø'-ð %6Ý(-¨f©¬¨Ø$) E Eå*4°VÑ*<Ô*<Ð$<à#(¨A¢: :Ø+/¬?ð %OÝ(-ð /8ñ )9ô )9ð )9ð )9õ ).Ð.MÑ(NÔ(NÐ(NØ %  ñE ðH  ’z�zÝ˜h™œ˜˜˜ðU $Ð#ðR "�zs    5 µABÂBc                  ó   — d S rK   r9   r9   r:   r;   rM  zQTestNumbaInternalOverloads.test_signatures_match_overloaded_api.<locals>.<lambda>À  s   € �d€ r:   r9   Ú_overload_funcF)r   Úcompilert  Úcorer   rF   rï  r˜  Ú_registriesÚitemsÚ	functionsr`  r’   r‡  )	rE   r…  ÚtyctxÚregsÚkÚvÚitemrj  rk  s	          @@r;   Ú$test_signatures_match_overloaded_apiz?TestNumbaInternalOverloads.test_signatures_match_overloaded_apiI  s  øø€ ð ˆð	Að 	Að 	Að 	Að 	Að:G	(ð G	(ð G	(ð G	(ð G	(ð G	(õV 	ˆ]ˆ]ÑÔ×#Ò# BÑ'Ô'Ð'Ý”
Ô!Ô)×1Ò1Ñ3Ô3ˆØ�Š‰Œˆð Ô ˆØ—J’J‘L”Lð 	;ð 	;‰DˆAˆqØœð ;ð ;�Ý˜4Ð!1°5Ñ9Ô9ð ;Ø�G˜DœH dÔ&9Ñ:Ô:Ð:øð;ð	;ð 	;r:   N)r6   r7   r8   r’  r9   r:   r;   rZ  rZ  G  s(   € € € € € ð@;ð @;ð @;ð @;ð @;r:   rZ  Ú__main__rK   )°r-  rŠ   rô   ræ  r  r½  rú  rÜ  rM  Únumpyr£   Úllvmliter   rt  r   r   r   r   r   Ú
numba.corer	   r
   r   r   r   Únumba.core.typed_passesr   Únumba.core.registryr   Únumba.core.imputilsr   Únumba.tests.supportr   r   r   r   r   r   r   Únumba.core.errorsr   rS  Únumba.extendingr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   Únumba.core.typing.templatesr+   r,   r-   r.   r/   Úpdlike_usecaser1   r2   Úscipy.special.cython_specialÚspecialÚcython_specialrU  rL  rj   r4   rk   r>   rL   rI   rl   rO   rB   rU   rW   rm   r^   ro   rÜ   rí  Úmydummy_type_2rr   rx   r€   r�  r|   r†   r~   rŽ   r�   rœ   r¡   r¤   r¦   rÆ   rË   r  rÔ   rõ   rÝ   Údelitemrç   Úgetitemrì   Úsetitemrñ   rö   rù   Úiaddrý   rÿ   r  r  r  r  r  r  r  r  r  r  r  r  r"  r%  r(  r,  r1  r4  r7  r<  r>  rA  rC  rN  rP  ÚCallablerR  rq  rw  rl  r}  r  r¥  rÖ  r¨  rª  r®  rÏ  r1  r?  r]  rb  rf  rj  rl  rˆ  r×  rÙ  r  r  rL  rZ  r6   Úmainr9   r:   r;   ú<module>r©     sÍ  ðØ €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	à Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð(ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ð )Ð )ðØ-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-øØð ð ð Ø	€B€B€Bðøøøð	ð 	ð 	ð 	ð 	ˆfñ 	ô 	ð 	ð#ð #ð #ð #ð #�%”,ñ #ô #ð #ð ˆ{˜9Ñ%Ô%€Ø
ˆ'‰)Œ)€ð €Ô�gÑÔðð ñ Ôðð €ˆK˜œÑ&Ô&ð*ð *ñ 'Ô&ð*ðð ð ð €€ˆ{Ñ Ô ˜FÔ.Ñ /Ô /Ð /ð €€{ÑÔð4ð 4ñ Ôð4ð/ð /ð /ð" *AÐ)@ÀÑ)LÔ)LÑ &€ˆh˜ð €€|ÑÔð4ð 4ñ Ôð4ðð ð ð ð	ð 	ð 	ð "ˆ]ˆ]˜5Ñ!Ô! +Ñ.Ô.€
ð €ˆuÑÔØ€ˆu�e”jÑ!Ô!ð5ð 5ñ "Ô!ñ Ôð5ð €ˆu�e”kÑ"Ô"ðDð Dñ #Ô"ðDð ð2ð 2ð 2ð 2ð 2Ð!ñ 2ô 2ñ „ð2ð
 €ˆ|˜[Ñ)Ô)ð%ð %ñ *Ô)ð%ðð ð ð ð  ð  ð!ð !ð !ð 
€ˆ%�„ð*ð *ñ „ð*ðb 
€ˆ%�„ðð ñ „ðð2 
€ˆ#�„ðð ñ „ðð 
€ˆ(Œ,ÑÔðð ñ Ôðð 
€ˆ(Ô
ÑÔð"ð "ñ Ôð"ð 
€ˆ(Ô
ÑÔð"ð "ñ Ôð"ð 
€ˆ(Ô
ÑÔð"ð "ñ Ôð"ð$ð $ð $ðð ð ð 
€ˆ(Œ-ÑÔðð ñ Ôðð$ð $ð $ðð ð ðð ð ðð ð ðð ð ð €�˜hÑ'Ô'ðð ñ (Ô'ððð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð%ð %ð %ðð ð ðð ð ðð ð ð 
€Ð
ÑÔðð ñ Ôððð ð ð
 ð  ð  ð	ð 	ð 	ð €ˆmÑÔð,ð ,ð ,ð ,ð ,Ð#ñ ,ô ,ñ Ôð,ðð ð ð	ð 	ð 	ð 	ð 	ˆfñ 	ô 	ð 	ð)ð )ð )ð )ð )�e”nñ )ô )ð )ðD €�Ñ Ô ð8ð 8ð 8ð 8ð 8˜Ô*ñ 8ô 8ñ !Ô ð8ð €ˆW�o�o gÑ.Ô.Ñ /Ô /Ð /ð €�Ñ Ô ð%ð %ñ !Ô ð%ð 
€ˆ"Œ&ÑÔðð ñ Ôðð.
ð .
ð .
ð .
ð .
˜Hñ .
ô .
ð .
ðbbIð bIð bIð bIð bI�Xñ bIô bIð bIðJI6ð I6ð I6ð I6ð I6˜Xñ I6ô I6ð I6ðX/ð /ð /ð ð%"ð %"ð %"ð %"ð %" ñ %"ô %"ñ Ôð%"ðP
)ð 
)ð 
)ðUCð UCð UCð UCð UC�Hñ UCô UCð UCðp 2ð  2ð  2ð  2ð  2˜(Ô+ñ  2ô  2ð  2ðF5ð 5ð 5ð 5ð 5˜xÔ0ñ 5ô 5ð 5ð@ €ØÐ.¸VÀT¸Nðñ ô ðð ñô ðð €ØÐ1ÀÈ¸ðñ ô ðð ñô ðð ÐØÐ,¸6À4¸.ðñ ô ðð ñô ðð ÐØÐ/¸fÀe¸_ðñ ô ðð ñô ðð=.ð =.ð =.ð =.ð =.˜(ñ =.ô =.ð =.ð@T
ð T
ð T
ð T
ð T
˜8ñ T
ô T
ð T
ðn	ð 	ð 	ð ðe-ð e-ð e-ð e-ð e- ñ e-ô e-ñ Ôðe-ðPLð Lð Lð Lð Lˆxñ Lô Lð Lð8\!ð \!ð \!ð \!ð \! ñ \!ô \!ð \!ð~*!ð *!ð *!ð *!ð *! ñ *!ô *!ð *!ðZB;ð B;ð B;ð B;ð B; ñ B;ô B;ð B;ðJ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðs   Â<	C ÃCÃC