§
    ž²ÅjzM  ã                   ó†  — d dl Z d dl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 ddlmZmZ ddlmZmZmZmZmZ ddlmZmZ dd	lmZ erd d
lmZ dZ G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de"¦  «        Z# G d„ de¦  «        Z$dS )é    N)ÚDictÚListÚOptionalÚTYPE_CHECKINGÚUnioné   )Ú	polyfillsÚ	variables)Úcreate_call_functionÚcreate_instruction)Úhandle_observed_exceptionÚObservedUserStopIterationÚraise_observed_exceptionÚunimplementedÚ	UserErroré   )ÚValueMutationNewÚVariableTracker)ÚConstantVariable)ÚInstructionTranslatori � c                   óN   ‡ — e Zd Zdˆ fd„Zdefd„Zd„ Z	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚItertoolsVariableÚreturnNc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S ©N© )ÚsuperÚ__init__Úvalue)Úselfr   ÚkwargsÚ	__class__s      €úMC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/variables/iter.pyr   zItertoolsVariable.__init__   s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ
ˆ
ˆ
ó    c                 ó   — d| j         › d�S )NzItertoolsVariable(ú)©r   ©r    s    r#   Ú__repr__zItertoolsVariable.__repr__!   s   € Ø1 D¤JÐ1Ð1Ð1Ð1r$   c                 ó   — | j         S ©Nr'   r(   s    r#   Úas_python_constantz$ItertoolsVariable.as_python_constant$   s
   € ØŒzÐr$   Útxr   ÚargsúList[VariableTracker]r!   úDict[str, VariableTracker]r   c                 ó4  •‡‡‡— | j         t          j        u re‰sct          ˆfd„|D ¦   «         ¦  «        rHˆfd„|D ¦   «         }d„ t          j        |Ž D ¦   «         }t	          j        |t          ¦   «         ¬¦  «        S | j         t          j        u �rddlm	} t          d„ ‰                     ¦   «         D ¦   «         ¦  «        rIt          dd	                     t          ‰                     ¦   «         ¦  «        d
dhz
  ¦  «        › �¦  «         ‰                     d
¦  «        }t!          |¦  «        dv rº|d                              ‰¦  «        rŸ|d                              ‰¦  «        }d‰v r!t!          |¦  «        dk    r‰d         j        }	nnt!          |¦  «        dk    r|d         j        }	nMt!          |¦  «        dk    r |t(          j        ¦  «        j        }	nt          d¦  «         nt          d¦  «         g }|�|                     |¦  «         |D ]^}
|€|
}nB	  |	‰||
gi ¦  «        }n1# t.          $ r$}t          d|	› d|
› |› d�|¬¦  «         Y d }~nd }~ww xY w|                     |¦  «         Œ_t	          j        |t          ¦   «         ¬¦  «        S | j         t          j        u rï‰sít!          |¦  «        dk    rÚ|d                              ‰¦  «        r¿|d                              ¦   «         r¥|d                              ‰¦  «        }|d                              ¦   «         }g }t          j        ||¦  «        D ]6}
|                     t	          j        t9          |
¦  «        ¦  «        ¦  «         Œ7t	          j        |t          ¦   «         ¬¦  «        S | j         t          j        u �rèt          d„ ‰                     ¦   «         D ¦   «         ¦  «        rHt          dd	                     t          ‰                     ¦   «         ¦  «        dhz
  ¦  «        › �¦  «         d„ Št!          |¦  «        dk    rD|d                              ‰¦  «        r)|d                              ‰¦  «        }d‰v rˆˆˆfd„nd }nt          d¦  «         g }	 t          j        ||¬¦  «        D ]§\  }}|                     t	          j        t          j                             |¦  «        rt          j                              |¦  «        n|t	          j        t9          |¦  «        t          ¦   «         ¬¦  «        gt          ¦   «         ¬¦  «        ¦  «         Œ¨n(# t.          $ r}t          d|¬¦  «         Y d }~nd }~ww xY wt	          j        |t          ¦   «         ¬¦  «        S | j         t          j!        u rdt!          |¦  «        dk     rt	          j"        |dt          ¦   «         iŽS ‰ #                    tI          j%        ‰tL          j!        ¦  «        |‰¦  «        S | j         t          j'        u rt	          j(        |dt          ¦   «         iŽS | j         t          j)        u rt	          j*        |dt          ¦   «         iŽS | j         t          j+        u r3t	          j,        tL          j+        ¦  «                             ‰|‰¦  «        S | j         t          j-        u r3t	          j,        tL          j-        ¦  «                             ‰|‰¦  «        S t]          ¦   «                              ‰|‰¦  «        S )Nc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S r+   )Úhas_unpack_var_sequence©Ú.0Úargr-   s     €r#   ú	<genexpr>z2ItertoolsVariable.call_function.<locals>.<genexpr>0   s1   øè è € ÐDÐD¸�C×/Ò/°Ñ3Ô3ÐDÐDÐDÐDÐDÐDr$   c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS r   )Úunpack_var_sequencer4   s     €r#   ú
<listcomp>z3ItertoolsVariable.call_function.<locals>.<listcomp>2   s'   ø€ Ð@Ð@Ð@°C�C×+Ò+¨BÑ/Ô/Ð@Ð@Ð@r$   c                 óP   — g | ]#}t          j        t          |¦  «        ¦  «        ‘Œ$S r   ©r
   ÚTupleVariableÚlist)r5   Úitems     r#   r:   z3ItertoolsVariable.call_function.<locals>.<listcomp>3   s6   € ð ð ð Ø8<•	Ô'­¨T©
