§
    ñyIf?’  ã            
      ó�  — d Z ddlmZ ddlZddlmZ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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mZmZm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z'm(Z(m)Z) e
rddl*m+Z+ eej,        ej-        ej.        ej/        f         Z0eee1         ee2         ee3         ee4         f         Z5eej6        ej7        ej8        ej,        f         Z9dZ:dZ;dZ<dYd„Z=d„ Z>d„ Z?d„ Z@dZd„ZAd[d„ZBd\d'„ZCd]d0„ZDd^d2„ZE eeEejF        ej7        ej8        ej,        ej-        ej.        ej/        fe1¬3¦  «        ZG eeEej7        ejF        ej8        ej,        ej-        ej.        ej/        fe2¬3¦  «        ZH eeEej8        ej7        ejF        ej,        ej.        fe3¬3¦  «        ZI eeEej,        ej7        ejF        ej8        ej,        ej.        fe4¬3¦  «        ZJd4„ ZKd_d`d6„ZL	 d_dad8„ZMd9„ ZNd_dbd:„ZOd_dbd;„ZPd_dbd<„ZQ	 d_dcd>„ZRd_dbd?„ZSd_dbd@„ZTd_dbdA„ZU	 d_dddF„ZVdZdG„ZWd_dbdH„ZX	 d_dedK„ZY	 d_dfdN„ZZd_dbdO„Z[d_dbdP„Z\d_dbdQ„Z]d_dbdR„Z^	 d_dgdT„Z_dhdU„Z`	 d_didW„Zad[dX„ZbdS )jz#Astroid hooks for various builtins.é    )ÚannotationsN)ÚCallableÚIterable)Úpartial)ÚTYPE_CHECKINGÚAnyÚIteratorÚNoReturnÚTypeÚUnionÚcast)Ú	argumentsÚhelpersÚinference_tipÚnodesÚobjectsÚutil)ÚAstroidBuilder)ÚInferenceContext)ÚAstroidTypeErrorÚAttributeInferenceErrorÚInferenceErrorÚMroErrorÚUseInferenceDefault)ÚAstroidManager)Úscoped_nodes)ÚConstFactoryResultÚInferenceResultÚSuccessfulInferenceResult)ÚInstancezobject.__new__a…  
class whatever(object):
    def join(self, iterable):
        return {rvalue}
    def replace(self, old, new, count=None):
        return {rvalue}
    def format(self, *args, **kwargs):
        return {rvalue}
    def encode(self, encoding='ascii', errors=None):
        return b''
    def decode(self, encoding='ascii', errors=None):
        return u''
    def capitalize(self):
        return {rvalue}
    def title(self):
        return {rvalue}
    def lower(self):
        return {rvalue}
    def upper(self):
        return {rvalue}
    def swapcase(self):
        return {rvalue}
    def index(self, sub, start=None, end=None):
        return 0
    def find(self, sub, start=None, end=None):
        return 0
    def count(self, sub, start=None, end=None):
        return 0
    def strip(self, chars=None):
        return {rvalue}
    def lstrip(self, chars=None):
        return {rvalue}
    def rstrip(self, chars=None):
        return {rvalue}
    def rjust(self, width, fillchar=None):
        return {rvalue}
    def center(self, width, fillchar=None):
        return {rvalue}
    def ljust(self, width, fillchar=None):
        return {rvalue}
aþ  
class whatever(object):
    def join(self, iterable):
        return {rvalue}
    def replace(self, old, new, count=None):
        return {rvalue}
    def decode(self, encoding='ascii', errors=None):
        return u''
    def capitalize(self):
        return {rvalue}
    def title(self):
        return {rvalue}
    def lower(self):
        return {rvalue}
    def upper(self):
        return {rvalue}
    def swapcase(self):
        return {rvalue}
    def index(self, sub, start=None, end=None):
        return 0
    def find(self, sub, start=None, end=None):
        return 0
    def count(self, sub, start=None, end=None):
        return 0
    def strip(self, chars=None):
        return {rvalue}
    def lstrip(self, chars=None):
        return {rvalue}
    def rstrip(self, chars=None):
        return {rvalue}
    def rjust(self, width, fillchar=None):
        return {rvalue}
    def center(self, width, fillchar=None):
        return {rvalue}
    def ljust(self, width, fillchar=None):
        return {rvalue}
Úreturnr
   c                 ó   — t          ¦   «         ‚©N)r   © ó    úY/var/www/piapp/venv/lib/python3.11/site-packages/astroid/brain/brain_builtin_inference.pyÚ_use_defaultr'   Œ   s   € Ý
Ñ
Ô
Ðr%   c                óH  — |                      |¬¦  «        }t          t          ¦   «         ¦  «                             |¦  «        d         }|                     ¦   «         D ]B}| |_        d|_        d|_        d|j        v r| g|j        d<   |g| j        |j	        <   | |_        ŒCdS )z-Function to extend builtin str/unicode class.)ÚrvalueÚwhateverNÚ	__class__)
Úformatr   r   Ústring_buildÚ	mymethodsÚparentÚlinenoÚ
col_offsetÚlocalsÚname)Ú
class_nodeÚcoder)   ÚfakeÚmethods        r&   Ú_extend_string_classr8   �   s©   € à�;Š;˜fˆ;Ñ%Ô%€DÝ�.Ñ*Ô*Ñ+Ô+×8Ò8¸Ñ>Ô>¸zÔJ€DØ—.’.Ñ"Ô"ð #ð #ˆØ"ˆŒØˆŒØ ˆÔØ˜&œ-Ð'Ð'Ø*4¨ˆFŒM˜+Ñ&Ø*0¨ˆ
Ô˜&œ+Ñ&Ø"ˆŒˆð#ð #r%   c                ó‚   — t          ¦   «         j        }|                      ¦   «         D ]\  }} |||         ¦  «         Œd S r#   )r   Úbuiltins_moduleÚitems)Úclass_transformsÚbuiltin_astÚ
class_nameÚ	transforms       r&   Ú_extend_builtinsr@   ž   sR   € Ý Ñ"Ô"Ô2€KØ!1×!7Ò!7Ñ!9Ô!9ð +ð +Ñˆ
�IØˆ	�+˜jÔ)Ñ*Ô*Ð*Ð*ð+ð +r%   c                 ó’   — t          t          t          t          d¬¦  «        t          t          t          d¬¦  «        dœ¦  «         dS )z"Called by astroid_bootstrapping().zb'')r5   r)   z'')ÚbytesÚstrN)r@   r   r8   ÚBYTES_CLASSÚ	STR_CLASSr$   r%   r&   Úon_bootstraprF   ¤   sN   € ååÕ1½ÈEÐRÑRÔRÝÕ/µiÈÐMÑMÔMð	
ð 	
ñô ð ð ð r%   Úboolc                óÞ  — |dk    rÍ|                       ¦   «         j        dk    r°t          | j        t          j        ¦  «        r‘| j        j        dk    r�t          | j        t          j        ¦  «        rbt          | j        j	        ¦  «        dk    rEt          | j        j	        d         t          j
        ¦  «        r| j        j	        d         j        dv rdS t          | j        t          j        ¦  «        r| j        j        |k    rdS t          | j        t          j        ¦  «        rI| j        j        dk    o8t          | j        j        t          j        ¦  «        o| j        j        j        d	k    S dS )
