§
    ƒÛgš5  ã                   óB  — d dl mZmZ d dlZd dlZd dlZd dlmZmZ d dl	m
Z
mZmZ d dlmZ  eddg¦  «        ZdZd	„ Zd
„ Zd„ Z eej        ¦  «        Z eej        ¦  «        Zeez  Z e eddg¦  «        ¦  «        Zej        Zej        Z G d„ de¦  «        ZdZdZ dZ!ej"         #                    d¦  «        Z$d„ Z%d„ Z& G d„ de¦  «        Z' G d„ de¦  «        Z(d„ Z) G d„ de(¦  «        Z*edk    re*Z+nedk     re(Z+n e,e¦  «        ‚ G d„ dej-        ¦  «        Z.dS )é    )Ú
namedtupleÚOrderedDictN)ÚCodeTypeÚ
ModuleType)ÚerrorsÚutilsÚ	serialize©Ú	PYVERSIONÚopcode_infoÚargsizeé   c                 óL   — t          | dd¦  «        }|rt          | |¦  «        S | S )z°
    Objects that wraps function should provide a "__numba__" magic attribute
    that contains a name of an attribute that contains the actual python
    function object.
    Ú	__numba__N©Úgetattr)ÚobjÚattrs     úI/granary/edev/quantum/lib/python3.11/site-packages/numba/core/bytecode.pyÚget_function_objectr      s2   € õ �3˜ TÑ*Ô*€DØð "Ý�s˜DÑ!Ô!Ð!Ø€Jó    c           	      óB   — t          | dt          | dd¦  «        ¦  «        S )z"Shamelessly borrowed from llpythonÚ__code__Ú	func_codeNr   )r   s    r   Úget_code_objectr      s    € å�3˜
¥G¨C°¸dÑ$CÔ$CÑDÔDÐDr   c                 ó€   — g }| D ]8}t           j                             |¦  «        }|�|                     |¦  «         Œ9|S ©N)ÚdisÚopmapÚgetÚappend)ÚseqÚlstÚsÚcs       r   Ú_as_opcodesr&   #   sC   € Ø
€CØð ð ˆÝŒI�MŠM˜!ÑÔˆØˆ=Ø�JŠJ�q‰MŒMˆMøØ€Jr   ÚRETURN_VALUEÚRAISE_VARARGSc                   ój   — e Zd ZdZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
ed„ ¦   «         Zd	S )
ÚByteCodeInstzÄ
    Attributes
    ----------
    - offset:
        byte offset of opcode
    - opcode:
        opcode integer value
    - arg:
        instruction arg
    - lineno:
        -1 means unknown
    )ÚoffsetÚnextÚopcodeÚopnameÚargÚlinenoc                 óz   — || _         || _        || _        t          j        |         | _        || _        d| _        d S )Néÿÿÿÿ)r+   r,   r-   r   r.   r/   r0   ©Úselfr+   r-   r/   Ú
nextoffsets        r   Ú__init__zByteCodeInst.__init__C   s7   € ØˆŒØˆŒ	ØˆŒÝ”j Ô(ˆŒØˆŒØˆŒˆˆr   c                 ó   — | j         t          v S r   )r-   ÚJUMP_OPS©r4   s    r   Úis_jumpzByteCodeInst.is_jumpK   ó   € àŒ{�hÐ&Ð&r   c                 ó   — | j         t          v S r   )r-   ÚTERM_OPSr9   s    r   Úis_terminatorzByteCodeInst.is_terminatorO   r;   r   c                 ó²  — | j         sJ ‚t          dk    r)| j        d„ dD ¦   «         v r| j        | j        dz
  dz  z
  S nt          dk    rt          t          ¦  «        ‚t          dk    r=| j        t          v r| j        | j        dz  z   S | j        t          v sJ ‚| j        dz  dz
  S | j        t          v r| j        | j        z   S | j        t          v sJ ‚| j        S )N©é   é   c              3   ó:   K  — | ]}t           j        |         V — Œd S r   )r   r   )Ú.0Úks     r   ú	<genexpr>z/ByteCodeInst.get_jump_target.<locals>.<genexpr>^   sD   è è € ð Lð LØ#$õ  #œy¨œ|ð Lð Lð Lð Lð Lð Lr   )ÚJUMP_BACKWARDÚPOP_JUMP_BACKWARD_IF_TRUEÚPOP_JUMP_BACKWARD_IF_FALSEÚPOP_JUMP_BACKWARD_IF_NONEÚPOP_JUMP_BACKWARD_IF_NOT_NONEé   r   )rA   é
   )	r:   r   r-   r+   r/   ÚNotImplementedErrorÚJREL_OPSr,   ÚJABS_OPSr9   s    r   Úget_jump_targetzByteCodeInst.get_jump_targetS   s  € ð Œ|ÐÐÐÝ˜ÒÐØŒ{ð Lð Lð)KðLñ Lô Lð Lð Lð ”{ d¤h°¡l°aÑ%7Ñ7Ð7ðLõ ˜Ò Ð Ý%¥iÑ0Ô0Ð0å˜ÒÐØŒ{�hÐ&Ð&Ø”y 4¤8¨a¡<Ñ/Ð/à”{¥hÐ.Ð.Ð.Ð.Ø”x !‘| aÑ'Ð'àŒ{�hÐ&Ð&Ø”y 4¤8Ñ+Ð+à”{¥hÐ.Ð.Ð.Ð.Ø”x�r   c                 ó0   — d| j         | j        | j        fz  S )Nz%s(arg=%s, lineno=%d))r.   r/   r0   r9   s    r   Ú__repr__zByteCodeInst.__repr__u   s   € Ø&¨$¬+°t´xÀÄÐ)MÑMÐMr   c                 óX   — | j                              d¦  «        rdS | j         dk    rdS dS )zREffect of the block stack
        Returns +1 (push), 0 (none) or -1 (pop)
        ÚSETUP_rL   Ú	POP_BLOCKr2   r   )r.   Ú