¬
Ñ3Ô3ðð ð r$   )Úmutation_typer   )ÚBuiltinVariablec              3   ó   K  — | ]}|d vV — Œ	dS ))ÚinitialÚfuncNr   )r5   Úkeys     r#   r7   z2ItertoolsVariable.call_function.<locals>.<genexpr><   s(   è è € ÐKÐK°c�3Ð1Ð1ÐKÐKÐKÐKÐKÐKr$   z-Unsupported kwargs for itertools.accumulate: ú,rC   rD   )r   r   r   r   zDitertools.accumulate can only accept one of: `func` kwarg, pos 2 argz.Unsupported arguments for itertools.accumulatezOUnexpected failure in invoking function during accumulate. Failed running func ú(r&   )Úfrom_excc              3   ó"   K  — | ]
}|d k    V — ŒdS )rE   Nr   )r5   Úkws     r#   r7   z2ItertoolsVariable.call_function.<locals>.<genexpr>y   s&   è è € Ð7Ð7 2�2˜’;Ð7Ð7Ð7Ð7Ð7Ð7r$   z*Unsupported kwargs for itertools.groupby: rE   c                 ó  — t          | t          j        ¦  «        r|                      ¦   «         S t          | t          j        ¦  «        r|                      ¦   «         S t          dt          t          | ¦  «        ¦  «        z   ¦  «         d S )Nz,Unsupported key type for itertools.groupby: )	Ú
isinstancer
   ÚSymNodeVariableÚevaluate_exprr   r,   r   ÚstrÚtype©rE   s    r#   Úretrieve_const_keyz;ItertoolsVariable.call_function.<locals>.retrieve_const_key   s�   € Ý˜c¥9Ô#<Ñ=Ô=ð Ø×,Ò,Ñ.Ô.Ð.Ý ¥YÔ%?Ñ@Ô@ð Ø×1Ò1Ñ3Ô3Ð3å!ØFÍÍTÐRUÉYÌYÉÌÑWñô ð ð ð r$   c                 ól   •—  ‰‰                      d¦  «                             ‰| gi ¦  «        ¦  «        S )NrE   )ÚgetÚcall_function)Úxr!   rR   r-   s    €€€r#   ú<lambda>z1ItertoolsVariable.call_function.<locals>.<lambda>�   s;   ø€ Ø.Ð.Ø &§
¢
¨5Ñ 1Ô 1× ?Ò ?ÀÀQÀCÈÑ LÔ Lñô ð r$   z+Unsupported arguments for itertools.groupbyrQ   z1Unexpected failure when calling itertools.groupbyr@   )/r   Ú	itertoolsÚproductÚallr
   ÚListIteratorVariabler   Ú
accumulateÚbuiltinrA   ÚanyÚkeysr   ÚjoinÚsetrT   Úlenr3   r9   rU   ÚoperatorÚaddÚappendÚ	ExceptionÚcombinationsÚis_python_constantr,   r=   r>   Úgroupbyr   Ú
is_literalÚcreateÚrepeatÚRepeatIteratorVariableÚinline_user_function_returnr   Úbuildr	   ÚcountÚCountIteratorVariableÚcycleÚCycleIteratorVariableÚ	dropwhileÚUserFunctionVariableÚzip_longestr   )r    r-   r.   r!   ÚseqsÚitemsrA   ÚaccÚseqrD   r?   ÚeÚiterableÚrÚkeyfuncÚresultÚkÚvrR   r"   s    ` `              @€r#   rU   zItertoolsVariable.call_function'   s&  øøøø€ ð ŒJ�)Ô+Ð+Ð+Øð ,åÐDÐDÐDÐD¸tÐDÑDÔDÑDÔDð ,ð AÐ@Ð@Ð@¸4Ð@Ñ@Ô@ˆDðð Ý@IÔ@QÐSWÐ@Xðñ ô ˆEõ Ô1ØÕ%5Ñ%7Ô%7ðñ ô ð ð ŒZ�9Ô/Ð/Ñ/Ø0Ð0Ð0Ð0Ð0Ð0åÐKÐK¸V¿[º[¹]¼]ÐKÑKÔKÑKÔKð ÝðLØ—x’x¥ F§K¢K¡M¤MÑ 2Ô 2°iÀÐ5HÑ HÑIÔIðLð Lñô ð ð
 —*’*˜YÑ'Ô'ˆCå�4‰yŒy˜FÐ"Ð" t¨A¤w×'FÒ'FÀrÑ'JÔ'JÐ"Ø˜1”g×1Ò1°"Ñ5Ô5�à˜VÐ#Ð#­¨D©	¬	°Qª¨Ø! &œ>Ô7�D�DÝ˜‘Y”Y !’^�^Ø œ7Ô0�D�DÝ˜‘Y”Y !’^�^à*˜?­8¬<Ñ8Ô8ÔF�D�Då!Ø^ñô ð ð õ ÐNÑOÔOÐOàˆEØˆØ—’˜SÑ!Ô!Ð!Øð "ð "�Ø�;Ø�C�CðØ"˜d 2¨¨T {°BÑ7Ô7˜˜øÝ$ð ð ð Ý%ð BÐnrð  Bð  BÐuyð  BÐ{~ð  Bð  Bð  BØ%&ðñ ô ð ð ð ð ð ð øøøøðøøøð
 —’˜SÑ!Ô!Ð!Ð!åÔ1ØÕ%5Ñ%7Ô%7ðñ ô ð ð ŒJ�)Ô0Ð0Ð0Øð 1å�D‘	”	˜Q’�Ø�Q”×/Ò/°Ñ3Ô3ð à�Q”×*Ò*Ñ,Ô,ð ð ˜A”w×2Ò2°2Ñ6Ô6ˆHØ�Q”×*Ò*Ñ,Ô,ˆAàˆEÝ!Ô.¨x¸Ñ;Ô;ð Bð B�Ø—’�YÔ4µT¸$±Z´ZÑ@Ô@ÑAÔAÐAÐAÝÔ1ØÕ%5Ñ%7Ô%7ðñ ô ð ð ŒZ�9Ô,Ð,Ñ,ÝÐ7Ð7¨¯ª©¬Ð7Ñ7Ô7Ñ7Ô7ð Ýð@Ø—x’x¥ F§K¢K¡M¤MÑ 2Ô 2°e°WÑ <Ñ=Ô=ð@ð @ñô ð ð