NÚtypeÚreé   r   >   ÚMatchÚPatternFTÚfromkeysÚdict)Úrootr3   Ú
isinstanceÚfuncr   ÚNamer/   ÚAssignÚlenÚtargetsÚ
AssignNameÚ	AttributeÚattrnameÚexpr)ÚnodeÚbuiltin_names     r&   Ú_builtin_filter_predicater]   ®   s9  € à˜ÒÐØ�IŠI‰KŒKÔ Ò$Ð$Ý�t”y¥%¤*Ñ-Ô-ð %àŒIŒN˜fÒ$Ð$Ý�t”{¥E¤LÑ1Ô1ð %å�”Ô#Ñ$Ô$¨Ò)Ð)Ý�t”{Ô*¨1Ô-­uÔ/?Ñ@Ô@ð *àŒKÔ Ô"Ô'Ð+?Ð?Ð?ð ˆuÝ�$”)�UœZÑ(Ô(ð ¨T¬Y¬^¸|Ò-KÐ-KØˆtÝ�$”)�Uœ_Ñ-Ô-ð 
àŒIÔ *Ò,ð .Ý˜4œ9œ>­5¬:Ñ6Ô6ð.à”	”Ô# vÒ-ð	
ð
 ˆ5r%   Úmanagerr   ÚNonec                óœ   ‡— 	 ddˆfd
„}|                       t          j        t          |¦  «        t	          t
          |¬¦  «        ¦  «         dS )z Register a new transform function for the given *builtin_name*.

    The transform function must accept two parameters, a node and
    an optional context.
    Nr[   ú
nodes.CallÚcontextúInferenceContext | NoneÚkwargsr   r!   r	   c                óÊ   •—  ‰| |¬¦  «        }|rD|j         s| |_         |j        €| j        |_        t          |d¦  «        r|j        €| j        |_        t	          |g¦  «        S )N©rb   r1   )r/   r0   Úhasattrr1   Úiter)r[   rb   rd   Úresultr?   s       €r&   Ú_transform_wrapperz6register_builtin_transform.<locals>._transform_wrapperÔ   sy   ø€ ð �˜4¨Ð1Ñ1Ô1ˆØð 	4Ø”=ð %ð !%�”àŒ}Ð$Ø $¤�”õ �v˜|Ñ,Ô,ð 4°Ô1BÐ1JØ$(¤O�Ô!Ý�V�H‰~Œ~Ðr%   )r\   r#   )r[   ra   rb   rc   rd   r   r!   r	   )Úregister_transformr   ÚCallr   r   r]   )r^   r?   r\   rj   s    `  r&   Úregister_builtin_transformrm   Ë   sr   ø€ ð >Bðð ð ð ð ð ð ð& ×ÒÝŒ
ÝÐ(Ñ)Ô)ÝÕ)¸ÐEÑEÔEñô ð ð ð r%   r[   ra   rb   rc   Ú	node_typeútype[nodes.BaseContainer]r?   úACallable[[SuccessfulInferenceResult], nodes.BaseContainer | None]únodes.BaseContainerc                ó  — | j         }|s) || j        | j        | j        | j        | j        ¬¦  «        S t          | j         ¦  «        dk    rt          ¦   «         ‚|\  } ||¦  «        }|sr	 t          | 	                    |¬¦  «        ¦  «        }n!# t          t          f$ r}t          |‚d }~ww xY wt          |t          j        ¦  «        rt          ‚ ||¦  «        }|rt          |t          j        ¦  «        rt          ‚|S )N©r0   r1   r/   Ú
end_linenoÚend_col_offsetrK   rf   )Úargsr0   r1   r/   rt   ru   rU   r   ÚnextÚinferr   ÚStopIterationrQ   r   ÚUninferableBase)	r[   rb   rn   r?   rv   ÚargÚtransformedÚinferredÚexcs	            r&   Ú_container_generic_inferencer   î   s#  € ð Œ9€DØð 
ØˆyØ”;Ø”Ø”;Ø”ØÔ.ð
ñ 
ô 
ð 	
õ ˆ4Œ9�~„~˜ÒÐÝ!Ñ#Ô#Ð#à�F€SØ�)˜C‘.”.€KØð *ð	/Ý˜CŸIšI¨g˜IÑ6Ô6Ñ7Ô7ˆHˆHøÝ¥Ð.ð 	/ð 	/ð 	/Ý%¨3Ð.øøøøð	/øøøå�h¥Ô 4Ñ5Ô5ð 	&Ý%Ð%Ø�i Ñ)Ô)ˆØð "�* [µ$Ô2FÑGÔGð "Ý!Ð!ØÐs   Á+#B ÂB-Â B(Â(B-r{   r   ÚklassÚ	iterablesú>tuple[type[nodes.BaseContainer] | type[ContainerObjects], ...]Ú
build_eltsÚBuiltContainersúnodes.BaseContainer | Nonec                óÄ  — t          | |¦  «        r| S t          | |¦  «        r¯t          t          t          j        t
          f         | ¦  «        } t          d„ | j        D ¦   «         ¦  «        rd„ | j        D ¦   «         }nÄg }| j        D ]H}|sŒt          j	        ||¬¦  «        }|r+t          j
        ||¬¦  «        }|                     |¦  «         ŒInqt          | t          j        ¦  «        rd„ | j        D ¦   «         }nEt          | t          j        ¦  «        r)t          | j        t           t"          f¦  «        r| j        }nd S |                      ||¦  «        ¬¦  «        S )Nc              3  óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S r#   )rQ   r   ÚConst©Ú.0Úelts     r&   ú	<genexpr>z/_container_generic_transform.<locals>.<genexpr>  s.   è è € Ð@Ð@°�z˜#�uœ{Ñ+Ô+Ð@Ð@Ð@Ð@Ð@Ð@r%   c                óL   — g | ]!}t          t          j        |¦  «        j        ‘Œ"S r$   )r   r   rˆ   Úvaluer‰   s     r&   ú
<listcomp>z0_container_generic_transform.<locals>.<listcomp>  s'   € ÐEÐEÐE°S•D�œ cÑ*Ô*Ô0ÐEÐEÐEr%   rf   )ÚoriginalrŽ   c                ó„   — g | ]=}t          |d          t          j        ¦  «        r|d          j        nt	          ¦   «         ‘Œ>S )r   )rQ   r   rˆ   rŽ   r'   )rŠ   Úitems     r&   r�   z0_container_generic_transform.<locals>.<listcomp>,  sK   € ð 
ð 
ð 
àõ (¨¨Q¬µ´Ñ=Ô=ÐQˆD�ŒGŒMˆMÅ<Á>Ä>ð
ð 
ð 
r%   )Úelts)rQ   r   r   r   ÚBaseContainerÚContainerObjectsÚallr“   r   Ú
safe_inferÚEvaluatedObjectÚappendÚDictr;   rˆ   rŽ   rC   rB   Úfrom_elements)	r{   rb   r€   r�   rƒ   r“   Úelementr}   Úevaluated_objects	            r&   Ú_container_generic_transformrž     s�  € õ �#�uÑÔð Øˆ
Ý�#�yÑ!Ô!ð Ý•5�Ô,Õ.>Ð>Ô?ÀÑEÔEˆÝÐ@Ð@°s´xÐ@Ñ@Ô@Ñ@Ô@ð 	2ØEÐE¸C¼HÐEÑEÔEˆDˆDð ˆDØœ8ð 2ð 2�Øð ØÝœ?¨7¸GÐDÑDÔD�Øð 2Ý',Ô'<Ø!(°ð(ñ (ô (Ð$ð —K’KÐ 0Ñ1Ô1Ð1øð2õ 
�C�œÑ	$Ô	$ð 	ð
ð 
àœ	ð
ñ 
ô 
ˆˆõ 
�C�œÑ	%Ô	%ð ­*°S´YÅÅeÀÑ*MÔ*Mð ØŒyˆˆàˆtØ×Ò J J¨tÑ$4Ô$4ÐÑ5Ô5Ð5r%   ú7tuple[type[nodes.NodeNG] | type[ContainerObjects], ...]c                óX   — t          t          ||||¬¦  «        }t          | |||¦  «        S )N)rb   r€   r�   rƒ   )r   rž   r   )r[   rb   r€   r�   rƒ   Útransform_funcs         r&   Ú_infer_builtin_containerr¢   7  s=   € õ Ý$ØØØØðñ ô €Nõ (¨¨g°u¸nÑMÔMÐMr%   )r€   r�   rƒ   c                ó†  — d„ }	 t          |                      |¦  «        ¦  «        }n!# t          t          f$ r}t          |‚d }~ww xY wt          |t          j        ¦  «        r|j        }nÖ ||¦  «        r½g }|j	        D ]²} ||¦  «        st	          ¦   «         ‚t          |j	        ¦  «        dk    rt	          ¦   «         ‚t          |j	        d         t          j        t          j        t          j        f¦  «        st	          ¦   «         ‚|                     t          |j	        ¦  «        ¦  «         Œ³nt	          ¦   «         ‚|S )Nc                ód   — t          | t          j        t          j        t          j        f¦  «        S r#   )rQ   r   ÚListÚTupleÚSet)Úns    r&   Úis_iterablez_get_elts.<locals>.is_iterablev  s   € Ý˜!�eœj­%¬+µu´yÐAÑBÔBÐBr%   é   r   )rw   rx   r   ry   r   rQ   r   rš   r;   r“   rU   r¦   rˆ   rS   r™   Útuple)r{   rb   r©   r}   r~   r;   r‹   s          r&   Ú	_get_eltsr¬   u  sJ  € ðCð Cð Cð+Ý˜Ÿ	š	 'Ñ*Ô*Ñ+Ô+ˆˆøÝ�MÐ*ð +ð +ð +Ý! sÐ*øøøøð+øøøå�(�EœJÑ'Ô'ð $Ø”ˆˆØ	ˆ�XÑ	Ô	ð $ØˆØ”=ð 	*ð 	*ˆCð
 �;˜sÑ#Ô#ð ,Ý)Ñ+Ô+Ð+Ý�3”8‰}Œ} Ò!Ð!Ý)Ñ+Ô+Ð+Ý˜cœh qœk­E¬K½¼ÅeÄjÐ+QÑRÔRð ,Ý)Ñ+Ô+Ð+Ø�LŠL�˜sœx™œÑ)Ô)Ð)Ð)ð	*õ "Ñ#Ô#Ð#Ø€Ls   …"( ¨A¹AÁAú