startswithr9   s    r   Úblock_effectzByteCodeInst.block_effectx   s8   € ð
 Œ;×!Ò! (Ñ+Ô+ð 	Ø�1ØŒ[˜KÒ'Ð'Ø�2à�1r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r6   Úpropertyr:   r>   rQ   rS   rX   © r   r   r*   r*   4   s¨   € € € € € ðð ð F€Iðð ð ð ð'ð 'ñ „Xð'ð ð'ð 'ñ „Xð'ð  ð   ð   ðDNð Nð Nð ð	ð 	ñ „Xð	ð 	ð 	r   r*   rL   ÚNOPc              #   óŒ  K  — d}t          | ¦  «        }dx}}||k     r¦| |         }|t          z  }|t          k    ri| |         |z  }t          t          ¦  «        D ]}|| ||z            d|z  z  z  }Œ|t          z  }|t
          k    r|t          ||fV — |dt          z  z  }|}Œ‹nd}|t          z  }d}||||fV — |}||k     °¤dS dS )zd
    Returns a 4-int-tuple of
    (bytecode offset, opcode, argument, offset of next bytecode).
    r   é   N)ÚlenÚCODE_LENÚHAVE_ARGUMENTÚrangeÚARG_LENÚEXTENDED_ARGÚ
OPCODE_NOPÚ
NO_ARG_LEN)ÚcodeÚextended_argÚnr+   ÚiÚopr/   Újs           r   Ú_unpack_opargsrq   �   s  è è € ð
 €LÝˆD‰	Œ	€AØ€N€FˆQØ
ˆaŠ%ˆ%Ø�!ŒWˆØ	�X‰ˆØ•ÒÐØ�q”'˜LÑ(ˆCÝ�7‘^”^ð .ð .�Ø�t˜A ™E”{ q¨1¡uÑ-Ñ-��Ø•‰LˆAØ•\Ò!Ð!ð �z¨3°Ð2Ð2Ð2Ð2Ø" a­'¡kÑ1�Ø�Øð "ð ˆCØ•‰OˆAàˆØ�r˜3 Ð"Ð"Ð"Ð"Øˆð3 ˆaŠ%ˆ%ˆ%ˆ%ˆ%ˆ%r   c              #   ó˜   K  — dt           dt          fV — | D ]2\  }}}}|t          v r
|t          z  }|t          z   |||t          z   fV — Œ3dS )zpPatch the bytecode stream.

    - Adds a NOP bytecode at the start to avoid jump target being at the entry.
    r   N)ri   Ú_FIXED_OFFSETrP   )Ú	bc_streamr+   r-   r/   r5   s        r   Ú_patched_opargsru   ±   sz   è è € ð �j˜$¥Ð