ð ð õ �4‰yŒy˜AŠ~ˆ~ $ q¤'×"AÒ"AÀ"Ñ"EÔ"Eˆ~Ø˜1”g×1Ò1°"Ñ5Ô5�ð  ��ðð ð ð ð ð ð ð ð �õ ÐKÑLÔLÐLàˆFðÝ%Ô-¨c°wÐ?Ñ?Ô?ð ð ‘D�A�qØ—M’MÝ!Ô/õ $-Ô#=×#HÒ#HÈÑ#KÔ#Kð!'¥	Ô :× AÒ AÀ!Ñ DÔ DÐ Dà%&Ý )Ô >Ý$(¨¡G¤GÕ;KÑ;MÔ;Mð!"ñ !"ô !"ð	õ +;Ñ*<Ô*<ð
ñ 
ô 
ñô ð ð ðøõ ð ð ð ÝØGØðñ ô ð ð ð ð ð ð øøøøðøøøõ
 Ô1ØÕ&6Ñ&8Ô&8ðñ ô ð ð ŒZ�9Ô+Ð+Ð+Ý�4‰yŒy˜1Š}ˆ}Ý Ô7ØðÝ)9Ñ);Ô);ðð ð ð ×1Ò1ÝÔ% b­)Ô*:Ñ;Ô;¸TÀ6ñô ð ð ŒZ�9œ?Ð*Ð*ÝÔ2ØðÝ%5Ñ%7Ô%7ðð ð ð ŒZ�9œ?Ð*Ð*ÝÔ2ØðÝ%5Ñ%7Ô%7ðð ð ð ŒZ�9Ô.Ð.Ð.ÝÔ1µ)Ô2EÑFÔF×TÒTØ�D˜&ñô ð ð ŒZ�9Ô0Ð0Ð0ÝÔ1µ)Ô2GÑHÔH×VÒVØ�D˜&ñô ð õ ‘7”7×(Ò(¨¨T°6Ñ:Ô:Ð:s1   ÈH-È-
IÈ7IÉIÒB>U
 Õ

U/ÕU*Õ*U/©r   N)r-   r   r.   r/   r!   r0   r   r   )	Ú__name__Ú
__module__Ú__qualname__r   rO   r)   r,   rU   Ú__classcell__©r"   s   @r#   r   r      s¹   ø€ € € € € ðð ð ð ð ð ð2˜#ð 2ð 2ð 2ð 2ðð ð ðd;à#ðd;ð &ðd;ð -ð	d;ð
 