nodes.Dictc                ó  — t           j                             | |¬¦  «        }|                     ¦   «         s|                     ¦   «         rt
          ‚|j        }t          |j         	                    ¦   «         ¦  «        }|s4|s2t          j        | j        | j        | j        | j        | j        ¬¦  «        S |r|sd„ |D ¦   «         }nut#          |¦  «        dk    r*|r(t%          |d         |¦  «        }d„ |D ¦   «         }||z   }n8t#          |¦  «        dk    rt%          |d         |¦  «        }nt          ¦   «         ‚t          j        | j        | j        | j        | j        | j        ¬¦  «        }|                     |¦  «         |S )aC  Try to infer a dict call to a Dict node.

    The function treats the following cases:

        * dict()
        * dict(mapping)
        * dict(iterable)
        * dict(iterable, **kwargs)
        * dict(mapping, **kwargs)
        * dict(**kwargs)

    If a case can't be inferred, we'll fallback to default inference.
    rf   rs   c                ó@   — g | ]\  }}t          j        |¦  «        |f‘ŒS r$   ©r   rˆ   ©rŠ   ÚkeyrŽ   s      r&   r�   zinfer_dict.<locals>.<listcomp>³  s+   € ÐDÐDÐD©z¨s°E•%”+˜cÑ"Ô" EÐ*ÐDÐDÐDr%   rK   r   c                ó@   — g | ]\  }}t          j        |¦  «        |f‘ŒS r$   r°   r±   s      r&   r�   zinfer_dict.<locals>.<listcomp>·  s+   € ÐCÐCÐC©j¨c°5•”˜SÑ!Ô! 5Ð)ÐCÐCÐCr%   ©r1   r0   r/   rt   ru   )r   ÚCallSiteÚ	from_callÚhas_invalid_argumentsÚhas_invalid_keywordsr   Úpositional_argumentsÚlistÚkeyword_argumentsr;   r   rš   r0   r1   r/   rt   ru   rU   r¬   Úpostinit)	r[   rb   Úcallrv   rd   r;   r“   ÚkeysrŽ   s	            r&   Ú
infer_dictr¿   ’  s—  € õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DØ×!Ò!Ñ#Ô#ð " t×'@Ò'@Ñ'BÔ'Bð "Ý!Ð!àÔ$€DÝ�$Ô(×.Ò.Ñ0Ô0Ñ1Ô1€Fð ð 
˜ð 
åŒzØ”;Ø”Ø”;Ø”ØÔ.ð
ñ 
ô 
ð 	
ð ð $�dð $àDÐD¸VÐDÑDÔDˆˆÝ	ˆT‰Œ�aŠˆ˜Fˆå˜˜aœ 'Ñ*Ô*ˆØCÐC¸FÐCÑCÔCˆØ�t‘ˆˆÝ	ˆT‰Œ�aŠˆÝ˜$˜qœ' 7Ñ+Ô+ˆˆå!Ñ#Ô#Ð#ÝŒJØ”?ØŒ{ØŒ{Ø”?ØÔ*ðñ ô €Eð 
‡N‚N�5ÑÔÐØ€Lr%   úobjects.Superc                óP  — t          | j        ¦  «        dk    rt          ‚|                      ¦   «         }t	          |t
          j        ¦  «        st          ‚|j        dvrt          ‚t          j	        |¦  «        }|€J ‚| j        s%|}|j        dk    r|}n·| 
                    ¦   «         }n¢	 t          | j        d                              |¬¦  «        ¦  «        }n!# t          t          f$ r}t          |‚d}~ww xY w	 t          | j        d                              |¬¦  «        ¦  «        }n!# t          t          f$ r}t          |‚d}~ww xY wt	          |t          j        ¦  «        st	          |t          j        ¦  «        rt          ‚t#          j        ||||| ¬¦  «        }| |_        |S )a€  Understand super calls.

    There are some restrictions for what can be understood:

        * unbounded super (one argument form) is not understood.

        * if the super call is not inside a function (classmethod or method),
          then the default inference will be used.

        * if the super arguments can't be inferred, the default inference
          will be used.
    rK   )Úclassmethodr7   NrÂ   r   rf   )Úmro_pointerÚmro_typeÚ