.Ð.Ð.Ð.à+4ð Nð NÑ'ˆ�˜˜Zà•XÐÐØ•=Ñ ˆCØ•}Ñ$ f¨c°:ÅÑ3MÐMÐMÐMÐMÐMð	Nð Nr   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zd„ ZeZd„ ZdS )ÚByteCodeIterc                 ó„   — || _         t          t          t          | j         j        ¦  «        ¦  «        ¦  «        | _        d S r   )rk   Úiterru   rq   Úco_code)r4   rk   s     r   r6   zByteCodeIter.__init__Á   s1   € ØˆŒ	Ý�­¸¼	Ô8IÑ)JÔ)JÑKÔKÑLÔLˆŒ	ˆ	ˆ	r   c                 ó   — | S r   r_   r9   s    r   Ú__iter__zByteCodeIter.__iter__Å   s   € Øˆr   c                 ó*   — t          | j        ¦  «        S r   )r,   ry   r9   s    r   Ú_fetch_opcodezByteCodeIter._fetch_opcodeÈ   s   € Ý�D”I‰ŒÐr   c                 ó^   — |                       ¦   «         \  }}}}|t          ||||¬¦  «        fS )N)r+   r-   r/   r5   )r~   r*   r3   s        r   r,   zByteCodeIter.nextË   sC   € Ø*.×*<Ò*<Ñ*>Ô*>Ñ'ˆ�˜˜ZØ•|¨6¸&ÀcØ/9ð;ñ ;ô ;ð ;ð 	;r   c                 ór   — d}t          |¦  «        D ]$}t          | j        ¦  «        \  }}||d|z  z  z  }Œ%|S )Nr   rb   )rf   r,   ry   )r4   ÚsizeÚbufrn   Ú_offsetÚbytes         r   Úread_argzByteCodeIter.read_argÒ   sF   € ØˆÝ�t‘”ð 	#ð 	#ˆAÝ  ¤™OœO‰MˆG�TØ�4˜A ™E‘?Ñ"ˆCˆCØˆ
r   N)	rY   rZ   r[   r6   r|   r~   r,   Ú__next__r…   r_   r   r   rw   rw   À   si   € € € € € ðMð Mð Mðð ð ðð ð ð;ð ;ð ;ð
 €Hðð ð ð ð r   rw   c                   óf   — e Zd ZdZdZd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zed	„ ¦   «         Zd
„ ZdS )Ú	_ByteCodezF
    The decoded bytecode of a function, and related information.
    )	Úfunc_idÚco_namesÚco_varnamesÚ	co_constsÚco_cellvarsÚco_freevarsÚexception_entriesÚtableÚlabelsc                 ó¾  — |j         }t          d„ t          j        |j        ¦  «        D ¦   «         ¦  «        }|                     d¦  «         t          t          |¦  «        ¦  «        }|                      ||¦  «         || _	        |j
        | _
        |j        | _        |j        | _        |j        | _        |j        | _        || _        t!          |¦  «        | _        d S )Nc              3   ó*   K  — | ]}|t           z   V — Œd S r   )rs   )rD   Úxs     r   rF   z%_ByteCode.__init__.<locals>.<genexpr>å   s'   è è € ÐMÐM¨1�Q�Ñ&ÐMÐMÐMÐMÐMÐMr   r   )rk   Úsetr   Ú
findlabelsrz   Úaddr   rw   Ú_compute_linenor‰   rŠ   r‹   rŒ   r�   rŽ   r�   Úsortedr‘   )r4   r‰   rk   r‘   r�   s        r   r6   z_ByteCode.__init__â   s¿   € ØŒ|ˆåÐMÐMµ´¸t¼|Ñ0LÔ0LÐMÑMÔMÑMÔMˆØ�
Š
�1‰Œˆõ �L¨Ñ.Ô.Ñ/Ô/ˆØ×Ò˜U DÑ)Ô)Ð)àˆŒØœˆŒØÔ+ˆÔØœˆŒØÔ+ˆÔØÔ+ˆÔàˆŒ
Ý˜V‘n”nˆŒˆˆr   c                 óà   — t          j        |¦  «        D ] \  }}|t          z   }||v r|||         _        Œ!|j        }|                     ¦   «         D ]}|j        dk    r|j        }Œ||_        Œ|S )zI
        Compute the line numbers for all bytecode instructions.
        r   )r   Úfindlinestartsrs   r0   Úco_firstlinenoÚvalues)Úclsr�   rk   r+   r0   Ú