ðd;ð d;ð d;ð d;ð d;ð d;ð d;ð d;ð d;ð d;r$   r   c                   óJ   ‡ — e Zd Zdˆ fd„Zd„ Zdee         fd„Zdefd„Z	ˆ xZ
S )ÚIteratorVariabler   Nc                 ó:   •—  t          ¦   «         j        di |¤Ž d S r   )r   r   )r    r!   r"   s     €r#   r   zIteratorVariable.__init__Ï   s&   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r$   c                 ó$   — t          d¦  «         d S )Nzabstract method, must implement)r   ©r    r-   s     r#   Únext_variablezIteratorVariable.next_variableÒ   s   € ÝÐ7Ñ8Ô8Ð8Ð8Ð8r$   c                 ó    — g }	 	 |                      |                      |¦  «        ¦  «         n# t          $ r t          |¦  «         Y nw xY wŒJ|S r+   )re   r�   r   r   )r    r-   r   s      r#   Úforce_unpack_var_sequencez*IteratorVariable.force_unpack_var_sequenceÙ   sn   € Øˆð	ðØ—’˜d×0Ò0°Ñ4Ô4Ñ5Ô5Ð5Ð5øÝ,ð ð ð Ý)¨"Ñ-Ô-Ð-Ø�ðøøøð	ð ˆs   …(. ®A
Á	A
c                 ó   — dS )NTr   rŒ   s     r#   Úhas_force_unpack_var_sequencez.IteratorVariable.has_force_unpack_var_sequenceå   s   € Øˆtr$   r‚   )rƒ   r„   r…   r   r�   r   r   r�   Úboolr‘   r†   r‡   s   @r#   r‰   r‰   Î   s‡   ø€ € € € € ð#ð #ð #ð #ð #ð #ð9ð 9ð 9ð¨t°OÔ/Dð ð ð ð ð°4ð ð ð ð ð ð ð ð r$   r‰   c                   ó4   ‡ — e Zd Zdeddfˆ fd„Zd„ Zd„ Zˆ xZS )rm   r?   r   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r   )r   r   r?   )r    r?   r!   r"   s      €r#   r   zRepeatIteratorVariable.__init__ê   s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ	ˆ	ˆ	r$   c                 ó   — | j         S r+   )r?   rŒ   s     r#   r�   z$RepeatIteratorVariable.next_variableï   s
   € ØŒyÐr$   c                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óˆ   •— ‰                       ‰                      t          ¦  «        ‰                      d¦  «        g¦  «        S )Nrl   ©Úextend_outputÚcreate_load_python_modulerX   Úcreate_load_attr©Úcodegens   €r#   rW   z4RepeatIteratorVariable.reconstruct.<locals>.<lambda>ô   s>   ø€ �G×)Ò)à×5Ò5µiÑ@Ô@Ø×,Ò,¨XÑ6Ô6ðñô € r$   r   F)Úadd_push_nullr?   r™   r   ©r    r�   s    `r#   Úreconstructz"RepeatIteratorVariable.reconstructò   sh   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r$   )rƒ   r„   r…   r   r   r�   r    r†   r‡   s   @r#   rm   rm   é   si   ø€ € € € € ð˜_ð ¸4ð ð ð ð ð ð ð
ð ð ð
>ð 
>ð 
>ð 
>ð 
>ð 
>ð 
>r$   rm   c                   ó:   ‡ — e Zd Zd
dededdfˆ fd„Zd„ Zd	„ Zˆ xZS )rq   r   r   r?   Ústepr   Nc                 óú   •—  t          ¦   «         j        di |¤Ž t          |t          ¦  «        st	          j        |¦  «        }t          |t          ¦  «        st	          j        |¦  «        }|| _        || _        d S r   )r   r   rL   r   r   rk   r?   r¢   )r    r?   r¢   r!   r"   s       €r#   r   zCountIteratorVariable.__init__   sv   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ý˜$¥Ñ0Ô0ð 	1Ý#Ô*¨4Ñ0Ô0ˆDÝ˜$¥Ñ0Ô0ð 	1Ý#Ô*¨4Ñ0Ô0ˆDØˆŒ	ØˆŒ	ˆ	ˆ	r$   c                 óÎ   — |                       ¦   «         sJ ‚| j        }|j        j                             | ¦  «         | j                             |d| j        gi ¦  «        | _        |S )NÚ__add__)Ú
is_mutabler?   ÚoutputÚside_effectsÚmutationÚcall_methodr¢   )r    r-   Úold_items      r#   r�   z#CountIteratorVariable.next_variable	  s^   € Ø�ŠÑ Ô Ð Ð Ð Ø”9ˆØ
Œ	Ô×'Ò'¨Ñ-Ô-Ð-Ø”I×)Ò)¨"¨i¸$¼)¸ÀbÑIÔIˆŒ	Øˆr$   c                 ó¾   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «          ‰| j        ¦  «         ‰                     t	          dd¦  «        ¦  «         d S )Nc                  óˆ   •— ‰                       ‰                      t          ¦  «        ‰                      d¦  «        g¦  «        S )Nrp   r˜   rœ   s   €r#   rW   z3CountIteratorVariable.reconstruct.<locals>.<lambda>  s>   ø€ �G×)Ò)à×5Ò5µiÑ@Ô@Ø×,Ò,¨WÑ5Ô5ðñô € r$   r   F)rž   r?   r¢   r™   r   rŸ   s    `r#   r    z!CountIteratorVariable.reconstruct  sz   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð 	ˆ�”	ÑÔÐØˆ�”	ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r$   )r   r   )rƒ   r„   r…   Úintr   r�   r    r†   r‡   s   @r#   rq   rq   ÿ   su   ø€ € € € € ðð ˜Sð ¨Cð À$ð ð ð ð ð ð ðð ð ð>ð >ð >ð >ð >ð >ð >r$   rq   c                   óf   ‡ — e Zd Z	 	 	 d
dedeee                  dedee         ddf
ˆ fd„Zd	„ Z	ˆ xZ
S )rs   Nr   ÚiteratorÚsavedÚsaved_indexr?   r   c                 óz   •— |€g } t          ¦   «         j        di |¤Ž || _        || _        || _        || _        d S r   )r   r   r°   r±   r²   r?   )r    r°   r±   r²   r?   r!   r"   s         €r#   r   zCycleIteratorVariable.__init__  sM   ø€ ð ˆ=ØˆEØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø ˆŒØˆŒ
Ø&ˆÔØˆŒ	ˆ	ˆ	r$   c                 óø  — |                       ¦   «         sJ ‚| j        �å	 | j                             |¦  «        }t          | j        ¦  «        t
          k    rt          d¦  «         |j        j         	                    | ¦  «         | j         
                    |¦  «         || _        | j        €|                      |¦  «        S | j        S # t          $ r. t          |¦  «         d | _        |                      |¦  «        cY S w xY wt          | j        ¦  «        dk    rJ|j        j         	                    | ¦  «         | j        dz   t          | j        ¦  «        z  | _        | j        S t          t           |¦  «         d S )Nz4input iterator to itertools.cycle has too many itemsr   r   )r¦   r°   r�   rb   r±   ÚMAX_ITERATOR_LIMITr   r§   r¨   r©   re   r?   r   r   r²   r   ÚStopIteration)r    r-   Únew_items      r#   r�   z#CycleIteratorVariable.next_variable/  sr  € Ø�ŠÑ Ô Ð Ð Ð àŒ=Ð$ð.Øœ=×6Ò6°rÑ:Ô:�Ý�t”z‘?”?Õ%7Ò7Ð7Ý!ØNñô ð ð ”	Ô&×/Ò/°Ñ5Ô5Ð5Ø”