self_classÚscoper½   )rU   rv   r   rÆ   rQ   r   ÚFunctionDefrI   r   Úget_wrapping_classÚinstantiate_classrw   rx   r   ry   r   rz   r   ÚSuperr/   )r[   rb   rÆ   ÚclsrÃ   rÄ   r~   Ú	super_objs           r&   Úinfer_superrÍ   È  sÅ  € õ ˆ4Œ9�~„~˜ÒÐå!Ð!à�JŠJ‰LŒL€EÝ�e�UÔ.Ñ/Ô/ð "å!Ð!Ø„zÐ2Ð2Ð2å!Ð!å
Ô
)¨%Ñ
0Ô
0€CØˆ?ˆ?ˆ?ØŒ9ð /Øˆð Œ:˜Ò&Ð&ØˆHˆHà×,Ò,Ñ.Ô.ˆHˆHð	/Ý˜tœy¨œ|×1Ò1¸'Ð1ÑBÔBÑCÔCˆKˆKøÝ¥Ð.ð 	/ð 	/ð 	/Ý%¨3Ð.øøøøð	/øøøð	/Ý˜DœI aœL×.Ò.°wÐ.Ñ?Ô?Ñ@Ô@ˆHˆHøÝ¥Ð.ð 	/ð 	/ð 	/Ý%¨3Ð.øøøøð	/øøøõ �+�tÔ3Ñ4Ô4ð "½
Ø•$Ô&ñ9ô 9ð "õ "Ð!å”ØØØØØðñ ô €Ið €IÔØÐs0   Â*.C ÃC7Ã*C2Ã2C7Ã;.D* Ä*EÄ;EÅEc                ó^  — t          | j        ¦  «        dvrt          ‚	 t          | j        d                              |¬¦  «        ¦  «        }t          | j        d                              |¬¦  «        ¦  «        }n!# t
          t          f$ r}t          |‚d }~ww xY wt          |t          j	        ¦  «        st          |t          j	        ¦  «        rt          j
        t          j
        fS t          |t          j        ¦  «        ot          |j        t          ¦  «        }|st          ‚||j        fS )N)rª   é   r   rf   rK   )rU   rv   r   rw   rx   r   ry   rQ   r   rz   ÚUninferabler   rˆ   rŽ   rC   )r[   rb   ÚobjÚattrr~   Ú	is_strings         r&   Ú_infer_getattr_argsrÔ     s  € Ý
ˆ4Œ9�~„~˜VÐ#Ð#å!Ð!ð+Ý�4”9˜Q”<×%Ò%¨gÐ%Ñ6Ô6Ñ7Ô7ˆÝ�D”I˜a”L×&Ò&¨wÐ&Ñ7Ô7Ñ8Ô8ˆˆøÝ�MÐ*ð +ð +ð +Ý! sÐ*øøøøð+øøøõ �#•tÔ+Ñ,Ô,ð 2µ
¸4ÅÔAUÑ0VÔ0Vð 2õ Ô¥Ô!1Ð1Ð1å˜4¥¤Ñ-Ô-ÐMµ*¸T¼ZÍÑ2MÔ2M€IØð "Ý!Ð!à�”
ˆ?Ðs   ŸAA< Á<BÂBÂBc                ó.  — t          | |¦  «        \  }}t          |t          j        ¦  «        s*t          |t          j        ¦  «        st	          |d¦  «        st          j        S 	 t          |                     ||¬¦  «        ¦  «        S # t          t          t          f$ rm t          | j        ¦  «        dk    rR	 t          | j        d                              |¬¦  «        ¦  «        cY S # t          t          f$ r}t          |‚d}~ww xY wY nw xY wt          ‚)zÁUnderstand getattr calls.

    If one of the arguments is an Uninferable object, then the
    result will be an Uninferable object. Otherwise, the normal attribute
    lookup will be done.
    Úigetattrrf   rÏ   rª   N)rÔ   rQ   r   rz   rg   rÐ   rw   rÖ   ry   r   r   rU   rv   rx   r   )r[   rb   rÑ   rÒ   r~   s        r&   Úinfer_getattrr×      s%  € õ $ D¨'Ñ2Ô2�I€Cˆå�3�Ô,Ñ-Ô-ð å�d�DÔ0Ñ1Ô1ð õ �s˜JÑ'Ô'ð õ
 ÔÐð3Ý�C—L’L ¨w�LÑ7Ô7Ñ8Ô8Ð8øÝ�>Õ+BÐCð 3ð 3ð 3ÝˆtŒy‰>Œ>˜QÒÐð3Ý˜DœI aœL×.Ò.°wÐ.Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@øÝ!¥>Ð2ð 3ð 3ð 3Ý)¨sÐ2øøøøð3øøøð	 Ðð3øøøõ Ðs6   Á%#B	 Â	/DÂ9-C)Ã&DÃ)DÃ:DÄDÄDÄDc                ó˜  — 	 t          | |¦  «        \  }}t          |t          j        ¦  «        s*t          |t          j        ¦  «        st	          |d¦  «        st          j        S |                     ||¬¦  «         n;# t          $ r t          j        cY S t          $ r t          j
        d¦  «        cY S w xY wt          j
        d¦  «        S )aM  Understand hasattr calls.

    This always guarantees three possible outcomes for calling
    hasattr: Const(False) when we are sure that the object
    doesn't have the intended attribute, Const(True) when
    we know that the object has the attribute and Uninferable
    when we are unsure of the outcome of the function call.
    Úgetattrrf   FT)rÔ   rQ   r   rz   rg   rÐ   rÙ   r   r   r   rˆ   )r[   rb   rÑ   rÒ   s       r&   Úinfer_hasattrrÚ   <  sà   € ð"Ý'¨¨gÑ6Ô6‰	ˆˆTå�s�DÔ0Ñ1Ô1ð	$å˜$¥Ô 4Ñ5Ô5ð	$õ ˜3 	Ñ*Ô*ð	$õ
 Ô#Ð#Ø�Š�D 'ˆÑ*Ô*Ð*Ð*øÝð  ð  ð  åÔÐÐÐÝ"ð "ð "ð "åŒ{˜5Ñ!Ô!Ð!Ð!Ð!ð"øøøõ Œ;�tÑÔÐs   ‚A"A= Á%A= Á=B5ÂB5Â4B5c                ó‚  — t          | j        ¦  «        dk    rt          ‚| j        d         }	 t          |                     |¬¦  «        ¦  «        }n## t
          t          f$ r t          j        cY S w xY wt          |t          j
        ¦  «        rt          j        S t          j        |                     ¦   «         ¦  «        S )zÒUnderstand callable calls.

    This follows Python's semantics, where an object
    is callable if it provides an attribute __call__,
    even though that attribute is something which can't be
    called.
    rK   r   rf   )rU   rv   r   rw   rx   r   ry   r   rÐ   rQ   rz   r   rˆ   Úcallable)r[   rb   Úargumentr}   s       r&   Úinfer_callablerÞ   W  s³   € õ ˆ4Œ9�~„~˜ÒÐå!Ð!àŒy˜Œ|€Hð Ý˜Ÿš¨w˜Ñ7Ô7Ñ8Ô8ˆˆøÝ�MÐ*ð  ð  ð  ÝÔÐÐÐð øøøå�(�DÔ0Ñ1Ô1ð  ÝÔÐÝŒ;�x×(Ò(Ñ*Ô*Ñ+Ô+Ð+s   ®#A ÁA2Á1A2úobjects.Propertyc           	     óø  — t          | j        ¦  «        dk     rt          ‚| j        d         }	 t          |                     |¬¦  «        ¦  «        }n!# t
          t          f$ r}t          |‚d}~ww xY wt          |t          j	        t          j
        f¦  «        st          ‚t          j        ||j        | j        | j        ¬¦  «        }| |_        |                     g |j        t%          |dd¦  «        ¬¦  «         |S )zxUnderstand `property` class.

    This only infers the output of `property`
    call, not the arguments themselves.
    rK   r   rf   N)Úfunctionr3   r0   r1   Údoc_node)Úbodyrv   râ   )rU   rv   r   rw   rx   r   ry   rQ   r   rÇ   ÚLambdar   ÚPropertyr3   r0   r1   r/   r¼   rÙ   )r[   rb   Úgetterr}   r~   Ú	prop_funcs         r&   Úinfer_propertyrè   m  s	  € õ ˆ4Œ9�~„~˜ÒÐå!Ð!àŒY�qŒ\€Fð+Ý˜Ÿš¨W˜Ñ5Ô5Ñ6Ô6ˆˆøÝ�MÐ*ð +ð +ð +Ý! sÐ*øøøøð+øøøõ �h¥Ô!2µE´LÐ AÑBÔBð "Ý!Ð!åÔ ØØŒ]ØŒ{Ø”?ð	ñ ô €Ið €IÔØ×ÒØØŒ]Ý˜ :¨tÑ4Ô4ð ñ ô ð ð
 Ðs   ®#A ÁA0Á#A+Á+A0c                ó  — t          | j        ¦  «        dk    rt          ‚| j        st          j        d¦  «        S | j        d         }	 t          |                     |¬¦  «        ¦  «        }n## t          t          f$ r t          j
        cY S w xY wt          |t          j        ¦  «        rt          j
        S |                     |¬¦  «        }t          |t          j        ¦  «        rt          j
        S t          j        |¦  «        S )zUnderstand bool calls.rK   Fr   rf   )rU   rv   r   r   rˆ   rw   rx   r   ry   r   rÐ   rQ   rz   Ú
