§
    ƒÛgö_  ã                   óÊ  — d 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 ddlmZ  eeg¦  «        Zi ej        d“ej        d“ej        d	“ej        d
“ej        d“ej        d“ej        d“ej        d“ej        d“ej         d“ej!        d“ej"        d“ej#        d“ej$        d“ej%        d“ej&        d“ej'        d“ej(        dej)        dej*        dej+        dej,        dej-        dej.        di¥Z/de/ej0        <   d e/ej1        <   ej2        d!ej3        d"ej4        d#ej5        d$ej6        d%ej7        d&ej8        d'ej9        d(ej:        d)i	Z; G d*„ d+e¦  «        Z<dS ),z*
Lowering implementation for object mode.
é    N)Úcached_property)ÚtypesÚutilsÚirÚ
generatorsÚcgutils)ÚForbiddenConstructÚLoweringErrorÚNumbaNotImplementedError)Ú	BaseLower)Ú
number_addF)Únumber_subtractF)Únumber_multiplyF)Únumber_truedivideF)Únumber_floordivideF)Únumber_remainderF)Únumber_powerF)Únumber_lshiftF)Únumber_rshiftF)Ú
number_andF)Ú	number_orF)Ú
number_xorF)r   T)r   T)r   T)r   T)r   T)r   T)r   T)r   T)r   T)r   T)r   T)r   T)Únumber_matrix_multiplyF)r   Tú==ú!=ú<z<=ú>z>=Úiszis notÚinc                   óú   ‡ — e Zd Zej        Zd„ Zˆ fd„Zd„ Zd„ Z	d„ Z
ed„ ¦   «         Zd„ Zd„ Zd#d
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd$d„Zd„ Zd„ Zd„ Zd%d„Zd„ Zd„ Zd#d„Zd„ Z d%d„Z!d„ Z"d „ Z#d!„ Z$d"„ Z%ˆ xZ&S )&ÚPyLowerc                 óR   — t          ¦   «         | _        t          ¦   «         | _        d S ©N)ÚsetÚ_frozen_stringsÚ
_live_vars©Úselfs    úK/granary/edev/quantum/lib/python3.11/site-packages/numba/core/pylowering.pyÚinitzPyLower.initG   s   € å"™uœuˆÔå™%œ%ˆŒˆˆó    c                 ó~   •— t          t          | ¦  «                             ¦   «          |                      ¦   «          d S r#   )Úsuperr!   Ú	pre_lowerÚ
init_pyapi)r(   Ú	__class__s    €r)   r.   zPyLower.pre_lowerM   s5   ø€ Ý�g�tÑÔ×&Ò&Ñ(Ô(Ð(Ø�ŠÑÔÐÐÐr+   c                 ó   — d S r#   © r'   s    r)   Ú
post_lowerzPyLower.post_lowerQ   s   € Øˆr+   c                 ó0   — |                       |¦  «         d S r#   )Ú	init_vars©r(   Úblocks     r)   Ú	pre_blockzPyLower.pre_blockT   s   € Ø�Š�uÑÔÐÐÐr+   c                 óh  — t          |t          j        ¦  «        r7|                      |¦  «        }|                      ||j        j        ¦  «         d S t          |t          j        ¦  «        r�|                      |j        j        ¦  «        }|                      |j	        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             |||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        rp|                      |j        j        ¦  «        }|                      |j	        j        ¦  «        }| j                             ||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r‰|                      |j        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             ||                      |j        ¦  «        |¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        ri|                      |j        j        ¦  «        }| j                             ||                      |j        ¦  «        ¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r�|                      |j        j        ¦  «        }|                      |j        j        ¦  «        }|                      |j
        j        ¦  «        }| j                             |||¦  «        }|                      |¦  «         d S t          |t          j        ¦  «        r~|                      |j
        j        ¦  «        }| j        r6| j                             |¦  «         | j                             | ¦  «         d S | j                              | j!        |¦  «         d S t          |t          j"        ¦  «        rç|                      |j#        j        ¦  «        }	|	j$        tJ          j         &                    d¦  «        k    r|	}
n| j         '                    |	¦  «        }
tJ          j         (                    |
j$        d ¦  «        }| j!         )                    d|
|¦  «        }| j*        |j+                 }| j*        |j,                 }| j!         -                    |||¦  «         d S t          |t          j.        ¦  «        r.| j*        |j                 }| j!         /                    |¦  «         d S t          |t          j0        ¦  «        r|  1                    |j
        ¦  «         d S t          |t          j2        ¦  «        rd S t          |t          j3        ¦  «        rn|j4        �5|                      |j4        j        ¦  «        }|  5                    |¦  «         nd }| j         6                    |¦  «         |  7                    ¦   «          d S tI          |¦  «        › d|› �}tq          |¦  «        ‚)Né   r   z, )9Ú