×!Ò! (Ñ+Ô+Ð+Ø$�”	Ø”9Ð$Ø×-Ò-¨bÑ1Ô1Ð1Ø”yÐ øÝ,ð .ð .ð .Ý)¨"Ñ-Ô-Ð-Ø $�”Ø×)Ò)¨"Ñ-Ô-Ð-Ð-Ð-ð.øøøõ �”‰_Œ_˜qÒ Ð ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1Ø $Ô 0°1Ñ 4½¸D¼J¹¼ÑGˆDÔØ”9Ðå$¥]°BÑ7Ô7Ð7Ð7Ð7s   ŸB!C ÃC Ã5D Ã?D )Nr   N)rƒ   r„   r…   r‰   r   r   r   r®   r   r�   r†   r‡   s   @r#   rs   rs     s›   ø€ € € € € ð 26ØØ*.ðð à"ðð ˜˜_Ô-Ô.ðð ð	ð
 �Ô'ðð 
ðð ð ð ð ð ð 8ð 8ð 8ð 8ð 8ð 8ð 8r$   rs   c                   ó®   ‡ — e Zd ZdZddhej        £Z	 ddeeee         ef                  de	ddfˆ fd„Z
d	„ Zde	fd
„Zded         fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚZipVariablez$
    Represents zip(*iterables)
    ÚindexÚstrictFÚ	iterablesr   Nc                 ó’   •—  t          ¦   «         j        di |¤Ž t          |t          ¦  «        sJ ‚|| _        d| _        || _        d S ©Nr   r   )r   r   rL   r>   r¼   rº   r»   )r    r¼   r»   r!   r"   s       €r#   r   zZipVariable.__init__V  sQ   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ý˜)¥TÑ*Ô*Ð*Ð*Ð*à"ˆŒØˆŒ
ØˆŒˆˆr$   c                 ó   — t           S r+   )Úzipr(   s    r#   Úpython_typezZipVariable.python_typec  ó   € Ýˆ
r$   c                 óD   ‡— t          ˆfd„| j        D ¦   «         ¦  «        S )Nc              3   ól   •K  — | ].}t          |t          ¦  «        p|                     ‰¦  «        V — Œ/d S r+   )rL   r>   r3   )r5   Úitr-   s     €r#   r7   z6ZipVariable.has_unpack_var_sequence.<locals>.<genexpr>g  sT   øè è € ð 
ð 
àõ �r�4Ñ Ô ÐB B×$>Ò$>¸rÑ$BÔ$Bð
ð 
ð 
ð 
ð 
ð 
r$   )rZ   r¼   rŒ   s    `r#   r3   z#ZipVariable.has_unpack_var_sequencef  s=   ø€ Ýð 
ð 
ð 
ð 
à”nð
ñ 
ô 
ñ 
ô 
ð 	
r$   r   c                 ó\  — |                       |¦  «        sJ ‚g }| j        D ]b}t          |t          ¦  «        r#|                     || j        d …         ¦  «         Œ:|                     |                     |¦  «        ¦  «         Œc| j        r	d| j        ini }t          |i |¤Ž}d„ |D ¦   «         S )Nr»   c                 óP   — g | ]#}t          j        t          |¦  «        ¦  «        ‘Œ$S r   r<   )r5   Úvars     r#   r:   z3ZipVariable.unpack_var_sequence.<locals>.<listcomp>v  s)   € ÐEÐEÐE°s•	Ô'­¨S©	¬	Ñ2Ô2ÐEÐEÐEr$   )	r3   r¼   rL   r>   re   rº   r9   r»   rÀ   )r    r-   r¼   rÅ   r!   Úzippeds         r#   r9   zZipVariable.unpack_var_sequencel  sÉ   € Ø×+Ò+¨BÑ/Ô/Ð/Ð/Ð/Øˆ	Ø”.ð 	=ð 	=ˆBÝ˜"�dÑ#Ô#ð =Ø× Ò   D¤J L LÔ!1Ñ2Ô2Ð2Ð2à× Ò  ×!7Ò!7¸Ñ!;Ô!;Ñ<Ô<Ð<Ð<Ø,0¬KÐ?�(˜DœKÐ(Ð(¸RˆÝ�iÐ* 6Ð*Ð*ˆØEÐE¸fÐEÑEÔEÐEr$   c                 ó<  ‡‡— |                       ¦   «         sJ ‚| j        Šg }ˆˆfd„}	 t          | j        ¦  «        D ]#\  }}|                      ||¦  «        ¦  «         Œ$ny# t
          $ rl | j        rc|dk    r8| j        D ]/}	  ||¦  «         n# t
          $ r t          ‰¦  «         Y Œ*w xY w n‚ t          ‰¦  «         t          t          d¦  «        d ‚‚ w xY w‰j
        j                             | ¦  «         | xj        dz  c_        t          j        |¦  «        S )Nc                 ó¸   •— t          | t          ¦  «        r0‰t          | ¦  «        k    rt          t          ‰¦  «         | ‰         S |                      ‰¦  «        S r+   )rL   r>   rb   r   r¶   r�   )rÅ   Ú	old_indexr-   s    €€r#   Úget_itemz+ZipVariable.next_variable.<locals>.get_item}  sT   ø€ Ý˜"�dÑ#Ô#ð ,Ø¥ B¡¤Ò'Ð'Ý,­]¸BÑ?Ô?Ð?Ø˜)”}Ð$à×'Ò'¨Ñ+Ô+Ð+r$   r   z3zip() has one argument of len differing from othersr   )r¦   rº   Ú	enumerater¼   re   r   r»   r   r   Ú
ValueErrorr§   r¨   r©   r
   r=   )r    r-   r.   rÍ   ÚidxrÅ   rÌ   s    `    @r#   r�   zZipVariable.next_variablex  s€  øø€ Ø�ŠÑ Ô Ð Ð Ð Ø”Jˆ	Øˆð	,ð 	,ð 	,ð 	,ð 	,ð 	,ð	Ý$ T¤^Ñ4Ô4ð *ð *‘��RØ—’˜H˜H R™LœLÑ)Ô)Ð)Ð)ð*øå(ð 	ð 	ð 	ØŒ{ð Ø˜!’8�8à"œnð 
