§
    ŒŸjV?  ã                   ór  — d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
mZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ d„ Zd&d„Zd„ Zd„ Z e¦   «         d'd„¦   «         Z d„ Z!d„ Z"d„ Z# e¦   «         d„ ¦   «         Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d(d$„Z/d%„ Z0dS ))a  
PEP 0484 ( https://www.python.org/dev/peps/pep-0484/ ) describes type hints
through function annotations. There is a strong suggestion in this document
that only the type of type hinting defined in PEP0484 should be allowed
as annotations in future python versions.
é    N)Ú	Parameter)ÚParserSyntaxErrorÚparse)Úinference_state_method_cache)ÚValueSetÚ	NO_VALUES)ÚDefineGenericBaseClassÚGenericClass)ÚTupleGenericManager)ÚTypeVar)Ú	is_string)Úbuiltin_from_name)Úget_executed_param_names)Údebug)Úparser_utilsc                 ód  — |                       |¦  «        }t          |¦  «        dk    rt          j        d|›d|›�¦  «         |S t          }|D ]a}t          |¦  «        r=t          | |                     ¦   «         ¦  «        }|�||                       |¦  «        z  }ŒN|t          |g¦  «        z  }Œb|S )z¤
    Inferes an annotation node. This means that it inferes the part of
    `int` here:

        foo: int = 3

    Also checks for forward references (strings)
    r   zInferred typing index z should lead to 1 object, not )	Ú
infer_nodeÚlenr   Úwarningr   r   Ú_get_forward_reference_nodeÚget_safe_valuer   )ÚcontextÚ
annotationÚ	value_setÚstrings_removedÚpartÚresults         ún/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/gradual/annotation.pyÚinfer_annotationr      sÑ   € ð ×"Ò" :Ñ.Ô.€IÝ
ˆ9�~„~˜ÒÐÝŒˆØJTÈ*È*ÐV_ÐV_Ð`ñ	bô 	bð 	bàÐå€OØð ,ð ,ˆÝ�T‰?Œ?ð 	Ý0°¸$×:MÒ:MÑ:OÔ:OÑPÔPˆFØÐ!Ø 7×#5Ò#5°fÑ#=Ô#=Ñ=�ØØ�8 T FÑ+Ô+Ñ+ˆˆØÐó    c                 ó¾   ‡— t          | |¦  «        }|€t          S |                      |¦  «        }‰�+|                     ˆfd„¦  «                             ‰¦  «        }|S )Nc                 ó~   •— | j         dk    o1t          t          |                      ¦   «         ¦  «        ¦  «        ‰k    S )NÚtuple)Ú
array_typer   ÚlistÚ
py__iter__)ÚvalueÚindexs    €r   ú<lambda>z*_infer_annotation_string.<locals>.<lambda>;   s<   ø€ ØÔ  GÒ+ð ;Ý�˜U×-Ò-Ñ/Ô/Ñ0Ô0Ñ1Ô1°UÒ:ð r    )r   r   r   ÚfilterÚpy__simple_getitem__)r   Ústringr(   Únoder   s     `  r   Ú_infer_annotation_stringr.   3   sz   ø€ Ý& w°Ñ7Ô7€DØ€|ÝÐà×"Ò" 4Ñ(Ô(€IØÐØ×$Ò$ðð ð ð ñ
ô 
÷
 Ò
˜uÑ
%Ô
%ð 	ð Ðr    c                 ó&  — 	 | j         j                             |dd¬¦  «        }| j                             ¦   «         }t          j        ||j        d         ¦  «         | j        |_        |S # t          $ r t          j        d|z  ¦  «         Y d S w xY w)NÚ
eval_inputF)Ústart_symbolÚerror_recoveryr   zAnnotation not parsed: %s)Úinference_stateÚgrammarr   Ú	tree_nodeÚget_root_noder   ÚmoveÚend_posÚparentr   r   r   )r   r,   Únew_nodeÚmodules       r   r   r   C   s©   € ðØÔ*Ô2×8Ò8ØØ%Ø ð 9ñ 
ô 
ˆð Ô"×0Ò0Ñ2Ô2ˆÝÔ˜( F¤N°1Ô$5Ñ6Ô6Ð6Ø!Ô+ˆŒØˆøõ ð ð ð ÝŒÐ1°FÑ:Ñ;Ô;Ð;Øˆtˆtðøøøs   ‚"A+ Á+!BÂBc                 ó¼  — 	 t          | d¬¦  «        j        d         }n)# t          $ r t          j        d| z  ¦  «         g cY S w xY w|j        dv r'|                     ¦   «                              ¦   «         gS g }	 |j        }|D ]D}|j        dv r9|                     |                     ¦   «                              ¦   «         ¦  «         ŒEn# t          $ r g cY S w xY w|S )z¦
    Split decl_text on commas, but group generic expressions
    together.

    For example, given "foo, Bar[baz, biz]" we return
    ['foo', 'Bar[baz, biz]'].

    F)r2   r   z*Comment annotation is not valid Python: %s)ÚnameÚ	atom_exprÚpower)