isinstancer   ÚAssignÚlower_assignÚstorevarÚtargetÚnameÚSetItemÚloadvarÚindexÚvalueÚpyapiÚobject_setitemÚcheck_int_statusÚDelItemÚobject_delitemÚSetAttrÚobject_setattrÚ_freeze_stringÚattrÚDelAttrÚobject_delattrÚStoreMapÚdctÚkeyÚdict_setitemÚReturnÚgenerator_infoÚdecrefÚgenlowerÚreturn_from_generatorÚ	call_convÚreturn_valueÚbuilderÚBranchÚcondÚtypeÚllvmliteÚIntTypeÚobject_istrueÚConstantÚicmp_unsignedÚblkmapÚtruebrÚfalsebrÚcbranchÚJumpÚbranchÚDelÚdelvarÚPopBlockÚRaiseÚ	exceptionÚincrefÚraise_objectÚreturn_exception_raisedr   )r(   ÚinstrD   r?   rC   ÚokrQ   rR   Úretvalr]   ÚistrueÚzeroÚpredÚtrÚflÚexcÚmsgs                    r)   Ú
lower_instzPyLower.lower_instW   sF  € Ý�d�BœIÑ&Ô&ð U	0Ø×%Ò% dÑ+Ô+ˆEØ�MŠM˜% ¤Ô!1Ñ2Ô2Ð2Ð2Ð2å˜�bœjÑ)Ô)ð Q	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6°5¸%Ñ@Ô@ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð J	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6°5Ñ9Ô9ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð D	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ”×*Ò*¨6Ø+/×+>Ò+>¸t¼yÑ+IÔ+IØ+0ñ2ô 2ˆBð ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœjÑ)Ô)ð <	0Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ”×*Ò*¨6Ø+/×+>Ò+>¸t¼yÑ+IÔ+IñKô KˆBà×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœkÑ*Ô*ð 6	0Ø—,’,˜tœxœ}Ñ-Ô-ˆCØ—,’,˜tœxœ}Ñ-Ô-ˆCØ—L’L ¤¤Ñ1Ô1ˆEØ”×(Ò(¨¨c°5Ñ9Ô9ˆBØ×!Ò! "Ñ%Ô%Ð%Ð%Ð%å˜�bœiÑ(Ô(ð /	0Ø—\’\ $¤*¤/Ñ2Ô2ˆFØÔ"ð ð ”
×!Ò! &Ñ)Ô)Ð)Ø”×3Ò3°DÑ9Ô9Ð9Ø�àŒN×'Ò'¨¬°fÑ=Ô=Ð=Ð=Ð=å˜�bœiÑ(Ô(ð #	0Ø—<’< ¤	¤Ñ/Ô/ˆDØŒy�HœK×/Ò/°Ñ2Ô2Ò2Ð2Ø��àœ×1Ò1°$Ñ7Ô7�Ý”;×'Ò'¨¬°TÑ:Ô:ˆDØ”<×-Ò-¨d°F¸DÑAÔAˆDØ”˜Tœ[Ô)ˆBØ”˜Tœ\Ô*ˆBØŒL× Ò   r¨2Ñ.Ô.Ð.Ð.Ð.å˜�bœgÑ&Ô&ð 	0Ø”[ ¤Ô-ˆFØŒL×Ò Ñ'Ô'Ð'Ð'Ð'å˜�bœfÑ%Ô%ð 	0Ø�KŠK˜œ
Ñ#Ô#Ð#Ð#Ð#å˜�bœkÑ*Ô*ð 	0ØˆDå˜�bœhÑ'Ô'ð 	0ØŒ~Ð)Ø—l’l 4¤>Ô#6Ñ7Ô7�ð —’˜CÑ Ô Ð Ð à�ØŒJ×#Ò# CÑ(Ô(Ð(Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*õ ˜$‘Z”ZÐ)Ð) 4Ð)Ð)ˆCÝ*¨3Ñ/Ô/Ð/r+   c                 ór   — ddl m} | j                             | j                             |¦  «        ¦  «        S )zeReturn a `OmittedArg` type instance as a LLVM value suitable for
        testing at runtime.
        r   )Ú
OmittedArg)Únumba.core.dispatcherr~   rE   ÚunserializeÚserialize_object)r(   r~   s     r)   Ú_omitted_typobjzPyLower._omitted_typobj¯   sC   € ð
 	5Ð4Ð4Ð4Ð4Ð4ØŒz×%Ò%ØŒJ×'Ò'¨
Ñ3Ô3ñ5ô 5ð 	5r+   c                 ó^  — |j         }t          |t          j        t          j        f¦  «        r|                      |j         ¦  «        S t          |t          j        ¦  «        r1|                      |j        ¦  «        }|  	                    |¦  «         |S t          |t          j
        ¦  «        r|                      |¦  «        S t          |t          j        ¦  «        r |                      |j        |j         ¦  «        S t          |t          j        ¦  «        r|                      |¦  «        S t          |t          j        ¦  «        �rÌ| j        j        j        j                             |j        ¦  «        }| j        |j                 }t1          j        | j        |¦  «        }|�J|j        t8          j        j        u r2|  	                    |¦  «         | j                             ||¦  «         �n| j          !                    |¦  «        }| j         "                    d|| j#        ¦  «        }| j         $                    |d¬¦  «        5 \  }	}
|
5  |  	                    |¦  «         | j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   |	5  | j          %                    |d¦  «        }| j                             ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   | j         &                    |¦  «        S tO          tQ          |¦  «        |¦  «        ‚)z?
        The returned object must have a new reference
        Nr   F)ÚlikelyrD   ))rD   r;   r   ÚConstÚFreeVarÚlower_constÚVarrB   r@   ro   ÚExprÚ
lower_exprÚGlobalÚlower_globalÚYieldÚlower_yieldÚArgÚfunc_irÚfunc_idÚpysigÚ
parametersÚgetÚfnargsrC   r   Úalloca_once_valuer[   ÚdefaultÚinspectÚ	ParameterÚemptyÚstorerE   Úget_typerc   r‚   Úif_elseÚobject_getattr_stringÚloadÚNotImplementedErrorr^   )r(   rr   rD   ÚvalÚparamÚobjÚslotÚtypobjÚ
is_omittedÚomittedÚpresents              r)   r=   zPyLower.lower_assign¸   s}  € ð ”
ˆÝ�e�bœh­¬
Ð3Ñ4Ô4ð &	:Ø×#Ò# E¤KÑ0Ô0Ð0Ý˜�rœvÑ&Ô&ð $	:Ø—,’,˜uœzÑ*Ô*ˆCØ�KŠK˜ÑÔÐØˆJÝ˜�rœwÑ'Ô'ð  	:Ø—?’? 5Ñ)Ô)Ð)Ý˜�rœyÑ)Ô)ð 	:Ø×$Ò$ U¤Z°´Ñ=Ô=Ð=Ý˜�rœxÑ(Ô(ð 	:Ø×#Ò# EÑ*Ô*Ð*Ý˜�rœvÑ&Ô&ñ 	:Ø”LÔ(Ô.Ô9×=Ò=¸e¼jÑIÔIˆEà”+˜eœkÔ*ˆCÝÔ,¨T¬\¸3Ñ?Ô?ˆDàÐ  U¤]µgÔ6GÔ6MÐ%MÐ%MØ—’˜CÑ Ô Ð Ø”×"Ò" 3¨Ñ-Ô-Ð-Ñ-ð œ×,Ò,¨SÑ1Ô1�Ø!œ\×7Ò7¸¸fØ8<Ô8LñNô N�
à”\×)Ò)¨*¸UÐ)ÑCÔCð 6ÑGYÈÐQXØ ð 6ð 6ØŸš CÑ(Ô(Ð(Øœ×*Ò*¨3°Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð !ð 6ð 6à"œj×>Ò>¸sÀGÑLÔL˜Øœ×*Ò*¨3°Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð	6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð ”<×$Ò$ TÑ*Ô*Ð*å%¥d¨5¡k¤k°5Ñ9Ô9Ð9sZ   ÉK-É	1JÉ:K-ÊJ
	Ê
K-ÊJ
	ÊK-Ê7KË
K-ËK	ËK-ËK	ËK-Ë-K1Ë4K1c                 óô  — | j         j        |j                 }|j        |u sJ ‚| j                             | ¦  «         t          j        | ||j        |j	        z  ¦  «        }| 
                    ¦   «          |                      |j        j        ¦  «        }| j                             |¦  «         | j                             | j        |¦  «         |                     ¦   «          | j                             ¦   «         S r#   )rU   Úyield_pointsrC   rr   rW   Úinit_generator_stater   Ú