ð 
˜ð%Ø$˜H R™LœL˜L˜LøÝ8ð %ð %ð %Ý5°bÑ9Ô9Ð9Ø$˜Hð%øøøð ˜ð Ý)¨"Ñ-Ô-Ð-ÝÝØIñô ð ðð ð)	øøøð, 	Œ	Ô×'Ò'¨Ñ-Ô-Ð-Øˆ
Œ
�a‰ˆ
Œ
ÝÔ& tÑ,Ô,Ð,s/   ©8A" Á" CÂBÂCÂB+Â(CÂ*B+Â+-Cc           	      ó  — | j         D ]x}t          |t          ¦  «        rV|| j        d …         }|                     |¦  «         |                     t          dt          |¦  «        ¬¦  «        ¦  «         Œm ||¦  «         Œyd S ©NÚBUILD_TUPLE©r6   )r¼   rL   r>   rº   ÚforeachÚappend_outputr   rb   )r    r�   rÅ   Úremaining_itemss       r#   Úreconstruct_itemszZipVariable.reconstruct_items¢  s—   € Ø”.ð 	ð 	ˆBÝ˜"�dÑ#Ô#ð Ø"$ T¤Z \ \Ô"2�Ø—’ Ñ0Ô0Ð0Ø×%Ò%Ý& }½#¸oÑ:NÔ:NÐOÑOÔOñô ð ð ð �˜‘”��ð	ð 	r$   c           	      ó  ‡— ‰                      ˆfd„d¬¦  «         |                      ‰¦  «         ‰                     t          dt	          | j        ¦  «        ¬¦  «        ¦  «         t          j        dk    rd‰                     ‰ 	                    d¦  «        ‰ 	                    | j
        ¦  «        t          dd	¬¦  «        t          d