bool_value)r[   rb   rÝ   r}   rê   s        r&   Ú
infer_boolrë   ’  só   € å
ˆ4Œ9�~„~˜ÒÐå!Ð!àŒ9ð "ÝŒ{˜5Ñ!Ô!Ð!àŒy˜Œ|€Hð Ý˜Ÿš¨w˜Ñ7Ô7Ñ8Ô8ˆˆøÝ�MÐ*ð  ð  ð  ÝÔÐÐÐð øøøå�(�DÔ0Ñ1Ô1ð  ÝÔÐà×$Ò$¨WÐ$Ñ5Ô5€JÝ�*�dÔ2Ñ3Ô3ð  ÝÔÐÝŒ;�zÑ"Ô"Ð"s   Á	#A- Á-BÂBc                ó€   — t          | j        ¦  «        dk    rt          ‚t          j        | j        d         |¦  «        S )z+Understand the one-argument form of *type*.rK   r   )rU   rv   r   r   Úobject_type©r[   rb   s     r&   Ú
infer_typerï   ©  s4   € å
ˆ4Œ9�~„~˜ÒÐÝ!Ð!åÔ˜tœy¨œ|¨WÑ5Ô5Ð5r%   c                ó�  ‡— | j         }dt          |¦  «        cxk     rdk    s	n t          ‚t          t          j        |¬¦  «        Šˆfd„|D ¦   «         }|D ]v}|rt          |t          j        ¦  «        rt          ‚t          |t          j	        ¦  «        st          ‚t          |j
        t          d¦  «        t          f¦  «        st          ‚Œwt          |¦  «        dk     r)|                     dgdt          |¦  «        z
  z  ¦  «         t          j        | j        | j        | j        | j        | j        ¬¦  «        } |j        |Ž  |S )zUnderstand `slice` calls.r   rÏ   rf   c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r$   r$   )rŠ   r{   Ú
infer_funcs     €r&   r�   zinfer_slice.<locals>.<listcomp>¸  s!   ø€ Ð,Ð,Ð, ˆJˆJ�s‰OŒOÐ,Ð,Ð,r%   Nrs   )rv   rU   r   r   r   r—   rQ   rz   r   rˆ   rŽ   rI   ÚintÚextendÚSlicer0   r1   r/   rt   ru   r¼   )r[   rb   rv   r{   Ú
slice_noderò   s        @r&   Úinfer_slicer÷   ±  sS  ø€ àŒ9€DØ�s�4‰yŒyÐÐÒÐ˜AÒÐÐÐÝ!Ð!å�œ°'Ð:Ñ:Ô:€JØ,Ð,Ð,Ð, tÐ,Ñ,Ô,€DØð &ð &ˆØð 	&•j ¥dÔ&:Ñ;Ô;ð 	&Ý%Ð%Ý˜#�uœ{Ñ+Ô+ð 	&Ý%Ð%Ý˜#œ)¥d¨4¡j¤jµ#Ð%6Ñ7Ô7ð 	&Ý%Ð%ð	&õ ˆ4�y„y�1‚}€}à�Š�T�F˜a¥# d¡)¤)™mÑ,Ñ-Ô-Ð-å”ØŒ{Ø”?ØŒ{Ø”?ØÔ*ðñ ô €Jð €JÔ˜ÐÐØÐr%   únodes.ClassDefrd   r   úIterator[Instance]c                óF   — t          |                      ¦   «         f¦  «        S r#   )rh   rÉ   )r[   rb   rd   s      r&   Ú_infer_object__new__decoratorrû   Ð  s!   € õ
 �×'Ò'Ñ)Ô)Ð+Ñ,Ô,Ð,r%   c                óª   — | j         sdS | j         j        D ]<}t          |t          j        ¦  «        r |                     ¦   «         t
          k    r dS Œ=dS )zfPredicate before inference_tip.

    Check if the given ClassDef has an @object.__new__ decorator
    FT)Ú
decoratorsr   rQ   rX   Ú	as_stringÚOBJECT_DUNDER_NEW)r[   Ú	decorators     r&   Ú#_infer_object__new__decorator_checkr  Ø  s`   € ð
 Œ?ð Øˆuà”_Ô*ð ð ˆ	Ý�i¥¤Ñ1Ô1ð 	Ø×"Ò"Ñ$Ô$Õ(9Ò9Ð9Ø�t�tøØˆ5r%   c                ó  — t           j                             | |¬¦  «        }|j        rt	          d¦  «        ‚t          |j        ¦  «        dk    r$t	          dt          |j        ¦  «        › �¦  «        ‚|j        \  }}	 t          |                     |¬¦  «        ¦  «        }n!# t          t          f$ r}t          |‚d}~ww xY wt          |t          j        ¦  «        st	          d¦  «        ‚	 t          ||¬¦  «        }n# t          $ r}t          |‚d}~ww xY w	 t          j        |||¦  «        }nG# t"          $ r%}t	          dt%          |¦  «        z   ¦  «        |‚d}~wt&          $ r}t          |‚d}~ww xY wt          j        |¦  «        S )a  Infer issubclass() calls.

    :param nodes.Call callnode: an `issubclass` call
    :param InferenceContext context: the context for the inference
    :rtype nodes.Const: Boolean Const value of the `issubclass` call
    :raises UseInferenceDefault: If the node cannot be inferred
    rf   z2TypeError: issubclass() takes no keyword argumentsrª   úExpected two arguments, got NzTypeError: arg 1 must be classúTypeError: )r   rµ   r¶   r»   r   rU   r¹   rw   rx   r   ry   rQ   r   ÚClassDefÚ_class_or_tuple_to_containerr   Úobject_issubclassr   rC   r   rˆ   )	Úcallnoderb   r½   Úobj_nodeÚclass_or_tuple_nodeÚobj_typer~   Úclass_containerÚissubclass_bools	            r&   Úinfer_issubclassr  ç  sÉ  € õ Ô×'Ò'¨¸'Ð'ÑBÔB€DØÔð Xå!Ð"VÑWÔWÐWÝ
ˆ4Ô$Ñ%Ô%¨Ò*Ð*Ý!ØK­3¨tÔ/HÑ+IÔ+IÐKÐKñ
ô 
ð 	
ð %)Ô$=Ñ!€HÐ!ð+Ý˜Ÿš¨w˜Ñ7Ô7Ñ8Ô8ˆˆøÝ�MÐ*ð +ð +ð +Ý! sÐ*øøøøð+øøøå�h¥¤Ñ/Ô/ð DÝ!Ð"BÑCÔCÐCð+Ý6Ø¨ð
ñ 
ô 
ˆˆøõ ð +ð +ð +Ý! sÐ*øøøøð+øøøð+Ý!Ô3°H¸oÈwÑWÔWˆˆøÝð Eð Eð EÝ! -µ#°c±(´(Ñ":Ñ;Ô;ÀÐDøøøøÝð +ð +ð +Ý! sÐ*øøøøð+øøøåŒ;�Ñ'Ô'Ð'sT   Á?#B# Â#CÂ4B<Â<CÃ.D  Ä 
DÄ
DÄDÄD2 Ä2
E6Ä< EÅE6Å)E1Å1E6r  únodes.Constc                ó~  — t           j                             | |¬¦  «        }|j        rt	          d¦  «        ‚t          |j        ¦  «        dk    r$t	          dt          |j        ¦  «        › �¦  «        ‚|j        \  }}	 t          ||¬¦  «        }n# t          $ r}t          |‚d}~ww xY w	 t          j
        |||¦  «        }nG# t          $ r%}t	          dt          |¦  «        z   ¦  «        |‚d}~wt          $ r}t          |‚d}~ww xY wt          |t          j        ¦  «        rt          ‚t#          j        |¦  «        S )z�Infer isinstance calls.

    :param nodes.Call callnode: an isinstance call
    :raises UseInferenceDefault: If the node cannot be inferred
    rf   z2TypeError: isinstance() takes no keyword argumentsrª   r  Nr  )r   rµ   r¶   r»   r   rU   r¹   r  r   r   Úobject_isinstancer   rC   r   rQ   r   rz   r   rˆ   )r  rb   r½   r	  r
  r  r~   Úisinstance_bools           r&   Úinfer_isinstancer    sr  € õ Ô×'Ò'¨¸'Ð'ÑBÔB€DØÔð Xå!Ð"VÑWÔWÐWÝ