r   Úchildrenr   r   r   ÚtypeÚget_codeÚstripÚappendÚAttributeError)Ú	decl_textr-   Úparamsr@   Úchilds        r   Ú _split_comment_param_declarationrI   T   s  € ðÝ�Y¨uÐ5Ñ5Ô5Ô>¸qÔAˆˆøÝð ð ð ÝŒÐBÀYÑNÑOÔOÐOØˆ	ˆ	ˆ	ðøøøð „yÐ2Ð2Ð2Ø—’‘”×%Ò%Ñ'Ô'Ð(Ð(à€Fð8Ø”=ˆð ð 	8ð 	8ˆEØŒzÐ;Ð;Ð;Ø—’˜eŸnšnÑ.Ô.×4Ò4Ñ6Ô6Ñ7Ô7Ð7øð	8øõ ð ð ð Øˆ	ˆ	ˆ	ðøøøð €Ms!   ‚ Ÿ#AÁAÁ;C
 Ã
CÃCFc                 óš  — t          | |¦  «        }|s|s|S | j        }|j        dk    r<t          |d¦  «        }t	          t          |t          |f¦  «        ¦  «        g¦  «        S |j        dk    r[t          |d¦  «        }t	          t          |d¦  «        g¦  «        |f}t	          t          |t          |¦  «        ¦  «        g¦  «        S |S )Né   r#   é   ÚdictÚstr)Ú_infer_paramr3   Ú
star_countr   r   r
   r   )Úfunction_valueÚparamÚignore_starsÚvaluesr3   Útuple_ÚdctÚgenericss           r   Úinfer_paramrX   s   sù   € å˜.¨%Ñ0Ô0€FØð ˜6ð ØˆØ$Ô4€OØÔ˜1ÒÐÝ" ?°GÑ<Ô<ˆÝ�ØÝ  	Ñ*Ô*ñ
ô 
ð ñ ô ð 	ð 
Ô	˜QÒ	Ð	Ý °Ñ8Ô8ˆåÕ'¨¸Ñ?Ô?Ð@ÑAÔAØð
ˆõ �ØÝ Ñ)Ô)ñ
ô 
ð ñ ô ð 	ð €Mr    c                 óÆ  — |j         }|�€4d„ |j        j        D ¦   «         }|j        j        }t          j        |¦  «        }|€t
          S t          j        d|¦  «        }|st
          S t          | 	                    d¦  «        ¦  «        }| 
                    |¦  «        }t          |¦  «        t          |¦  «        k    rt          j        d||¦  «         |                      ¦   «         r|dk    rt
          S |dz  }|t          |¦  «        k    rt
          S ||         }	t          |                      ¦   «         |	¦  «        S |                      ¦   «         }