d	¬¦  «        g¦  «         d S ‰                     t          d
d¬¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )NÚbuiltinsrÀ   ©Úload_import_fromrœ   s   €r#   rW   z)ZipVariable.reconstruct.<locals>.<lambda>¯  ó   ø€ �G×,Ò,¨Z¸Ñ?Ô?€ r$   T©Úcall_function_exrÓ   rÔ   )é   é
   r»   Ú	BUILD_MAPr   ÚCALL_FUNCTION_EXr   )rž   rØ   rÖ   r   rb   r¼   ÚsysÚversion_infor™   Úcreate_load_constr»   rŸ   s    `r#   r    zZipVariable.reconstruct­  s  ø€ Ø×ÒØ?Ð?Ð?Ð?ÐRVð 	ñ 	
ô 	
ð 	
ð 	×Ò˜wÑ'Ô'Ð'Ø×ÒÝ˜}µ#°d´nÑ2EÔ2EÐFÑFÔFñ	
ô 	
ð 	
õ Ô˜wÒ&Ð&Ø×!Ò!à×-Ò-¨hÑ7Ô7Ø×-Ò-¨d¬kÑ:Ô:Ý& {¸Ð:Ñ:Ô:Ý&Ð'9¸qÐAÑAÔAð	ñô ð ð ð ð ×!Ò!Õ"4Ð5GÈQÐ"OÑ"OÔ"OÑPÔPÐPÐPÐPr$   )F)rƒ   r„   r…   Ú__doc__r‰   Ú_nonvar_fieldsr   r   r   r’   r   rÁ   r3   r9   r�   rØ   r    r†   r‡   s   @r#   r¹   r¹   K  s"  ø€ € € € € ðð ð
 	Øðð 
Ô	(ð€Nð ðð à˜˜d ?Ô3°_ÐDÔEÔFðð ðð
 
ðð ð ð ð ð ðð ð ð
¨Tð 
ð 
ð 
ð 
ð
F¨Ð.?Ô)@ð 
Fð 
Fð 
Fð 
Fð(-ð (-ð (-ðT	ð 	ð 	ðQð Qð Qð Qð Qð Qð Qr$   r¹   c                   óz   ‡ — e Zd ZdZdedeeee         ef                  ddfˆ fd„Zd„ Zde	fd„Z
ˆ fd	„Zd
„ Zˆ xZS )ÚMapVariablez(
    Represents map(fn, *iterables)
    Úfnr¼   r   Nc                 óJ   •—  t          ¦   «         j        |fi |¤Ž || _        d S r+   )r   r   rì   )r    rì   r¼   r!   r"   s       €r#   r   zMapVariable.__init__Ç  s/   ø€ ð 	�‰ŒÔ˜Ð-Ð- fÐ-Ð-Ð-ØˆŒˆˆr$   c                 ó   — t           S r+   )Úmapr(   s    r#   rÁ   zMapVariable.python_typeÐ  rÂ   r$   c                 ó   — dS )NFr   rŒ   s     r#   r3   z#MapVariable.has_unpack_var_sequenceÓ  s   € Øˆur$   c                 óˆ   •— t          ¦   «                              |¦  «        }| j                             ||j        i ¦  «        S r+   )r   r�   rì   rU   rx   )r    r-   r.   r"   s      €r#   r�   zMapVariable.next_variableÖ  s6   ø€ Ý‰wŒw×$Ò$ RÑ(Ô(ˆØŒw×$Ò$ R¨¬°RÑ8Ô8Ð8r$   c                 ó  ‡— ‰                      ˆfd„d¬¦  «          ‰| j        ¦  «         |                      ‰¦  «         ‰                     t	          dt          | j        ¦  «        dz   ¬¦  «        t	          dd¬¦  «        g¦  «         d S )	Nc                  ó0   •— ‰                       dd¦  «        S )NrÛ   rï   rÜ   rœ   s   €r#   rW   z)MapVariable.reconstruct.<locals>.<lambda>Ü  rÞ   r$   Trß   rÓ   r   rÔ   rä   r   )rž   rì   rØ   r™   r   rb   r¼   rŸ   s    `r#   r    zMapVariable.reconstructÚ  s®   ø€ Ø×ÒØ?Ð?Ð?Ð?ÐRVð 	ñ 	
ô 	
ð 	
ð 	ˆ�”ÑÔÐØ×Ò˜wÑ'Ô'Ð'Ø×Òå" =µc¸$¼.Ñ6IÔ6IÈAÑ6MÐNÑNÔNÝ"Ð#5¸1Ð=Ñ=Ô=ðñ	
ô 	
ð 	
ð 	
ð 	
r$   )rƒ   r„   r…   rè   r   r   r   r   rÁ   r’   r3   r�   r    r†   r‡   s   @r#   rë   rë   Â  sÉ   ø€ € € € € ðð ðàðð ˜˜d ?Ô3°_ÐDÔEÔFðð
 
ðð ð ð ð ð ðð ð ð¨Tð ð ð ð ð9ð 9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð 
ð 
ð 
r$   rë   c                   óœ   ‡ — e Zd ZdZdhej        £Zdedeee         ef         ddfˆ fd„Z	d„ Z
defd	„Zded
         fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚFilterVariablez)
    Represents filter(fn, iterable)
    rº   rì   r|   r   Nc                 ód   •—  t          ¦   «         j        di |¤Ž || _        || _        d| _        d S r¾   )r   r   rì   r|   rº   )r    rì   r|   r!   r"   s       €r#   r   zFilterVariable.__init__ò  s;   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒØ ˆŒØˆŒ
ˆ
ˆ
r$   c                 ó   — t           S r+   )Úfilterr(   s    r#   rÁ   zFilterVariable.python_typeý  s   € Ýˆr$   c                 ój   — t          | j        t          ¦  «        p| j                             |¦  «        S r+   )rL   r|   r>   r3   rŒ   s     r#   r3   z&FilterVariable.has_unpack_var_sequence   s2   € Ý˜$œ-­Ñ.Ô.ð 
°$´-×2WÒ2WØñ3
ô 3
ð 	
r$   r   c                 ó*  — |                       |¦  «        sJ ‚d }t          | j        t          ¦  «        r| j        | j        d …         }n| j                             |¦  «        }| j                             ||i ¦  «        }t          j	        |g¦  «        gS r+   )
r3   rL   r|   r>   rº   r9   rì   rU   r
   r=   )r    r-   rÅ   Úfiltereds       r#   r9   z"FilterVariable.unpack_var_sequence  s�   € Ø×+Ò+¨BÑ/Ô/Ð/Ð/Ð/ØˆÝ�d”m¥TÑ*Ô*ð 	7Ø”˜tœz˜|˜|Ô,ˆBˆBà”×2Ò2°2Ñ6Ô6ˆBØ”7×(Ò(¨¨R°Ñ4Ô4ˆÝÔ'¨¨