LowerYieldÚ	live_varsÚweak_live_varsÚlower_yield_suspendrB   rD   r@   rE   ro   rY   rZ   r[   Úlower_yield_resumeÚ	make_none)r(   rr   ÚypÚyr¡   s        r)   rŽ   zPyLower.lower_yieldå   sØ   € ØÔ Ô-¨d¬jÔ9ˆØŒw˜$ˆˆˆˆØŒ×*Ò*¨4Ñ0Ô0Ð0õ Ô! $¨¨B¬L¸2Ô;LÑ,LÑMÔMˆØ	×ÒÑÔÐà�lŠl˜4œ:œ?Ñ+Ô+ˆàŒ
×Ò˜#ÑÔÐØŒ×#Ò# D¤L°#Ñ6Ô6Ð6ð 	
×ÒÑÔÐàŒz×#Ò#Ñ%Ô%Ð%r+   Fc                 óê  — |                       |j        j        ¦  «        }|                       |j        j        ¦  «        }t	          |t
          ¦  «        rJ ‚|t          v r4t          |         \  }}t          | j        |¦  «        } ||||¬¦  «        }nKt           
                    |j        |j        ¦  «        }|dk    r||}}| j                             |||¦  «        }|                      |¦  «         |S )N©Úinplacer   )rB   Úlhsr@   Úrhsr;   ÚstrÚPYTHON_BINOPMAPÚgetattrrE   ÚPYTHON_COMPAREOPMAPr”   ÚfnÚobject_richcompareÚcheck_error)	r(   ÚexprÚopr¶   r·   r¸   Úfnamer½   Úress	            r)   Úlower_binopzPyLower.lower_binopù   sã   € Ø�lŠl˜4œ8œ=Ñ)Ô)ˆØ�lŠl˜4œ8œ=Ñ)Ô)ˆÝ˜b¥#Ñ&Ô&Ð&Ð&Ð&Ø•Ð Ð Ý,¨RÔ0‰NˆE�7Ý˜œ UÑ+Ô+ˆBØ�"�S˜# wÐ/Ñ/Ô/ˆCˆCõ %×(Ò(¨¬°$´'Ñ:Ô:ˆBØ�TŠzˆzØ �S�Ø”*×/Ò/°°S¸"Ñ=Ô=ˆCØ×Ò˜ÑÔÐØˆ
r+   c                 ó�  ‡ — |j         dk    r‰                      ||j        d¬¦  «        S |j         dk    r‰                      ||j        d¬¦  «        S |j         dk    �r4‰                      |j        j        ¦  «        }|j        t          j        k    r‰ j         	                    |¦  «        }nÎ|j        t          j
        k    r‰ j                             |¦  «        }nž|j        t          j        k    rJ‰ j                             |¦  «        }‰                      |¦  «         ‰ j                             |¦  «        }n?|j        t          j        k    r‰ j                             |¦  «        }nt%          |¦  «        ‚‰                      |¦  «         |S |j         dk    �rˆ fd„|j        D ¦   «         }‰                      |j        j        ¦  «        }‰ j                             |¦  «        }|j        r~‰ j                             ‰                      |j        j        ¦  «        ¦  «        }‰ j                             ||¦  «        }‰                      |¦  «         ‰                      |¦  «         |}|j        s‰ j                             ||d ¦  «        }	n^ˆ fd	„|j        D ¦   «         }