t#          |
|¦  «        S )zJ
    Infers the type of a function parameter, using type annotations.
    Nc                 ó(   — g | ]}|j         d k    ¯|‘ŒS )rR   )rA   )Ú.0rH   s     r   ú
<listcomp>z _infer_param.<locals>.<listcomp>•   s.   € ð 0ð 0ð 0 Øœ wÒ.Ð.ð Ø.Ð.Ð.r    z^#\s*type:\s*\(([^#]*)\)\s*->rK   z&Comments length != Params length %s %sr   )r   r9   r@   r   Úget_following_comment_same_liner   ÚreÚmatchrI   Úgroupr(   r   r   r   Úis_bound_methodr.   Úget_default_param_contextr   )rQ   rR   r   Ú
all_paramsr-   Úcommentr_   Úparams_commentsr(   Úparam_commentr   s              r   rO   rO   Œ   sv  € ð Ô!€JØÑð0ð 0¨¬Ô)>ð 0ñ 0ô 0ˆ
ð Œ|Ô"ˆÝÔ>¸tÑDÔDˆØˆ?ÝÐå”Ð9¸7ÑCÔCˆØð 	ÝÐÝ:¸5¿;º;Àq¹>¼>ÑJÔJˆð × Ò  Ñ'Ô'ˆõ ˆÑÔ¥3 z¡?¤?Ò2Ð2ÝŒMØ8Ø ñô ð ð ×)Ò)Ñ+Ô+ð 	Ø˜Šzˆzå Ð Ø�Q‰JˆEØ•C˜Ñ(Ô(Ò(Ð(ÝÐà'¨Ô.ˆÝ'Ø×4Ò4Ñ6Ô6Øñ
ô 
ð 	
ð
 ×6Ò6Ñ8Ô8€GÝ˜G ZÑ0Ô0Ð0r    c                 ó„   — i }|                       ¦   «         D ]}|j        }|�|||j        j        <   Œ| j        }|r||d<   |S )NÚreturn)Ú
get_paramsr   r=   r'   )ÚfuncdefrV   Úfunction_paramÚparam_annotationÚreturn_annotations        r   Úpy__annotations__rn   ½   sa   € Ø
€CØ!×,Ò,Ñ.Ô.ð >ð >ˆØ)Ô4ÐØÐ'Ø-=ˆC�Ô#Ô)Ñ*øàÔ*ÐØð *Ø)ˆˆH‰Ø€Jr    c                 óP   ‡ ‡— ˆ fd„Šˆfd„|                      ¦   «         D ¦   «         S )Nc                 ó¬   •— | �| j         dk    r| S t          ‰‰j        j                             | j        ¦  «        ¦  «        } | €d S | j        d         } | S )Nr,   r   )rA   r   r3   Úcompiled_subprocessÚsafe_literal_evalr'   r@   )r-   r   s    €r   Úresolvez+resolve_forward_references.<locals>.resolveË   sh   ø€ Øˆ<˜4œ9¨Ò0Ð0ØˆKå*ØØÔ#Ô7×IÒIØ”
ñô ñ
ô 
ˆð ˆ<à�4ð
 Œ}˜QÔˆàˆr    c                 ó.   •— i | ]\  }}| ‰|¦  «        “ŒS © ru   )r[   r=   r-   rs   s      €r   ú
<dictcomp>z.resolve_forward_references.<locals>.<dictcomp>á   s'   ø€ ÐJÐJÐJ¡J D¨$ˆD�'�'˜$‘-”-ÐJÐJÐJr    )Úitems)r   Úall_annotationsrs   s   ` @r   Úresolve_forward_referencesry   Ê   sF   øø€ ðð ð ð ð ð, KÐJÐJÐJ°/×2GÒ2GÑ2IÔ2IÐJÑJÔJÐJr    c                 óª  ‡
— |                       ¦   «         }t          |t          | j        ¦  «        ¦  «        }|                     dd¦  «        }|€Š| j        }t          j        |¦  «        }|€t          S t          j	        d|¦  «        }|st          S t          ||                     d¦  «                             ¦   «         ¦  «                             |¦  «        S t          ||¦  «        }t          ||¦  «        }	|s|	                     |¦  «        S t!          | ||¦  «        Š
t#          j        ˆ
fd„|	D ¦   «         ¦  «                             |¦  «        S )zZ
    Infers the type of a function's return value,
    according to type annotations.
    rh   Nz%^#\s*type:\s*\([^#]*\)\s*->\s*([^#]*)rK   c              3   óš   •K  — | ]E}t          |t          t          f¦  «        r|                     ‰¦  «        nt	          |h¦  «        V — ŒFd S ©N©Ú