ˆ4Ô$Ñ%Ô%¨Ò*Ð*Ý!ØK­3¨tÔ/HÑ+IÔ+IÐKÐKñ
ô 
ð 	
ð %)Ô$=Ñ!€HÐ!ð+Ý6Ø¨ð
ñ 
ô 
ˆˆøõ ð +ð +ð +Ý! sÐ*øøøøð+øøøð+Ý!Ô3°H¸oÈwÑWÔWˆˆøÝð Eð Eð EÝ! -µ#°c±(´(Ñ":Ñ;Ô;ÀÐDøøøøÝð +ð +ð +Ý! sÐ*øøøøð+øøøå�/¥4Ô#7Ñ8Ô8ð "Ý!Ð!ÝŒ;�Ñ'Ô'Ð's<   Á?B Â
B(ÂB#Â#B(Â,C Ã
DÃ C-Ã-DÃ:DÄDr   úlist[InferenceResult]c                óF  ‡— 	 t          |                      ‰¬¦  «        ¦  «        }n$# t          $ r}t          | ‰¬¦  «        |‚d }~ww xY wt	          |t
          j        ¦  «        r9	 ˆfd„|j        D ¦   «         }n'# t          $ r}t          | ‰¬¦  «        |‚d }~ww xY w|g}|S )Nrf   rî   c                óV   •— g | ]%}t          |                     ‰¬ ¦  «        ¦  «        ‘Œ&S )rf   )rw   rx   )rŠ   r[   rb   s     €r&   r�   z0_class_or_tuple_to_container.<locals>.<listcomp>E  s<   ø€ ð ð ð Ø6:•�T—Z’Z¨�ZÑ0Ô0Ñ1Ô1ðð ð r%   )rw   rx   ry   r   rQ   r   r¦   r“   )r[   rb   Ú
node_inferÚer  s    `   r&   r  r  7  sï   ø€ ð@Ý˜$Ÿ*š*¨W˜*Ñ5Ô5Ñ6Ô6ˆ
ˆ
øÝð @ð @ð @Ý $°Ð8Ñ8Ô8¸aÐ?øøøøð@øøøõ �*�eœkÑ*Ô*ð 'ð	Dðð ð ð Ø>H¼oðñ ô ˆOˆOøõ ð 	Dð 	Dð 	DÝ  d°GÐ<Ñ<Ô<À!ÐCøøøøð	Døøøð &˜,ˆØÐs,   ƒ#' §
A±AÁAÁ&A: Á:
BÂBÂBc                óÚ  — t           j                             | |¬¦  «        }|j        rt	          d¦  «        ‚t          |j        ¦  «        dk    r5t	          d                     t          |j        ¦  «        ¬¦  «        ¦  «        ‚|j        \  }	 t          j	        t          j        ||¬¦  «        ¦  «        S # t          t          f$ r"}t	          t          |¦  «        ¦  «        |‚d}~ww xY w)zÄInfer length calls.

    :param nodes.Call node: len call to infer
    :param context.InferenceContext: node context
    :rtype nodes.Const: a Const node with the inferred length, if possible
    rf   z/TypeError: len() must take no keyword argumentsrK   z=TypeError: len() must take exactly one argument ({len}) given)rU   N)r   rµ   r¶   r»   r   rU   r¹   r,   r   rˆ   r   Ú
object_lenr   r   rC   )r[   rb   r½   Úargument_noder~   s        r&   Ú	infer_lenr  O  sì   € õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DØÔð UÝ!Ð"SÑTÔTÐTÝ
ˆ4Ô$Ñ%Ô%¨Ò*Ð*Ý!ðß"šF¥s¨4Ô+DÑ'EÔ'E˜FÑFÔFñ
ô 
ð 	
ð Ô/�O€]ð5ÝŒ{�7Ô-¨mÀWÐMÑMÔMÑNÔNÐNøÝ�nÐ-ð 5ð 5ð 5Ý!¥# c¡(¤(Ñ+Ô+°Ð4øøøøð5øøøs   Â'B7 Â7C*ÃC%Ã%C*c                ó  — t           j                             | |¬¦  «        }|j        rt	          d¦  «        ‚	 t          j        d¦  «        S # t          t          f$ r"}t	          t          |¦  «        ¦  «        |‚d}~ww xY w)zµInfer str() calls.

    :param nodes.Call node: str() call to infer
    :param context.InferenceContext: node context
    :rtype nodes.Const: a Const containing an empty string
    rf   z/TypeError: str() must take no keyword argumentsÚ N)
r   rµ   r¶   r»   r   r   rˆ   r   r   rC   )r[   rb   r½   r~   s       r&   Ú	infer_strr  f  s‡   € õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DØÔð UÝ!Ð"SÑTÔTÐTð5ÝŒ{˜2‰ŒÐøÝ�nÐ-ð 5ð 5ð 5Ý!¥# c¡(¤(Ñ+Ô+°Ð4øøøøð5øøøs   ¹A ÁB ÁA;Á;B c                óÈ  — t           j                             | |¬¦  «        }|j        rt	          d¦  «        ‚|j        �r	 t          |j        d                              |¬¦  «        ¦  «        }n6# t          t          f$ r"}t	          t          |¦  «        ¦  «        |‚d}~ww xY wt          |t          j        ¦  «        rt          ‚t          |t          j        ¦  «        rot          |j        t"          t          f¦  «        rN	 t#          |j        ¦  «        }n$# t$          $ r t          j        d¦  «        cY S w xY wt          j        |¦  «        S t          j        d¦  «        S )zÉInfer int() calls.

    :param nodes.Call node: int() call to infer
    :param context.InferenceContext: node context
    :rtype nodes.Const: a Const containing the integer value of the int() call
    rf   ú/TypeError: int() must take no keyword argumentsr   N)r   rµ   r¶   r»   r   r¹   rw   rx   r   ry   rC   rQ   r   rz   r   rˆ   rŽ   ró   Ú
ValueError)r[   rb   r½   Úfirst_valuer~   Úactual_values         r&   Ú	infer_intr%  v  s^  € õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DØÔð UÝ!Ð"SÑTÔTÐTàÔ ñ -ð	9Ý˜tÔ8¸Ô;×AÒAÈ'ÐAÑRÔRÑSÔSˆKˆKøÝ¥Ð.ð 	9ð 	9ð 	9Ý%¥c¨#¡h¤hÑ/Ô/°SÐ8øøøøð	9øøøõ �k¥4Ô#7Ñ8Ô8ð 	&Ý%Ð%å�k¥5¤;Ñ/Ô/ð 	-µJØÔ¥¥S˜zñ5
ô 5
ð 	-ð&Ý" ;Ô#4Ñ5Ô5��øÝð &ð &ð &Ý”{ 1‘~”~Ð%Ð%Ð%ð&øøøå”;˜|Ñ,Ô,Ð,åŒ;�q‰>Œ>Ðs*   Á.A0 Á0B#ÂBÂB#ÄD ÄD9Ä8D9c                ód  ‡ ‡— ˆ fd„}t           j                             ‰ |¬¦  «        }|j        rt	          d¦  «        ‚t          |j        ¦  «        dvrt	          d¦  «        ‚t          j        d¦  «        Š|j        d         }	 t          | 
                    |¬¦  «        ¦  «        }n"# t          t          f$ r  |g ¦  «        cY S w xY w|t          j        u r |g ¦  «        S t          j        f}t          |t          j        t          j        t          j        f¦  «        rB|j        }|D ]}t          ||¦  «        s |g ¦  «        c S Œ ˆfd„|D ¦   «         }	 ||	¦  «        S t          |t          j        ¦  «        r?t          |j        t*          t,          f¦  «        rˆfd	„|j        D ¦   «         }	 ||	¦  «        S t          |t          j        ¦  «        rO|                     ¦   «         }
|
D ]}t          ||¦  «        s |g ¦  «        c S Œ ˆfd
„|
D ¦   «         }	 ||	¦  «        S  |g ¦  «        S )a[  Infer dict.fromkeys.

    :param nodes.Call node: dict.fromkeys() call to infer
    :param context.InferenceContext context: node context
    :rtype nodes.Dict:
        a Dictionary containing the values that astroid was able to infer.
        In case the inference failed for any reason, an empty dictionary
        will be inferred instead.
    c                ó–   •— t          j        ‰j        ‰j        ‰j        ‰j        ‰j        ¬¦  «        }|                     | ¦  «         |S )Nr´   )r   rš   r1   r0   r/   rt   ru   r¼   )ÚelementsÚnew_noder[   s     €r&   Ú_build_dict_with_elementsz6infer_dict_fromkeys.<locals>._build_dict_with_elements¡  sN   ø€ Ý”:Ø”Ø”;Ø”;Ø”ØÔ.ð
ñ 
ô 
ˆð 	×Ò˜(Ñ#Ô#Ð#Øˆr%   rf   r!  >   rK   rª   z5TypeError: Needs between 1 and 2 positional argumentsNr   c                ó   •— g | ]}|‰f‘ŒS r$   r$   ©rŠ   rœ   Údefaults     €r&   r�   z'infer_dict_fromkeys.<locals>.<listcomp>Æ  s   ø€ ÐJÐJÐJ°g ¨Ð1ÐJÐJÐJr%   c                ó<   •— g | ]}t          j        |¦  «        ‰f‘ŒS r$   r°   r,  s     €r&   r�   z'infer_dict_fromkeys.<locals>.<listcomp>Ë  s5   ø€ ð 
ð 
ð 
Ø07�UŒ[˜Ñ!Ô! 7Ð+ð
ð 
ð 
r%   c                ó   •— g | ]}|‰f‘ŒS r$   r$   r,  s     €r&   r�   z'infer_dict_fromkeys.<locals>.<listcomp>Ö  s   ø€ ÐFÐFÐF°g ¨Ð1ÐFÐFÐFr%   )r   rµ   r¶   r»   r   rU   r¹   r   rˆ   rw   rx   r   ry   r   rÐ   rQ   r¥   r§   r¦   r“   rŽ   rC   rB   rš   Úitered)r[   rb   r*  r½   ÚvaluesÚinferred_valuesÚaccepted_iterable_elementsr(  rœ   Úelements_with_valuer¾   r²   r-  s   `           @r&   Úinfer_dict_fromkeysr5  –  sÌ  øø€ ð	ð 	ð 	ð 	ð 	õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DØÔð UÝ!Ð"SÑTÔTÐTÝ
ˆ4Ô$Ñ%Ô%¨VÐ3Ð3Ý!ØCñ
ô 
ð 	
õ Œk˜$ÑÔ€GØÔ& qÔ)€Fð-Ý˜vŸ|š|°G˜|Ñ<Ô<Ñ=Ô=ˆˆøÝ�MÐ*ð -ð -ð -Ø(Ð(¨Ñ,Ô,Ð,Ð,Ð,ð-øøøà�$Ô*Ð*Ð*Ø(Ð(¨Ñ,Ô,Ð,õ #(¤+ ÐÝ�/¥E¤Jµ´	½5¼;Ð#GÑHÔHð >Ø"Ô'ˆØð 	5ð 	5ˆGÝ˜gÐ'AÑBÔBð 5à0Ð0°Ñ4Ô4Ð4Ð4Ð4ð5ð KÐJÐJÐJÀÐJÑJÔJÐØ(Ð(Ð)<Ñ=Ô=Ð=Ý�/¥5¤;Ñ/Ô/ð >µJØÔ¥¥U˜|ñ5ô 5ð >ð
ð 
ð 
ð 
Ø;JÔ;Pð
ñ 
ô 
Ðð )Ð(Ð)<Ñ=Ô=Ð=Ý�/¥5¤:Ñ.Ô.ð >Ø×%Ò%Ñ'Ô'ˆØð 	5ð 	5ˆCÝ˜cÐ#=Ñ>Ô>ð 5à0Ð0°Ñ4Ô4Ð4Ð4Ð4ð5ð GÐFÐFÐFÀÐFÑFÔFÐØ(Ð(Ð)<Ñ=Ô=Ð=ð %Ð$ RÑ(Ô(Ð(s   Â#B* Â*C	ÃC	úIterator[CopyResult]c                ó.  — t          | j        t          j        ¦  «        sJ ‚t	          j        | j        j                             |¬¦  «        ¦  «        \  }}t          d„ |D ¦   «         ¦  «        r t          t          t                   |¦  «        S t          ‚)Nrf   c              3  óŽ   K  — | ]@}t          |t          j        t          j        t          j        t
          j        f¦  «        V — ŒAd S r#   )rQ   r   rš   r¥   r§   r   Ú	FrozenSet)rŠ   Úinferred_nodes     r&   rŒ   z%_infer_copy_method.<locals>.<genexpr>â  sY   è è € ð ð ð õ 	Ø�EœJ­¬
µE´I½wÔ?PÐQñ	
ô 	
ðð ð ð ð ð r%   )rQ   rR   r   rX   Ú	itertoolsÚteerZ   rx   r–   r   r	   Ú
CopyResultr   )r[   rb   rd   Úinferred_origÚinferred_copys        r&   Ú_infer_copy_methodr@  Ý  s”   € õ �d”i¥¤Ñ1Ô1Ð1Ð1Ð1Ý#,¤=°´´×1EÒ1EÈgÐ1EÑ1VÔ1VÑ#WÔ#WÑ €M�=Ý
ð ð ð +ð	ñ ô ñ ô ð 9õ •H�ZÔ(¨-Ñ8Ô8Ð8å
Ðr%   c                ój  — t          | j        t          j        ¦  «        r| j        j        dk    sdS t          | j        j        t          j        ¦  «        rt          j        | j        j        ¦  «        }n| j        j        }t          |t          j	        ¦  «        ot          |j
        t          ¦  «        S )zCatch calls to str.format().r,   F)rQ   rR   r   rX   rY   rZ   rS   r   r—   rˆ   rŽ   rC   )r[   rŽ   s     r&   Ú_is_str_format_callrB  í  s…   € å�d”i¥¤Ñ1Ô1ð ¸¼Ô9KÈxÒ9WÐ9WØˆuå�$”)”.¥%¤*Ñ-Ô-ð Ý” ¤	¤Ñ/Ô/ˆˆà”	”ˆå�e�Uœ[Ñ)Ô)ÐJ­j¸¼ÅcÑ.JÔ.JÐJr%   ú3Iterator[ConstFactoryResult | util.UninferableBase]c                óD  — t           j                             | |¬¦  «        }t          | j        t
          j        t
          j        t
          j        f¦  «        sJ ‚t          | j        j	        t
          j
        ¦  «        rWt          j        | j        j	        ¦  «        x}rt          |t
          j        ¦  «        st          t          j        g¦  «        S |}nKt          | j        j	        t
          j        ¦  «        r| j        j	        }nt          t          j        g¦  «        S |j        }g }|j        D ]b}t          j        ||¦  «        }	t          |	t
          j        ¦  «        st          t          j        g¦  «        c S |                     |	¦  «         Œcd„ |D ¦   «         }