‰ j                             |
¦  «        }‰ j                             |||¦  «        }	‰                      |¦  «         ‰                      |¦  «         ‰                      |	¦  «         |	S |j         d
k    ri‰                      |j        j        ¦  «        }‰ j                             |‰                      |j         ¦  «        ¦  «        }‰                      |¦  «         |S |j         dk    rDˆ fd„|j!        D ¦   «         }‰ j                             |¦  «        }‰                      |¦  «         |S |j         dk    rDˆ fd„|j!        D ¦   «         }‰ j         "                    |¦  «        }‰                      |¦  «         |S |j         dk    r¨‰ j         #                    |j$        ¦  «        }‰                      |¦  «         |j!        D ]j\  }}‰                      |j        ¦  «        }‰                      |j        ¦  «        }‰ j         %                    |||¦  «        }‰                      |¦  «         Œk|S |j         dk    rxˆ fd„|j!        D ¦   «         }‰ j         &                    ¦   «         }‰                      |¦  «         |D ]2}‰ j         '                    ||¦  «        }‰                      |¦  «         Œ3|S |j         dk    rP‰                      |j        j        ¦  «        }‰ j         (                    |¦  «        }‰                      |¦  «         |S |j         dk    �ro‰                      |j        j        ¦  «        }‰ j         )                    |¦  «        }tU          j+        ‰ j,        |¦  «        }‰ j         -                    d¦  «        }‰ j,         .                    |¦  «        5 \  }}|5  ‰ j         /                    |d|¦  «         d d d ¦  «         n# 1 swxY w Y   |5  ‰  0                    ¦   «          ‰ j         /                    |d‰ j         1                    ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰ j         /                    |d‰ j                             |¦  «        ¦  «         |S |j         dk    rQ‰                      |j        j        ¦  «        }‰ j         2                    |d¦  «        }‰  3                    |¦  «         |S |j         dk    rQ‰                      |j        j        ¦  «        }‰ j         2                    |d¦  «        }‰  3                    |¦  «         |S |j         dk    rü‰                      |j        j        ¦  «        }‰ j                             |¦  «        }‰                      |¦  «         ‰ j         4                    |¦  «        }‰ j5         6                    tn          j8        |j9        ¦  «        }‰ j,         :                    d||¦  «        }tU          j;        ‰ j,        |¦  «        5  ‰  <                    tz          ¦  «         d d d ¦  «         n# 1 swxY w Y   |S |j         dk    rp‰                      |j        j        ¦  «        }‰                      |j>        j        ¦  «        }‰ j         ?                    ||¦  «        }‰                      |¦  «         |S |j         dk    r¿‰                      |j        j        ¦  «        }‰ j5         6                    tn          j8        |j>        ¦  «        }‰ j         @                    |¦  «        } ‰                      | ¦  «         ‰ j         ?                    || ¦  «        }‰                      | ¦  «         ‰                      |¦  «         |S |j         dk    rë‰                      |jA        j        ¦  «        }!‰                      |jB        j        ¦  «        }"‰                      |jC        j        ¦  «        }#‰  D                    d¦  «        }$‰ j         E                    |$|"|#f¦  «        }%‰                      |$¦  «         ‰                      |%¦  «         ‰ j         ?                    |!|%¦  «        }‰                      |¦  «         |S |j         dk    r6‰                      |j        j        ¦  «        }&‰  3                    |&¦  «         |&S |j         d k    rt�          d!¦  «        ‚|j         d"k    rtU          jG        ‰ j        jH        ¦  «        S t%          |¦  «        ‚)#NÚbinopFrµ   Úinplace_binopTÚunaryÚcallc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r2   ©rB   r@   )Ú.0Úar(   s     €r)   ú
<listcomp>z&PyLower.lower_expr.<locals>.<listcomp>   s'   ø€ Ð?Ð?Ð?°�t—|’| A¤FÑ+Ô+Ð?Ð?Ð?r+   c                 óN   •— g | ]!\  }}|‰                      |j        ¦  «        f‘Œ"S r2   rË   )rÌ   ÚkÚvr(   s      €r)   rÎ   z&PyLower.lower_expr.<locals>.<listcomp>0  s0   ø€ ÐLÐLÐL¹4¸1¸a˜a §¢¨a¬fÑ!5Ô!5Ð6ÐLÐLÐLr+   r»   Úbuild_tuplec                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r2   rË   ©rÌ   Úitr(   s     €r)   rÎ   z&PyLower.lower_expr.<locals>.<listcomp>=  ó'   ø€ Ð@Ð@Ð@¨r�T—\’\ "¤'Ñ*Ô*Ð@Ð@Ð@r+   Ú
build_listc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r2   rË   rÔ   s     €r)   rÎ   z&PyLower.lower_expr.<locals>.<listcomp>B  rÖ   r+   Ú	build_mapÚ	build_setc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r2   rË   rÔ   s     €r)   rÎ   z&PyLower.lower_expr.<locals>.<listcomp>P  rÖ   r+   ÚgetiterÚiternexté   r   r:   Ú
pair_firstÚpair_secondÚexhaust_iterr   ÚgetitemÚstatic_getitemÚgetsliceÚsliceÚcastÚphizPHI not strippedÚnull)IrÁ   rÄ   r½   rB   rD   r@   ÚoperatorÚnegrE   Únumber_negativeÚposÚnumber_positiveÚnot_Ú
object_notrG   Úbool_from_boolÚinvertÚnumber_invertr    r¿   ÚargsÚfuncÚ
tuple_packÚvarargÚsequence_tupleÚsequence_concatrV   ÚkwsrÉ   Ú	dict_packÚobject_getattrrL   rM   ÚitemsÚ	list_packÚdict_newÚsizerS   Úset_newÚset_addÚobject_getiterÚ	iter_nextr   Úis_not_nullr[   Ú	tuple_newr�   Útuple_setitemÚcheck_occurredr±   Útuple_getitemro   Ú
tuple_sizeÚcontextÚget_constantr   ÚintpÚcountrc   Úif_unlikelyÚreturn_exceptionÚ
ValueErrorrC   Úobject_getitemÚlong_from_ssize_tr?   ÚstartÚstopÚget_builtin_objÚcall_function_objargsr
   Úget_null_valueÚpyobj)'r(   rÀ   rD   rÃ   Úargvalsr½   ró   ÚvarargsÚnew_argsÚretÚ	keyvaluesrù   r£   rü   rÐ   rÑ   rR   rs   rÕ   ÚiterobjÚitemÚis_validÚpairÚthenÚ	otherwiseÚfirstÚsecondÚtupÚtup_sizeÚexpected_sizeÚhas_wrong_sizerC   Úindexobjr?   r  r  ÚslicefnÚsliceobjr¡   s'   `                                      r)   rŠ   zPyLower.lower_expr
  s½  ø€ ØŒ7�gÒÐØ×#Ò# D¨$¬'¸5Ð#ÑAÔAÐAØŒW˜Ò'Ð'Ø×#Ò# D¨$¬'¸4Ð#Ñ@Ô@Ð@ØŒW˜ÒÑØ—L’L ¤¤Ñ1Ô1ˆEØŒw�(œ,Ò&Ð&Ø”j×0Ò0°Ñ7Ô7��Ø”�HœLÒ(Ð(Ø”j×0Ò0°Ñ7Ô7��Ø”�HœMÒ)Ð)Ø”j×+Ò+¨EÑ2Ô2�Ø×%Ò% cÑ*Ô*Ð*Ø”j×/Ò/°Ñ4Ô4��Ø”�HœOÒ+Ð+Ø”j×.Ò.¨uÑ5Ô5��å)¨$Ñ/Ô/Ð/Ø×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜ÒÑØ?Ð?Ð?Ð?°T´YÐ?Ñ?Ô?ˆGØ—’˜dœiœnÑ-Ô-ˆBØ”:×(Ò(¨Ñ1Ô1ˆDØŒ{ð  àœ*×3Ò3Ø $§¢¨T¬[Ô-=Ñ >Ô >ñ@ô @�àœ:×5Ò5°d¸GÑDÔD�Ø—’˜GÑ$Ô$Ð$Ø—’˜DÑ!Ô!Ð!Ø�Ø”8ð !à”j—o’o b¨$°Ñ5Ô5��ð MÐLÐLÐLÀ4Ä8ÐLÑLÔL�	Ø”j×*Ò*¨9Ñ5Ô5�Ø”j—o’o b¨$°Ñ4Ô4�Ø—’˜CÑ Ô Ð Ø�KŠK˜ÑÔÐØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜	Ò!Ð!Ø—,’,˜tœzœÑ/Ô/ˆCØ”*×+Ò+¨C°×1DÒ1DÀTÄYÑ1OÔ1OÑPÔPˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò%Ð%Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×'Ò'¨Ñ.Ô.ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò$Ð$Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×&Ò& uÑ-Ô-ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜Ò#Ð#Ø”*×%Ò% d¤iÑ0Ô0ˆCØ×Ò˜SÑ!Ô!Ð!Øœ
ð *ð *‘��1Ø—l’l 1¤6Ñ*Ô*�ØŸš Q¤VÑ,Ô,�Ø”Z×,Ò,¨S°#°uÑ=Ô=�Ø×%Ò% bÑ)Ô)Ð)Ð)ØˆJØŒW˜Ò#Ð#Ø@Ð@Ð@Ð@°T´ZÐ@Ñ@Ô@ˆEØ”*×$Ò$Ñ&Ô&ˆCØ×Ò˜SÑ!Ô!Ð!Øð *ð *�Ø”Z×'Ò'¨¨RÑ0Ô0�Ø×%Ò% bÑ)Ô)Ð)Ð)ØˆJØŒW˜	Ò!Ð!Ø—,’,˜tœzœÑ/Ô/ˆCØ”*×+Ò+¨CÑ0Ô0ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜
Ò"Ñ"Ø—l’l 4¤:¤?Ñ3Ô3ˆGØ”:×'Ò'¨Ñ0Ô0ˆDÝÔ*¨4¬<¸Ñ>Ô>ˆHØ”:×'Ò'¨Ñ*Ô*ˆDØ”×%Ò% hÑ/Ô/ð NÑ3D°D¸)Øð <ð <Ø”J×,Ò,¨T°1°dÑ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <àð Nð NØ×'Ò'Ñ)Ô)Ð)ð ”J×,Ò,¨T°1°d´j×6JÒ6JÑ6LÔ6LÑMÔMÐMð	Nð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð NðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð ŒJ×$Ò$ T¨1¨d¬j×.GÒ.GÈÑ.QÔ.QÑRÔRÐRØˆKØŒW˜Ò$Ð$Ø—<’< ¤
¤Ñ0Ô0ˆDØ”J×,Ò,¨T°1Ñ5Ô5ˆEØ�KŠK˜ÑÔÐØˆLØŒW˜Ò%Ð%Ø—<’< ¤
¤Ñ0Ô0ˆDØ”Z×-Ò-¨d°AÑ6Ô6ˆFØ�KŠK˜ÑÔÐØˆMØŒW˜Ò&Ð&Ø—l’l 4¤:¤?Ñ3Ô3ˆGØ”*×+Ò+¨GÑ4Ô4ˆCØ×Ò˜SÑ!Ô!Ð!à”z×,Ò,¨SÑ1Ô1ˆHØ œL×5Ò5µe´jÀ$Ä*ÑMÔMˆMØ!œ\×7Ò7¸Ø/7¸ñHô HˆNåÔ$ T¤\°>ÑBÔBð 2ð 2Ø×%Ò%¥jÑ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2àˆJØŒW˜	Ò!Ð!Ø—L’L ¤¤Ñ1Ô1ˆEØ—L’L ¤¤Ñ1Ô1ˆEØ”*×+Ò+¨E°5Ñ9Ô9ˆCØ×Ò˜SÑ!Ô!Ð!ØˆJØŒWÐ(Ò(Ð(Ø—L’L ¤¤Ñ1Ô1ˆEØ”L×-Ò-­e¬j¸$¼*ÑEÔEˆEØ”z×3Ò3°EÑ:Ô:ˆHØ×Ò˜XÑ&Ô&Ð&Ø”*×+Ò+¨E°8Ñ<Ô<ˆCØ�KŠK˜Ñ!Ô!Ð!Ø×Ò˜SÑ!Ô!Ð!ØˆJØŒW˜
Ò"Ð"Ø—\’\ $¤+Ô"2Ñ3Ô3ˆFØ—L’L ¤¤Ñ1Ô1ˆEØ—<’< ¤	¤Ñ/Ô/ˆDà×*Ò*¨7Ñ3Ô3ˆGØ”z×7Ò7¸À%ÈÀÑOÔOˆHØ�KŠK˜Ñ Ô Ð Ø×Ò˜XÑ&Ô&Ð&à”*×+Ò+¨F°HÑ=Ô=ˆCØ×Ò˜SÑ!Ô!Ð!àˆJàŒW˜ÒÐØ—,’,˜tœzœÑ/Ô/ˆCØ�KŠK˜ÑÔÐØˆJØŒW˜ÒÐÝÐ 2Ñ3Ô3Ð3àŒW˜ÒÐåÔ)¨$¬*Ô*:Ñ;Ô;Ð;õ & dÑ+Ô+Ð+sm   Ù[:ÙZÙ6[:ÚZ	Ú[:Ú	Z	Ú
[:ÚA[#Û[:Û#['	Û'[:Û*['	Û+[:Û:[>Ü[>ãc-ã-c1ã4c1c                 óÂ   — | j                              |¦  «        }| j                              |¦  «        }|                      |¦  «         |                      |¦  «         |S r#   )Úenv_managerÚ	add_constÚ
read_constr¿   ro   )r(   ÚconstrC   r  s       r)   r‡   zPyLower.lower_const­  sY   € àÔ ×*Ò*¨5Ñ1Ô1ˆØÔ×)Ò)¨%Ñ0Ô0ˆØ×Ò˜ÑÔÐØ�Š�CÑÔÐØˆ
r+   c                 ó  — |                       ¦   «         }| j                             ||                      |¦  «        ¦  «        }|                      |¦  «         	 |t
          v rt          d|z  | j        ¬¦  «        ‚n# t          $ r Y nw xY wt          t          |¦  «        rô|                      |¦  «        }| j        j        }| j                             |¦  «        5  | j                             ||                      d¦  «        ¦  «        }|                      ||¦  «        }| j        j        }	ddd¦  «         n# 1 swxY w Y   | j                             | j        j        ¦  «        }
|
                     ||¦  «         |
                     ||	¦  «         nu|}
t'          j        | j        |                      |
¦  «        ¦  «        5  | j                             |¦  «         |                      ¦   «          ddd¦  «         n# 1 swxY w Y   |
S )zÄ
        1) Check global scope dictionary.
        2) Check __builtins__.
            2a) is it a dictionary (for non __main__ module)
            2b) is it a module (for __main__ module)
        zbuiltins %s() is not supported)ÚlocÚ__builtins__N)Úget_module_dictrE   Údict_getitemrL   ro   Ú_unsupported_builtinsr	   r3  Ú	TypeErrorÚhasattrÚbuiltinsÚis_nullr[   Úbasic_blockÚif_thenÚbuiltin_lookuprç   r  Úadd_incomingr   r  Úraise_missing_global_errorrq   )r(   r@   rD   Úmoddictr£   Úobj_is_nullÚbbelseÚmodÚbuiltinÚbbifrt   s              r)   rŒ   zPyLower.lower_globalµ  s‡  € ð ×&Ò&Ñ(Ô(ˆØŒj×%Ò% g¨t×/BÒ/BÀ4Ñ/HÔ/HÑIÔIˆØ�Š�CÑÔÐð	ØÕ-Ð-Ð-Ý(Ð)IØ+/ñ*0Ø59´Xð?ñ ?ô ?ð ?ð .øõ ð 	ð 	ð 	àˆDð	øøøõ •8˜TÑ"Ô"ð 	/ØŸ,š, sÑ+Ô+ˆKØ”\Ô-ˆFà”×%Ò% kÑ2Ô2ð 0ð 0Ø”j×-Ò-¨gØ*.×*=Ò*=¸nÑ*MÔ*MñOô O�à×-Ò-¨c°4Ñ8Ô8�Ø”|Ô/�ð	0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ”\×%Ò% d¤jÔ&6Ñ7Ô7ˆFØ×Ò  VÑ,Ô,Ð,Ø×Ò ¨Ñ.Ô.Ð.Ð.ð ˆFÝÔ$ T¤\°4·<²<ÀÑ3GÔ3GÑHÔHð /ð /Ø”
×5Ò5°dÑ;Ô;Ð;Ø×,Ò,Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ˆs7   Á"A< Á<
B	ÂB	ÃAD9Ä9D=Å D=Ç/G?Ç?HÈHc                 ó   — | j         j        S r#   )Úenv_bodyÚglobalsr'   s    r)   r5  zPyLower.get_module_dictà  s   € ØŒ}Ô$Ð$r+   c                 ó²   — |                       ¦   «         }| j                             ||                      d¦  «        ¦  «        }|                      ||¦  «        S )Nr4  )r5  rE   r6  rL   r>  )r(   r@   rA  rD  s       r)   r  zPyLower.get_builtin_objã  sU   € à×&Ò&Ñ(Ô(ˆØŒj×%Ò% gØ&*×&9Ò&9¸.Ñ&IÔ&IñKô Kˆà×"Ò" 3¨Ñ-Ô-Ð-r+   c                 ó(  — | j                              ||                      |¦  «        ¦  «        }|                      |¦  «         | j        j        }t          j        | j        |                      |¦  «        ¦  «        5  | j          	                    ||                      |¦  «        ¦  «        }t          j        | j        |                      |¦  «        ¦  «        5  | j          
                    |¦  «         |                      ¦   «          ddd¦  «         n# 1 swxY w Y   | j        j        }ddd¦  «         n# 1 swxY w Y   | j                             | j         j        ¦  «        }|                     ||¦  «         |                     ||¦  «         |S )zÆ
        Args
        ----
        mod:
            The __builtins__ dictionary or module, as looked up in
            a module's globals.
        name: str
            The object to lookup
        N)rE   r6  rL   ro   r[   r<  r   r  r;  rû   r@  rq   rç   r  r?  )r(   rD  r@   ÚfromdictÚbbifdictÚfrommodÚbbifmodrE  s           r)   r>  zPyLower.builtin_lookupê  s×  € ð ”:×*Ò*¨3°×0CÒ0CÀDÑ0IÔ0IÑJÔJˆØ�Š�HÑÔÐØ”<Ô+ˆåÔ  ¤¨t¯|ª|¸HÑ/EÔ/EÑFÔFð 	/ð 	/à”j×/Ò/°°T×5HÒ5HÈÑ5NÔ5NÑOÔOˆGåÔ$ T¤\°4·<²<ÀÑ3HÔ3HÑIÔIð /ð /Ø”
×5Ò5°dÑ;Ô;Ð;Ø×,Ò,Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð ”lÔ.ˆGð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð ”,×"Ò" 4¤:Ô#3Ñ4Ô4ˆØ×Ò˜X xÑ0Ô0Ð0Ø×Ò˜W gÑ.Ô.Ð.àˆs7   Á=AD7Ã/DÄD7ÄD	ÄD7ÄD	ÄD7Ä7D;Ä>D;c                 óö   — t          j        | j        | j                             ¦   «         ¦  «        }t          j        | j        |¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z2
        Return if an exception occurred.
        N)r   r  r[   rE   Úerr_occurredr  rq   )r(   rQ  s     r)   r  zPyLower.check_occurred  sº   € õ Ô*¨4¬<Ø+/¬:×+BÒ+BÑ+DÔ+DñFô Fˆõ Ô  ¤¨|Ñ<Ô<ð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ÁA.Á.A2Á5A2c                 ó¸   — t          j        | j        |                      |¦  «        ¦  «        5  |                      ¦   «          ddd¦  «         n# 1 swxY w Y   |S )z*
        Return if *obj* is NULL.
        N)r   r  r[   r;  rq   ©r(   r£   s     r)   r¿   zPyLower.check_error  s“   € õ Ô  ¤¨t¯|ª|¸CÑ/@Ô/@ÑAÔAð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ˆ
s   ®AÁAÁAr   c                 ó  — t           j                             |j        |¦  «        }| j                             d||¦  «        }t          j        | j        |¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zI
        Raise an exception if *num* is smaller than *ok_value*.
        r   N)	r_   r   rb   r^   r[   Úicmp_signedr   r  rq   )r(   ÚnumÚok_valuers   rw   s        r)   rG   zPyLower.check_int_status  sÁ   € õ Œ[×!Ò! #¤(¨HÑ5Ô5ˆØŒ|×'Ò'¨¨S°"Ñ5Ô5ˆÝÔ  ¤¨tÑ4Ô4ð 	+ð 	+Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   ÁA>Á>BÂBc                 ó6   — t          j        | j        |¦  «        S r#   )r   r;  r[   rS  s     r)   r;  zPyLower.is_null$  s   € ÝŒ˜tœ|¨SÑ1Ô1Ð1r+   c                 ól   — |                       ¦   «          | j                             | j        ¦  «         dS )z=
        Return with the currently raised exception.
        N)Úcleanup_varsrY   Ú
return_excr[   r'   s    r)   rq   zPyLower.return_exception_raised'  s4   € ð 	×ÒÑÔÐØŒ×!Ò! $¤,Ñ/Ô/Ð/Ð/Ð/r+   c                 ó^   — t          | j                             |¦  «        ¦  «        | _        dS )z8
        Initialize live variables for *block*.
        N)r$   r�   Úget_block_entry_varsr&   r6   s     r)   r5   zPyLower.init_vars.  s'   € õ ˜dœl×?Ò?ÀÑFÔFÑGÔGˆŒˆˆr+   Nc                 ól   — || j         vr|                      ||¬¦  «        | j         |<   | j         |         S )N©Últype)ÚvarmapÚalloca)r(   r@   r`  s      r)   Ú_getvarzPyLower._getvar4  s8   € Ø�t”{Ð"Ð"Ø $§¢¨D¸ Ñ >Ô >ˆDŒK˜ÑØŒ{˜4Ô Ð r+   c                 ó`  — || j         v s
J |¦   «         ‚| j        |         }| j                             |¦  «        }t	          j        | j        |                      |¦  «        ¦  «        5  | j                             |¦  «         |  	                    ¦   «          ddd¦  «         n# 1 swxY w Y   |S )zC
        Load the llvm value of the variable named *name*.
        N)
r&   ra  r[   rŸ   r   r  r;  rE   Úraise_missing_name_errorrq   )r(   r@   Úptrr¡   s       r)   rB   zPyLower.loadvar9  så   € ð
 �t”Ð&Ð&Ð&¨Ñ&Ô&Ð&ØŒk˜$ÔˆØŒl×Ò Ñ$Ô$ˆÝÔ  ¤¨t¯|ª|¸CÑ/@Ô/@ÑAÔAð 	+ð 	+ØŒJ×/Ò/°Ñ5Ô5Ð5Ø×(Ò(Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð ˆ
s   Á(/B#Â#B'Â*B'c                 ó,  — | j                              |¦  «         |                      |¦  «        }|                      | j                             |¦  «        ¦  «         | j                             t          j        |j	        j
        ¦  «        |¦  «         dS )zy
        Delete the variable slot with the given name. This will decref
        the corresponding Python object.
        N)r&   Úremoverc  rV   r[   rŸ   r›   r   r  r^   Úpointee©r(   r@   rf  s      r)   rk   zPyLower.delvarF  s}   € ð 	Œ×Ò˜tÑ$Ô$Ð$Ø�lŠl˜4Ñ Ô ˆØ�Š�D”L×%Ò% cÑ*Ô*Ñ+Ô+Ð+ð 	Œ×Ò�7Ô1°#´(Ô2BÑCÔCÀSÑIÔIÐIÐIÐIr+   c                 óÀ  — || j         v o| }|                      ||j        ¬¦  «        }|r| j                             |¦  «        }n| j                              |¦  «         |j        |j        j        k    s5J t          |j        ¦  «        t          |j        j        ¦  «        f¦   «         ‚| j                             ||¦  «         |r|  	                    |¦  «         dS dS )z|
        Stores a llvm value and allocate stack slot if necessary.
        The llvm value can be of arbitrary type.
        r_  N)
r&   rc  r^   r[   rŸ   Úaddri  r¹   r›   rV   )r(   rD   r@   ÚclobberÚis_redefinerf  Úolds          r)   r>   zPyLower.storevarT  sã   € ð
 ˜dœoÐ-Ð=°g°+ˆØ�lŠl˜4 u¤zˆlÑ2Ô2ˆØð 	&Ø”,×#Ò# CÑ(Ô(ˆCˆCàŒO×Ò Ñ%Ô%Ð%ØŒz˜SœXÔ-Ò-Ð-Ð-µ°E´J±´Ý03°C´HÔ4DÑ0EÔ0Eð0GÑ-Ô-Ð-àŒ×Ò˜5 #Ñ&Ô&Ð&àð 	Ø�KŠK˜ÑÔÐÐÐð	ð 	r+   c                 óž   — | j         D ]D}|                      |¦  «        }|                      | j                             |¦  «        ¦  «         ŒEdS )z)
        Cleanup live variables.
        N)r&   rc  rV   r[   rŸ   rj  s      r)   rZ  zPyLower.cleanup_varsf  sU   € ð ”Oð 	0ð 	0ˆDØ—,’,˜tÑ$Ô$ˆCØ�KŠK˜œ×)Ò)¨#Ñ.Ô.Ñ/Ô/Ð/Ð/ð	0ð 	0r+   c                 óR  — |€$| j                              t          j        ¦  «        }| j                             | j        ¦  «        5  | j                             ||¬¦  «        }| j                             t          j
        |¦  «        |¦  «         ddd¦  «         n# 1 swxY w Y   |S )zœ
        Allocate a stack slot and initialize it to NULL.
        The default is to allocate a pyobject pointer.
        Use ``ltype`` to override.
        N)r@   )r
  Úget_value_typer   Úpyobjectr[   Ú
goto_blockÚentry_blockrb  r›   r   r  )r(   r@   r`  rf  s       r)   rb  zPyLower.allocan  sã   € ð ˆ=Ø”L×/Ò/µ´Ñ?Ô?ˆEØŒ\×$Ò$ TÔ%5Ñ6Ô6ð 	Cð 	CØ”,×%Ò% e°$Ð%Ñ7Ô7ˆCØŒL×Ò�wÔ5°eÑ<Ô<¸cÑBÔBÐBð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð ˆ
s   ÁA
BÂB Â#B c                 ó,   — |                       |¦  «        S r#   )rb  )r(   r@   Úfetypes      r)   Ú_alloca_varzPyLower._alloca_var{  s   € ð �{Š{˜4Ñ Ô Ð r+   c                 ó:   — | j                              |¦  «         d S r#   )rE   ro   )r(   rD   s     r)   ro   zPyLower.incref€  s   € ØŒ
×Ò˜%Ñ Ô Ð Ð Ð r+   c                 óœ   — | j                              t          j        ¦  «        }|j        |k    r| j                             |¦  «         dS dS )zp
        This is allow to be called on non pyobject pointer, in which case
        no code is inserted.
        N)r
  rr  r   rs  r^   rE   rV   )r(   rD   Úlpyobjs      r)   rV   zPyLower.decrefƒ  sL   € ð
 ”×,Ò,­U¬^Ñ<Ô<ˆØŒ:˜ÒÐØŒJ×Ò˜eÑ$Ô$Ð$Ð$Ð$ð  Ðr+   c                 ó,   — |                       |¦  «        S )z>
        Freeze a Python string object into the code.
        )r‡   )r(   Ústrings     r)   rL   zPyLower._freeze_stringŒ  s   € ð ×Ò Ñ'Ô'Ð'r+   )F)r   r#   )'Ú__name__Ú