Ñ3Ô3Ð4Ð4r$   c                 ó  ‡ ‡— ˆ ˆfd„}	  |¦   «         }‰ xj         dz  c_         ‰ j                             ‰|gi ¦  «        }t          j        t
          j        ¦  «                             ‰|gi ¦  «        }|                     ¦   «         r|S Œ‚)Nc                  óî   •— ‰j         } t          ‰j        t          ¦  «        r:| t	          ‰j        ¦  «        k    rt          t          ‰¦  «         ‰j        |          S ‰j                             ‰¦  «        S r+   )rº   rL   r|   r>   rb   r   r¶   r�   )rÌ   r    r-   s    €€r#   Ú_nextz+FilterVariable.next_variable.<locals>._next  sf   ø€ Øœ
ˆIÝ˜$œ-­Ñ.Ô.ð 7Ø¥ D¤MÑ 2Ô 2Ò2Ð2Ý,­]¸BÑ?Ô?Ð?Ø”} YÔ/Ð/à”}×2Ò2°2Ñ6Ô6Ð6r$   Tr   )rº   rì   rU   r
   ru   r	   Ú	predicater,   )r    r-   rþ   r?   ÚresÚpred_ress   ``    r#   r�   zFilterVariable.next_variable  sª   øø€ ð	7ð 	7ð 	7ð 	7ð 	7ð 	7ð	Ø�5‘7”7ˆDØˆJŒJ˜!‰OˆJŒJØ”'×'Ò'¨¨T¨F°BÑ7Ô7ˆCÝ Ô5ÝÔ#ñô çŠm˜B   rÑ*Ô*ð ð ×*Ò*Ñ,Ô,ð Ø�ð	r$   c                 ó  — t          | j        t          ¦  «        r\| j        | j        d …         }|                     |¦  «         |                     t          dt          |¦  «        ¬¦  «        ¦  «         d S  || j        ¦  «         d S rÒ   )rL   r|   r>   rº   rÕ   rÖ   r   rb   )r    r�   r×   s      r#   rØ   z FilterVariable.reconstruct_items$  sŽ   € Ý�d”m¥TÑ*Ô*ð 	#Ø"œm¨D¬J¨L¨LÔ9ˆOØ�OŠO˜OÑ,Ô,Ð,Ø×!Ò!Ý" =µc¸/Ñ6JÔ6JÐKÑKÔKñô ð ð ð ð ˆG�D”MÑ"Ô"Ð"Ð"Ð"r$   c                 óÈ   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         |                      ‰¦  «         ‰                     t	          dd¦  «        ¦  «         d S )Nc                  ó0   •— ‰                       dd¦  «        S )NrÛ   rø   rÜ   rœ   s   €r#   rW   z,FilterVariable.reconstruct.<locals>.<lambda>/  s   ø€  g×&>Ò&>¸zÈ8Ñ&TÔ&T€ r$   r   F)rž   rì   rØ   r™   r   rŸ   s    `r#   r    zFilterVariable.reconstruct.  sl   ø€ Ø×ÒÐTÐTÐTÐTÑUÔUÐUØˆ�”ÑÔÐØ×Ò˜wÑ'Ô'Ð'Ø×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r$   )rƒ   r„   r…   rè   r‰   ré   r   r   r   r   rÁ   r’   r3   r9   r�   rØ   r    r†   r‡   s   @r#   rõ   rõ   è  s  ø€ € € € € ðð ð
 	ðà	Ô	(ð€Nð
	àð	ð ˜˜_Ô-¨Ð>Ô?ð	ð
 
ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð
¨Tð 
ð 
ð 
ð 
ð
5¨Ð.?Ô)@ð 5ð 5ð 5ð 5ðð ð ð*#ð #ð #ð>ð >ð >ð >ð >ð >ð >r$   rõ   )%rX   rc   rå   Útypingr   r   r   r   r   Ú r	   r
   Úbytecode_transformationr   r   Úexcr   r   r   r   r   Úbaser   r   Úconstantr   Útorch._dynamo.symbolic_convertr   rµ   r   r‰   rm   rq   rs   r¹   rë   rõ   r   r$   r#   ú<module>r     s›  ðð Ð Ð Ð Ø €€€Ø 
€
€
€
Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nðð ð ð ð ð ð ð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø &Ð &Ð &Ð &Ð &Ð &ð ð EØDÐDÐDÐDÐDÐDð  Ð ðo;ð o;ð o;ð o;ð o;˜ñ o;ô o;ð o;ðdð ð ð ð �ñ ô ð ð6>ð >ð >ð >ð >Ð-ñ >ô >ð >ð,>ð >ð >ð >ð >Ð,ñ >ô >ð >ð>*8ð *8ð *8ð *8ð *8Ð,ñ *8ô *8ð *8ðZtQð tQð tQð tQð tQÐ"ñ tQô tQð tQðn#
ð #
ð #
ð #
ð #
�+ñ #
ô #
ð #
ðLJ>ð J>ð J>ð J>ð J>Ð%ñ J>ô J>ð J>ð J>ð J>r$   