i }|j                             ¦   «         D ]U\  }}t          j        ||¦  «        }	t          |	t
          j        ¦  «        st          t          j        g¦  «        c S |	||<   ŒVd„ |                     ¦   «         D ¦   «         }	  |j        |
i |¤Ž}nC# t,          t.          t0          t2          t4          f$ r t          t          j        g¦  «        cY S w xY wt          t          j        |¦  «        g¦  «        S )z?Return a Const node based on the template and passed arguments.rf   c                ó   — g | ]	}|j         ‘Œ
S r$   ©rŽ   )rŠ   Úis     r&   r�   z*_infer_str_format_call.<locals>.<listcomp>  s   € ÐBÐBÐB¨˜QœWÐBÐBÐBr%   c                ó$   — i | ]\  }}||j         “ŒS r$   rF  )rŠ   ÚkÚvs      r&   ú
<dictcomp>z*_infer_str_format_call.<locals>.<dictcomp>!  s    € Ð%VÐ%VÐ%V±T°Q¸ a¨¬Ð%VÐ%VÐ%Vr%   )r   rµ   r¶   rQ   rR   r   rX   Ú
AssignAttrÚDelAttrrZ   rS   r   r—   rˆ   rh   rÐ   rŽ   r¹   r™   r»   r;   r,   ÚAttributeErrorÚ
IndexErrorÚKeyErrorÚ	TypeErrorr"  Úconst_factory)r[   rb   rd   r½   r}   rŽ   Úformat_templateÚinferred_positionalrG  Úone_inferredÚ
pos_valuesÚinferred_keywordrI  rJ  Úkeyword_valuesÚformatted_strings                   r&   Ú_infer_str_format_callrZ  ú  s‹  € õ Ô×'Ò'¨°gÐ'Ñ>Ô>€DÝ�d”i¥%¤/µ5Ô3CÅUÄ]Ð!SÑTÔTÐTÐTÐTõ �$”)”.¥%¤*Ñ-Ô-ð 	(Ý œO¨D¬I¬NÑ;Ô;Ð;�ð 	,ÅJØ•e”kñE
ô E
ð 	,õ �Ô)Ð*Ñ+Ô+Ð+ØˆˆÝ	�D”I”N¥E¤KÑ	0Ô	0ð (Ø”	”ˆˆå•TÔ%Ð&Ñ'Ô'Ð'à”k€Oð .0ÐØÔ&ð 1ð 1ˆÝ” q¨'Ñ2Ô2ˆÝ˜,­¬Ñ4Ô4ð 	,Ý�Ô)Ð*Ñ+Ô+Ð+Ð+Ð+Ø×"Ò" <Ñ0Ô0Ð0Ð0àBÐBÐ.AÐBÑBÔB€Jð 02ÐØÔ&×,Ò,Ñ.Ô.ð +ð +‰ˆˆ1Ý” q¨'Ñ2Ô2ˆÝ˜,­¬Ñ4Ô4ð 	,Ý�Ô)Ð*Ñ+Ô+Ð+Ð+Ð+Ø*Ð˜ÑÐà%VÐ%VÐ=M×=SÒ=SÑ=UÔ=UÐ%VÑ%VÔ%V€Nð(Ø1˜?Ô1°:ÐPÀÐPÐPÐÐøÝ�J­µ)½ZÐHð (ð (ð (õ
 •TÔ%Ð&Ñ'Ô'Ð'Ð'Ð'ð(øøøõ •Ô$Ð%5Ñ6Ô6Ð7Ñ8Ô8Ð8s   È/H= È==I=É<I=c                ó’  — t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t
          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d	¦  «         t          | t          d
¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t          d¦  «         t          | t           d¦  «         t          | t"          d¦  «         t          | t$          d¦  «         t          | t&          d¦  «         |                      t*          j        t/          t0          ¦  «        t2          ¦  «         |                      t*          j        t/          t6          ¦  «        d„ ¦  «         |                      t*          j        t/          t8          ¦  «        t:          ¦  «         d S )NrG   ÚsuperrÜ   ÚpropertyrÙ   rg   r«   Úsetrº   rO   Ú	frozensetrI   ÚslicerQ   Ú
issubclassrU   rC   ró   zdict.fromkeysc                ó`   — t          | j        t          j        ¦  «        o| j        j        dk    S )NÚcopy)rQ   rR   r   rX   rY   )r[   s    r&   ú<lambda>zregister.<locals>.<lambda>O  s)   € •Z ¤	­5¬?Ñ;Ô;ð )ØŒIÔ &Ò(ð r%   )rm   rë   rÍ   rÞ   rè   r×   rÚ   Úinfer_tupleÚ	infer_setÚ
infer_listr¿   Úinfer_frozensetrï   r÷   r  r  r  r  r%  r5  rk   r   r  r   rû   r  rl   r@  rZ  rB  )r^   s    r&   Úregisterri  /  sö  € å˜w­
°FÑ;Ô;Ð;Ý˜w­°WÑ=Ô=Ð=Ý˜w­¸
ÑCÔCÐCÝ˜w­¸
ÑCÔCÐCÝ˜w­°yÑAÔAÐAÝ˜w­°yÑAÔAÐAÝ˜w­°WÑ=Ô=Ð=Ý˜w­	°5Ñ9Ô9Ð9Ý˜w­
°FÑ;Ô;Ð;Ý˜w­
°FÑ;Ô;Ð;Ý˜w­¸ÑEÔEÐEÝ˜w­
°FÑ;Ô;Ð;Ý˜w­°WÑ=Ô=Ð=Ý˜wÕ(8¸,ÑGÔGÐGÝ˜wÕ(8¸,ÑGÔGÐGÝ˜w­	°5Ñ9Ô9Ð9Ý˜w­	°5Ñ9Ô9Ð9Ý˜w­	°5Ñ9Ô9Ð9Ý˜wÕ(;¸_ÑMÔMÐMð ×ÒÝŒÝÕ3Ñ4Ô4Ý+ñô ð ð ×ÒÝŒ
ÝÕ(Ñ)Ô)ð	)ð 	)ñô ð ð ×ÒÝŒ
ÝÕ,Ñ-Ô-Ýñô ð ð ð r%   )r!   r
   )r!   rG   )r^   r   r!   r_   )
r[   ra   rb   rc   rn   ro   r?   rp   r!   rq   )r{   r   rb   rc   r€   ro   r�   r‚   rƒ   r„   r!   r…   )r[   ra   rb   rc   r€   ro   r�   rŸ   rƒ   r„   r!   rq   r#   )r[   ra   rb   rc   r!   r­   )r[   ra   rb   rc   r!   rÀ   )rb   rc   )r[   ra   rb   rc   r!   rß   )r[   rø   rb   rc   rd   r   r!   rù   )r  ra   rb   rc   r!   r  )r[   r   rb   rc   r!   r  )r[   ra   rb   rc   rd   r   r!   r6  )r[   ra   r!   rG   )r[   ra   rb   rc   rd   r   r!   rC  )cÚ__doc__Ú
__future__r   r;  Úcollections.abcr   r   Ú	functoolsr   Útypingr   r   r	   r
   r   r   r   Úastroidr   r   r   r   r   r   Úastroid.builderr   Úastroid.contextr   Úastroid.exceptionsr   r   r   r   r   Úastroid.managerr   Úastroid.nodesr   Úastroid.typingr   r   r   Úastroid.basesr    r9  Ú	DictItemsÚDictKeysÚ
DictValuesr•   r«   rº   r^  r_  r„   rš   r¥   r§   r=  rÿ   rE   rD   r'   r8   r@   rF   r]   rm   r   rž   r¢   r¦   re  rg  rf  rh  r¬   r¿   rÍ   rÔ   r×   rÚ   rÞ   rè   rë   rï   r÷   rû   r  r  r  r  r  r  r%  r5  r@  rB  rZ  ri  r$   r%   r&   ú<module>rz     s^  ðð
 *Ð )à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð 'Ø&Ð&Ð&Ð&Ð&Ð&àØÔØÔØÔØÔðôÐ ð Øˆ„KØˆ„JØˆ„IØˆ„Oðô€ð Ø	„JØ	„JØ	„IØÔðô€
ð %Ð ð(€	ðV$€ðN ð  ð  ð  ð#ð #ð #ð+ð +ð +ðð ð ðð ð ð ð: ð  ð  ð  ðFð ð ð ðB%6ð %6ð %6ð %6ðPNð Nð Nð Nð& ˆgØØ
Œ+àŒ
ØŒ	ØÔØÔØÔØÔðð ðñ ô €ð ˆWØØ
Œ*àŒØŒ	ØÔØÔØÔØÔðð ðñ ô €
ð ˆGØØ
Œ)ØŒz˜5œ;¨Ô(9¸7Ô;KÐLØð	ñ ô €	ð �'ØØ
Ô
ØŒz˜5œ;¨¬	°7Ô3DÀgÔFVÐWØð	ñ ô €ðð ð ð:3ð 3ð 3ð 3ð 3ðn :>ð=ð =ð =ð =ð =ð@ð ð ð0ð ð ð ð ð8ð ð ð ð ð6,ð ,ð ,ð ,ð ,ð. :>ð"ð "ð "ð "ð "ðJ#ð #ð #ð #ð #ð.6ð 6ð 6ð 6ð 6ðð ð ð ð ð@ >Bð-ð -ð -ð -ð -ðð ð ð ð((ð ((ð ((ð ((ð ((ðX >Bð"(ð "(ð "(ð "(ð "(ðL ?Cðð ð ð ð ð05ð 5ð 5ð 5ð 5ð.5ð 5ð 5ð 5ð 5ð ð ð ð ð ð@D)ð D)ð D)ð D)ð D)ðP :>ðð ð ð ð ð 
Kð 
Kð 
Kð 
Kð :>ð29ð 29ð 29ð 29ð 29ðj(ð (ð (ð (ð (ð (r%   