__module__Ú__qualname__r   ÚPyGeneratorLowerÚGeneratorLowerr*   r.   r3   r8   r|   r   r‚   r=   rŽ   rÄ   rŠ   r‡   rŒ   r5  r  r>  r  r¿   rG   r;  rq   r5   rc  rB   rk   r>   rZ  rb  rx  ro   rV   rL   Ú__classcell__)r0   s   @r)   r!   r!   C   s7  ø€ € € € € àÔ0€Nð ð  ð  ðð ð ð ð ðð ð ðð ð ðV0ð V0ð V0ðp ð5ð 5ñ „_ð5ð+:ð +:ð +:ðZ&ð &ð &ð(ð ð ð ð"a,ð a,ð a,ðFð ð ð'ð 'ð 'ðV%ð %ð %ð.ð .ð .ðð ð ð<+ð +ð +ðð ð ð+ð +ð +ð +ð2ð 2ð 2ð0ð 0ð 0ðHð Hð Hð!ð !ð !ð !ð
ð ð ðJð Jð Jðð ð ð ð$0ð 0ð 0ðð ð ð ð!ð !ð !ð
!ð !ð !ð%ð %ð %ð(ð (ð (ð (ð (ð (ð (r+   r!   )=Ú__doc__r:  ré   r˜   Ú	functoolsr   Úllvmlite.irr_   Ú
numba.corer   r   r   r   r   Únumba.core.errorsr	   r
   r   Únumba.core.loweringr   r$   Úlocalsr7  rl  ÚsubÚmulÚtruedivÚfloordivrD  ÚpowÚlshiftÚrshiftÚand_Úor_ÚxorÚiaddÚisubÚimulÚitruedivÚ	ifloordivÚimodÚipowÚilshiftÚirshiftÚiandÚiorÚixorrº   ÚmatmulÚimatmulÚeqÚneÚltÚleÚgtÚgeÚis_Úis_notÚcontainsr¼   r!   r2   r+   r)   ú<module>r¬     sº  ððð ð
 €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ð9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9à )Ð )Ð )Ð )Ð )Ð )ð
 ˜˜V˜H™œÐ ðØ„LÐ'ðà„LÐ,ðð „LÐ,ðð ÔÐ2ð	ð
 ÔÐ4ðð „LÐ-ðð „LÐ)ðð „OÐ-ðð „OÐ-ðð „MÐ(ðð „LÐ&ðð „LÐ'ðð „MÐ'ðð „MÐ,ðð  „MÐ,ð!ð" ÔÐ2ð#ð$ ÔÐ4ð%ð& „MÐ-Ø„MÐ)ØÔÐ-ØÔÐ-Ø„MÐ'Ø„LÐ%Ø„MÐ'ð3ð €ð8 $E€�”Ñ  Ø$D€�Ô Ñ !ð „K�Ø„K�Ø„K�Ø„K�Ø„K�Ø„K�Ø„L�$Ø„O�XØÔ�tð
Ð ðM	(ð M	(ð M	(ð M	(ð M	(ˆiñ M	(ô M	(ð M	(ð M	(ð M	(r+   