isinstancer	   r   Údefine_genericsr   )r[   ÚannÚtype_var_dicts     €r   ú	<genexpr>z%infer_return_types.<locals>.<genexpr>  sm   øè è € ð ð ð õ �cÕ2µGÐ<Ñ=Ô=ð	Sˆ×Ò˜MÑ*Ô*Ð*ÝCKÈSÈEÁ?Ä?ðð ð ð ð ð r    )rb   ry   rn   r5   Úgetr   r]   r   r^   r_   r.   r`   rC   Úexecute_annotationÚfind_unknown_type_varsr   Úinfer_type_vars_for_executionr   Ú	from_sets)ÚfunctionÚ	argumentsr   rx   r   r-   rd   r_   Úunknown_type_varsÚannotation_valuesr�   s             @r   Úinfer_return_typesrŒ   ä   sr  ø€ ð ×0Ò0Ñ2Ô2€GÝ0ØÝ˜(Ô,Ñ-Ô-ñô €Oð !×$Ò$ X¨tÑ4Ô4€JØÐð Ô!ˆÝÔ>¸tÑDÔDˆØˆ?ÝÐå”ÐAÀ7ÑKÔKˆØð 	ÝÐå'ØØ�KŠK˜‰NŒN× Ò Ñ"Ô"ñ
ô 
÷ Ò
˜WÑ
%Ô
%ð	&õ
 /¨w¸
ÑCÔCÐÝ(¨°*Ñ=Ô=ÐØð =Ø ×3Ò3°GÑ<Ô<Ð<å1°(¸IÀÑWÔW€MåÔð ð ð ð ð %ðñ ô ñ ô ÷ Ò˜Ñ!Ô!ð	"r    c                 ó
  — |                       ¦   «         }i }t          | |¦  «        }|D ]Ù}	 ||j                 }n# t          $ r Y Œw xY wt	          ||¦  «        }|r¦|                     |¦  «        }	|                     ¦   «         }
|                     ¦   «         }|
t          j	        u r| 
                    ¦   «         }n#|
t          j        u r|                     d¦  «        }t          ||	                     |¦  «        ¦  «         ŒÚ|S )aM  
    Some functions use type vars that are not defined by the class, but rather
    only defined in the function. See for example `iter`. In those cases we
    want to:

    1. Search for undefined type vars.
    2. Infer type vars with the execution state we have.
    3. Return the union of all type vars that have been found.
    Ú_dict_values)rb   r   Ústring_nameÚKeyErrorr…   r   Úget_kindÚinferr   ÚVAR_POSITIONALÚmerge_types_of_iterateÚVAR_KEYWORDÚ	try_mergeÚmerge_type_var_dictsÚinfer_type_vars)rˆ   r‰   Úannotation_dictr   Úannotation_variable_resultsÚexecuted_param_namesÚexecuted_param_nameÚannotation_nodeÚannotation_variablesÚannotation_value_setÚkindÚactual_value_sets               r   r†   r†     s6  € ð ×0Ò0Ñ2Ô2€Gà"$ÐÝ3°H¸iÑHÔHÐØ3ð ð Ðð	Ø-Ð.AÔ.MÔNˆOˆOøÝð 	ð 	ð 	ØˆHð	øøøõ  6°g¸ÑOÔOÐØð 	à#*×#5Ò#5°oÑ#FÔ#FÐ Ø&×/Ò/Ñ1Ô1ˆDØ2×8Ò8Ñ:Ô:ÐØ•yÔ/Ð/Ð/Ø#3×#JÒ#JÑ#LÔ#LÐ Ð Ø�Ô.Ð.Ð.à#3×#=Ò#=¸nÑ#MÔ#MÐ Ý Ø+Ø$×4Ò4Ð5EÑFÔFñô ð øð 'Ð&s   ¬:º
AÁAc                 ó  ‡— i Š|D ]D}|j         dk    r7t          | |                     ¦   «         ¦  «        }‰                     |¦  «         ŒEt	          j        ˆfd„|D ¦   «         ¦  «                             | j        ¦  «        S )Nr%   c              3   óš   •K  — | ]E}t          |t          t          f¦  «        r|                     ‰¦  «        nt	          |h¦  «        V — ŒFd S r|   r}   )r[   ÚvÚall_type_varss     €r   r‚   z,infer_return_for_callable.<locals>.<genexpr><  sl   øè è € ð ð ð õ �aÕ0µ'Ð:Ñ;Ô;ð	ˆ×Ò˜-Ñ(Ô(Ð(å�q�c‰]Œ]ðð ð ð ð ð r    )r$   Ú_infer_type_vars_for_callabler&   Úupdater   r‡   r„   r   )r‰   Úparam_valuesÚresult_valuesÚpvr�   r¥   s        @r   Úinfer_return_for_callabler«   5  s    ø€ Ø€MØð 0ð 0ˆØŒ=˜FÒ"Ð"Ý9¸)ÀRÇ]Â]Á_Ä_ÑUÔUˆMØ× Ò  Ñ/Ô/Ð/øåÔð ð ð ð ð ð	ñ ô ñ ô ÷
 Ò˜Ô*Ñ+Ô+ð,r    c                 óö   — i }t          |                      ¦   «         |¦  «        D ]S\  \  }}}|                     ¦   «         }|                     ¦   «         }t          ||                     |¦  «        ¦  «         ŒT|S )zn
    Infers type vars for the Calllable class:

        def x() -> Callable[[Callable[..., _T]], _T]: ...
    )ÚzipÚunpackr’   r—   r˜   )r‰   Úlazy_paramsrš   Ú_Ú
lazy_valueÚlazy_callable_paramÚcallable_param_valuesr¡   s           r   r¦   r¦   D  s‘   € ð #%ÐÝ03°I×4DÒ4DÑ4FÔ4FÈÑ0TÔ0Tð 
ð 
Ñ,‰ˆˆJÐ,Ø 3× 9Ò 9Ñ ;Ô ;Ðà%×+Ò+Ñ-Ô-ÐÝØ'Ø!×1Ò1Ð2BÑCÔCñ	
ô 	
ð 	
ð 	
ð 'Ð&r    c                 óŒ   — |                      ¦   «         D ].\  }}|r'	 | |xx         |z  cc<   Œ# t          $ r || |<   Y Œ*w xY wŒ/d S r|   )rw   r�   )Ú	base_dictÚnew_dictÚtype_var_namerT   s       r   r—   r—   V  s†   € Ø!)§¢Ñ!1Ô!1ð 2ð 2Ñˆ�vØð 	2ð2Ø˜-Ð(Ð(Ô(¨FÑ2Ð(Ð(Ñ(Ð(øÝð 2ð 2ð 2Ø+1�	˜-Ñ(Ð(Ð(ð2øøøð	2ð2ð 2s   �.®A ¿A c           	      ó   — i }t          |t          ¦  «        s|S |                      ¦   «         }|                     ¦   «         }t          ||¦  «        D ];\  }}t	          ||                     |                     d¦  «        ¦  «        ¦  «         Œ<|S )aw  
    Match up the generic parameters from the given argument class to the
    target annotation.

    This walks the generic parameters immediately within the annotation and
    argument's type, in order to determine the concrete values of the
    annotation's parameters for the current case.

    For example, given the following code:

        def values(mapping: Mapping[K, V]) -> List[V]: ...

        for val in values({1: 'a'}):
            val

    Then this function should be given representations of `Mapping[K, V]`
    and `Mapping[int, str]`, so that it can determine that `K` is `int and
    `V` is `str`.

    Note that it is responsibility of the caller to traverse the MRO of the
    argument type as needed in order to find the type matching the
    annotation (in this case finding `Mapping[int, str]` as a parent of
    `Dict[int, str]`).

    Parameters
    ----------

    `annotation_value`: represents the annotation to infer the concrete
        parameter types of.

    `annotated_argument_class`: represents the annotated class of the
        argument being passed to the object annotated by `annotation_value`.
    N)r~   r	   Úget_genericsr­   r—   r˜   r„   )Úannotation_valueÚannotated_argument_classr�   Úannotation_genericsÚactual_genericsÚannotation_generics_setÚactual_generic_sets          r   Úmerge_pairwise_genericsrÀ   _  s¬   € ðF €MåÐ.Õ0FÑGÔGð ØÐà*×7Ò7Ñ9Ô9ÐØ.×;Ò;Ñ=Ô=€Oå7:Ð;NÐP_Ñ7`Ô7`ð 