adj_offsetÚknownÚinsts           r   r˜   z_ByteCode._compute_linenoö   sŠ   € õ
 "Ô0°Ñ6Ô6ð 	2ð 	2‰NˆF�FØ¥-Ñ/ˆJØ˜UÐ"Ð"Ø+1��jÔ!Ô(øð Ô#ˆØ—L’L‘N”Nð 	$ð 	$ˆDØŒ{˜aÒÐØœ��à#�”�Øˆr   c                 óN   — t          | j                             ¦   «         ¦  «        S r   )ry   r�   r�   r9   s    r   r|   z_ByteCode.__iter__	  s   € Ý�D”J×%Ò%Ñ'Ô'Ñ(Ô(Ð(r   c                 ó   — | j         |         S r   ©r�   ©r4   r+   s     r   Ú__getitem__z_ByteCode.__getitem__  s   € ØŒz˜&Ô!Ð!r   c                 ó   — || j         v S r   r¤   r¥   s     r   Ú__contains__z_ByteCode.__contains__  s   € Ø˜œÐ#Ð#r   c                 ó€   ‡ ‡— ˆ fd„Šd                      ˆfd„‰ j                             ¦   «         D ¦   «         ¦  «        S )Nc                 ó4   •— | d         j         ‰j        v rdS dS )NrL   ú>ú )r+   r‘   )rn   r4   s    €r   Úlabel_markerz$_ByteCode.dump.<locals>.label_marker  s    ø€ Ø�ŒtŒ{˜dœkÐ)Ð)Ø�sà�sr   ú
c              3   ó^   •K  — | ]'}|d          j         dk    ¯d ‰|¦  «        f|z   z  V — Œ(dS )rL   ÚCACHEz
%s %10s	%sN)r.   )rD   rn   r­   s     €r   rF   z!_ByteCode.dump.<locals>.<genexpr>  sU   øè è € ð 4ð 4ØØ˜aœDœK¨7Ò2Ð2ð '¨<¨<¸©?¬?Ð*<¸qÑ*@ÑAà2Ð2Ð2Ð2ð4ð 4r   )Újoinr�   Úitems)r4   r­   s   `@r   Údumpz_ByteCode.dump  si   øø€ ð	ð 	ð 	ð 	ð 	ð �yŠyð 4ð 4ð 4ð 4Ø"&¤*×"2Ò"2Ñ"4Ô"4ð4ñ 4ô 4ñ 4ô 4ð 	4r   c           	      ó4  — i }|j         }|                     dt          j        ¦  «        }t	          |t
          ¦  «        r|j        }|                     ¦   «         D ]R}|j        dk    rE|t          |j
        ¦  «                 }	|	|vr'	 ||	         }
n# t          $ r ||	         }
Y nw xY w|
||	<   ŒS|D ]h}t	          |t          ¦  «        rQt          t          |¦  «        ¦  «        }|                     |                      |||j        |j        ¦  «        ¦  «         Œi|S )za
        Compute the globals used by the function with the given
        bytecode table.
        Ú__builtins__ÚLOAD_GLOBAL)Ú__globals__r    r   ÚbuiltinsÚ