ð 
Ñ3ÐÐ!3ÝØØ#×3Ò3Ð4F×4YÒ4YÐZ^Ñ4_Ô4_Ñ`Ô`ñ	
ô 	
ð 	
ð 	
ð
 Ðr    c                 ó<   — t          | ||j        d         |¦  «        S )NrK   ©Ú_find_type_from_comment_hintr@   ©r   r-   r=   s      r   Úfind_type_from_comment_hint_forrÅ   “  ó   € Ý'¨°°t´}ÀQÔ7GÈÑNÔNÐNr    c                 óä   — t          |j        ¦  «        dk    rg S t          |j        d         j        ¦  «        dk    s
J d¦   «         ‚|j        d         j        d         }t          | |||¦  «        S )Né   rK   é   z1Can only be here when children[1] is 'foo() as f'rL   )r   r@   rÃ   )r   r-   r=   Úvarlists       r   Ú find_type_from_comment_hint_withrË   —  st   € Ý
ˆ4Œ=ÑÔ˜AÒÐð ˆ	ÝˆtŒ}˜QÔÔ(Ñ)Ô)¨QÒ.Ð.Ð.Ø;ñ /Ô.Ð.àŒm˜AÔÔ'¨Ô*€GÝ'¨°°wÀÑEÔEÐEr    c                 ó<   — t          | ||j        d         |¦  «        S )Nr   rÂ   rÄ   s      r   Ú"find_type_from_comment_hint_assignrÍ   ¢  rÆ   r    c                 óZ  — d }|j         dv r'd}|j        D ]}||k    r n|j         dk    rŒ|dz  }Œg S t          j        |¦  «        }|€g S t	          j        d|¦  «        }|€g S t          | |                     d¦  «                             ¦   «         |¦  «         	                    | ¦  «        S )N)Útestlist_star_exprÚexprlistÚtestlistr   ÚoperatorrK   z^#\s*type:\s*([^#]*))
rA   r@   r   r]   r^   r_   r.   r`   rC   r„   )r   r-   rÊ   r=   r(   rH   rd   r_   s           r   rÃ   rÃ   ¦  sÍ   € Ø€EØ„|ÐEÐEÐEàˆØÔ%ð 	ð 	ˆEØ˜Š}ˆ}Ø�ØŒz˜ZÒ'Ð'ØØ�Q‰JˆEˆEàˆIåÔ:¸4Ñ@Ô@€GØ€Øˆ	ÝŒHÐ,¨gÑ6Ô6€EØ€}Øˆ	Ý#Ø�—’˜Q‘”×%Ò%Ñ'Ô'¨ñô çÒ˜Ñ!Ô!ð"r    c                 ó4   ‡ ‡‡— ˆˆ ˆfd„Šg Š ‰|¦  «         ‰S )Nc                 ó  •— | j         dv rW| j        d         }|j         dk    r9|j        d         dk    r*t          |j        d         ¦  «        D ]} ‰|¦  «         Œd S d S d S t          ‰                     | ¦  «        ‰¦  «        ‰d d …<   d S )N)r>   r?   éÿÿÿÿÚtrailerr   ú[rK   )rA   r@   Ú_unpack_subscriptlistÚ_filter_type_varsr   )r-   rÖ   Úsubscript_nodeÚ
check_noder   Úfounds      €€€r   rÛ   z*find_unknown_type_vars.<locals>.check_nodeÀ  s±   ø€ ØŒ9Ð.Ð.Ð.Ø”m BÔ'ˆGØŒ|˜yÒ(Ð(¨WÔ-=¸aÔ-@ÀCÒ-GÐ-GÝ&;¸GÔ<LÈQÔ<OÑ&PÔ&Pð /ð /�NØ�J˜~Ñ.Ô.Ð.Ð.ð )Ð(Ð-GÐ-Gð/ð /õ )¨×);Ò);¸DÑ)AÔ)AÀ5ÑIÔIˆE�!�!�!‰HˆHˆHr    ru   )r   r-   rÛ   rÜ   s   ` @@r   r…   r…   ¿  sK   øøø€ ðJð Jð Jð Jð Jð Jð Jð €EØ€JˆtÑÔÐØ€Lr    ru   c                 óŠ   — t          |¦  «        }| D ]0}t          |t          ¦  «        r||vr|                     |¦  «         Œ1|S r|   )r%   r~   r   rD   )r   rÜ   Ú	new_foundÚtype_vars       r   rÙ   rÙ   Î  sS   € Ý�U‘”€IØð 'ð 'ˆÝ�h¥Ñ(Ô(ð 	'¨X¸UÐ-BÐ-BØ×Ò˜XÑ&Ô&Ð&øØÐr    c              #   óŠ   K  — | j         dk    r$| j        d d d…         D ]}|j         dk    r|V — Œd S | j         dk    r| V — d S d S )NÚsubscriptlistrL   Ú	subscript)rA   r@   )rá   râ   s     r   rØ   rØ   Ö  s|   è è € ØÔ˜_Ò,Ð,Ø&Ô/°°°!°Ô4ð 	 ð 	 ˆIØŒ~ Ò,Ð,Ø���øð	 ð 	 ð Ô Ò,Ð,ØÐÐÐÐÐð -Ð,r    r|   )F)ru   )1Ú__doc__r^   Úinspectr   Úparsor   r   Újedi.inference.cacher   Újedi.inference.base_valuer   r   Újedi.inference.gradual.baser	   r
   Újedi.inference.gradual.genericsr   Újedi.inference.gradual.type_varr   Újedi.inference.helpersr   Újedi.inference.compiledr   Újedi.inference.paramr   Újedir   r   r   r.   r   rI   rX   rO   rn   ry   rŒ   r†   r«   r¦   r—   rÀ   rÅ   rË   rÍ   rÃ   r…   rÙ   rØ   ru   r    r   ú<module>rï      s”  ððð ð 
€	€	€	Ø Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à =Ð =Ð =Ð =Ð =Ð =Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð4ð ð ð ð ð ð ð"ð ð ð> ÐÑÔðð ð ñ  Ôðð0.1ð .1ð .1ðb
ð 
ð 
ðKð Kð Kð4 ÐÑÔð'"ð '"ñ  Ôð'"ðT#'ð #'ð #'ðL,ð ,ð ,ð'ð 'ð 'ð$2ð 2ð 2ð1ð 1ð 1ðhOð Oð OðFð Fð FðOð Oð Oð"ð "ð "ð2ð ð ðð ð ð ð ð  ð  ð  ð  r    