isinstancer   Ú__dict__r�   r.   Ú_fix_LOAD_GLOBAL_argr/   ÚKeyErrorr   r   rw   ÚupdateÚ_compute_used_globalsrŒ   rŠ   )rž   Úfuncr�   rŒ   rŠ   ÚdÚglobsr¸   r¡   ÚnameÚvalueÚcoÚsubtables                r   r¾   z_ByteCode._compute_used_globals  s=  € ð ˆØÔ ˆØ—9’9˜^­U¬^Ñ<Ô<ˆÝ�h¥
Ñ+Ô+ð 	)ØÔ(ˆHà—L’L‘N”Nð 	$ð 	$ˆDØŒ{˜mÒ+Ð+ØÕ 4°T´XÑ >Ô >Ô?�Ø˜q�=�=ð/Ø % d¤˜˜øÝ#ð /ð /ð /Ø (¨¤˜˜˜ð/øøøà#�A�d‘Gøàð 	Oð 	OˆBÝ˜"�hÑ'Ô'ð OÝ&¥|°BÑ'7Ô'7Ñ8Ô8�Ø—’˜×2Ò2°4¸Ø35´<ÀÄñNô Nñ Oô Oð Oøàˆs   ÂBÂB$Â#B$c                 ód   — |                       | j        j        | j        | j        | j        ¦  «        S )zv
        Get a {name: value} map of the globals used by this code
        object and any nested code objects.
        )r¾   r‰   r¿   r�   rŒ   rŠ   r9   s    r   Úget_used_globalsz_ByteCode.get_used_globals:  s3   € ð
 ×)Ò)¨$¬,Ô*;¸T¼ZØ*.¬.¸$¼-ñIô Ið 	Ir   N)rY   rZ   r[   r\   r]   r6   Úclassmethodr˜   r|   r¦   r¨   r³   r¾   rÇ   r_   r   r   rˆ   rˆ   Ú   sº   € € € € € ðð ð$€Ið%ð %ð %ð( ðð ñ „[ðð$)ð )ð )ð"ð "ð "ð$ð $ð $ð	4ð 	4ð 	4ð ðð ñ „[ðð8Ið Ið Ið Ið Ir   rˆ   c                 ó@   — t           dk    rt           dk    sJ ‚| dz	  S | S )Nr@   rL   r
   )r/   s    r   r»   r»   C  s,   € Ý�GÒÐÝ˜GÒ#Ð#Ð#Ð#Ø�a‰xˆØ€Jr   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚByteCodePy311c                 óÐ   •— t          ¦   «                              |¦  «         d„ }t          j        |j        ¦  «        j        }t          t          ||¦  «        ¦  «        | _        d S )Nc                 ó”   — ddl m}  || j        t          z   | j        t          z   | j        t          z   | j        | j        ¬¦  «        }|S )Nr   )Ú_ExceptionTableEntry)ÚstartÚendÚtargetÚdepthÚlasti)r   rÎ   rÏ   rs   rÐ   rÑ   rÒ   rÓ   )ÚentrÎ   Úouts      r   Úfixup_ehz(ByteCodePy311.__init__.<locals>.fixup_ehN  sZ   € Ø0Ð0Ð0Ð0Ð0Ð0ð 'Ð&Ø”i¥-Ñ/°S´W½}Ñ5LØ”z¥MÑ1Ø”i s¤yðñ ô ˆCð
 ˆJr   )Úsuperr6   r   ÚBytecoderk   r�   ÚtupleÚmap)r4   r‰   rÖ   ÚentriesÚ	__class__s       €r   r6   zByteCodePy311.__init__K  s`   ø€ Ý‰Œ×Ò˜Ñ!Ô!Ð!ð		ð 		ð 		õ ”,˜wœ|Ñ,Ô,Ô>ˆÝ!&¥s¨8°WÑ'=Ô'=Ñ!>Ô!>ˆÔÐÐr   c                 ó¼   — g }| j         D ]8}|j        |cxk    r|j        k    rn Œ|                     |j        |f¦  «         Œ9|rt          |¦  «        d         }|S dS )zN
        Returns the exception entry for the given instruction offset
        rL   N)r�   rÏ   rÐ   r!   rÒ   Úmax)r4   r+   Ú
candidatesrÔ   s       r   Úfind_exception_entryz"ByteCodePy311.find_exception_entry\  s„   € ð ˆ
ØÔ)ð 	4ð 	4ˆCØŒy˜FÐ-Ð-Ò-Ð- c¤gÒ-Ð-Ð-Ð-Ð-Ø×!Ò! 3¤9¨cÐ"2Ñ3Ô3Ð3øØð 	Ý�j‘/”/ !Ô$ˆCØˆJð	ð 	r   )rY   rZ   r[   r6   rà   Ú__classcell__)rÜ   s   @r   rË   rË   J  sG   ø€ € € € € ð?ð ?ð ?ð ?ð ?ð"
ð 
ð 
ð 
ð 
ð 
ð 
r   rË   r@   c                   ój   — e Zd ZdZ ej        d¦  «        Zed„ ¦   «         Zd„ Z	d„ Z
ed„ ¦   «         ZdS )ÚFunctionIdentityzò
    A function's identity and metadata.

    Note this typically represents a function whose bytecode is
    being compiled, not necessarily the top-level user function
    (the two might be distinct, e.g. in the `@generated_jit` case).
    rL   c                 ó  — t          |¦  «        }t          |¦  «        }t          j        |¦  «        }|st	          j        d|z  ¦  «        ‚	 |j        }n# t          $ r
 |j        }Y nw xY w | ¦   «         }||_	        ||_
        |                     d¦  «        d         |_        ||_        t          j        |¦  «        |_        |j        €t          j        n|j        j        |_        t          j        |¦  «        |_        ||_        |j        |_        |j        |_        t5          |j        ¦  «        |_        t;          |j        ¦  «        |_        t?          | j         ¦  «        }d !                    |j
        |¦  «        |_"        ||_#        |S )zD
        Create the FunctionIdentity of the given function.
        z %s does not provide its bytecodeú.r2   Nz{}${})$r   r   r   Úpysignaturer   ÚByteCodeSupportErrorr[   ÚAttributeErrorrY   r¿   Úfunc_qualnameÚsplitÚ	func_namerk   ÚinspectÚ	getmoduleÚmoduleÚ_dynamic_modnameÚmodnameÚisgeneratorfunctionÚis_generatorÚpysigÚco_filenameÚfilenamerœ   Úfirstlinenorc   Ú
parametersÚ	arg_countÚlistÚ	arg_namesr,   Ú_unique_idsÚformatÚunique_nameÚ	unique_id)rž   Úpyfuncr¿   rk   ró   ré   r4   Úuids           r   Úfrom_functionzFunctionIdentity.from_function{  s„  € õ
 # 6Ñ*Ô*ˆÝ˜tÑ$Ô$ˆÝÔ! $Ñ'Ô'ˆØð 	;ÝÔ-Ø2°TÑ9ñ;ô ;ð ;ð	*Ø Ô-ˆMˆMøÝð 	*ð 	*ð 	*Ø œMˆMˆMˆMð	*øøøð ˆs‰uŒuˆØˆŒ	Ø*ˆÔØ&×,Ò,¨SÑ1Ô1°"Ô5ˆŒØˆŒ	ÝÔ'¨Ñ-Ô-ˆŒàœ;Ð.õ Ô.Ð.à!œ[Ô1ð 	Œõ $Ô7¸Ñ=Ô=ˆÔØˆŒ
ØÔ(ˆŒØÔ.ˆÔÝ˜UÔ-Ñ.Ô.ˆŒÝ˜eÔ.Ñ/Ô/ˆŒõ
 �3”?Ñ#Ô#ˆØ"Ÿ>š>¨$Ô*<¸cÑBÔBˆÔØˆŒàˆs   ÁA ÁA)Á(A)c                 ó6   — |                       | j        ¦  «        S )z:Copy the object and increment the unique counter.
        )r  r¿   r9   s    r   ÚderivezFunctionIdentity.derive¥  s   € ð ×!Ò! $¤)Ñ,Ô,Ð,r   c                 ó,   — t          | j        ¬¦  «        S )ú4
        NOTE: part of ReduceMixin protocol
        )rÿ   )Údictr¿   r9   s    r   Ú_reduce_stateszFunctionIdentity._reduce_statesª  s   € õ ˜4œ9Ð%Ñ%Ô%Ð%r   c                 ó,   — |                       |¦  «        S )r  )r  )rž   rÿ   s     r   Ú_rebuildzFunctionIdentity._rebuild°  s   € ð
 × Ò  Ñ(Ô(Ð(r   N)rY   rZ   r[   r\   Ú	itertoolsÚcountrû   rÈ   r  r  r  r	  r_   r   r   rã   rã   q  s„   € € € € € ðð ð "�)”/ !Ñ$Ô$€Kàð'ð 'ñ „[ð'ðR-ð -ð -ð
&ð &ð &ð ð)ð )ñ „[ð)ð )ð )r   rã   )/Úcollectionsr   r   r   rì   r
  Útypesr   r   Ú
numba.corer   r   r	   Únumba.core.utilsr   r   rs   r   r   r&   Ú	frozensetÚhasjrelrO   ÚhasjabsrP   r8   r=   rh   re   Úobjectr*   rd   rg   rj   r.   Úindexri   rq   ru   rw   rˆ   r»   rË   ÚByteCoderN   ÚReduceMixinrã   r_   r   r   ú<module>r     sº  ðØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø &Ð &Ð &Ð &Ð &Ð &àˆj˜¨¨Ñ4Ô4€ð
 €ð	ð 	ð 	ðEð Eð Eð
ð ð ð ˆ9�S”[Ñ!Ô!€Øˆ9�S”[Ñ!Ô!€Ø�hÑ€Øˆ9�[�[ .°/Ð!BÑCÔCÑDÔD€ØÔ€ØÔ!€ðNð Nð Nð Nð N�6ñ Nô Nð Nðb €Ø
€Ø€
àŒZ×Ò˜eÑ$Ô$€
ð!ð !ð !ðHNð Nð Nðð ð ð ð �6ñ ô ð ð4fIð fIð fIð fIð fI�ñ fIô fIð fIðRð ð ðð ð ð ð �Iñ ô ð ð> �ÒÐØ€H€HØ�ÒÐØ€H€Hà
Ð
˜iÑ
(Ô
(Ð(ðD)ð D)ð D)ð D)ð D)�yÔ,ñ D)ô D)ð D)ð D)ð D)r   