§
    ž²Åj$_  ã                   ó`  — d dl Z 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	m
Z
 ddlmZmZmZmZmZmZmZmZmZ ddlmZ dZ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„ Z$ ej%        d¬¦  «         G d„ d¦  «        ¦   «         Z&ej%         G d„ d¦  «        ¦   «         Z'd„ Z(d„ Z) G d„ d¦  «        Z*dS )é    N)ÚAnyÚcastÚDictÚListÚOptionalÚTupleé   )	Úbytecode_from_templateÚcreate_call_functionÚcreate_instructionÚcreate_jump_absoluteÚcreate_load_constÚInstructionÚoverwrite_instructionÚtransform_code_objectÚ	unique_id)ÚExactWeakKeyDictionaryé   é   é   é   é    é@   é€   é   i   Útorch_dynamo_resume_inc                 óÚ   — t           j        dk    rX|                      t          d¦  «        ¦  «         t           j        dk     r(|                      t          dd¬¦  «        ¦  «         d S d S d S )N©é   é   Ú	PUSH_NULL)r   é   ÚSWAPr   ©Úarg)ÚsysÚversion_infoÚappendr   )Úinstss    úOC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/resume_execution.pyÚ_initial_push_nullr+   &   sm   € Ý
Ô˜7Ò"Ð"Ø�ŠÕ'¨Ñ4Ô4Ñ5Ô5Ð5ÝÔ˜gÒ%Ð%Ø�LŠLÕ+¨F¸Ð:Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;ð #Ð"à%Ð%ó    c                 óð  — t          | |¬¦  «        }|                     t          d¦  «        ¦  «         |D ]}|j        r|j        xj        |z  c_        Œt          d„ t          |¦  «        D ¦   «         d¦  «        \  }}|€J ‚t          |t          d¦  «        g¦  «         ||dz            j        dk    sJ ‚t          ||dz            t          d¦  «        g¦  «         |d |dz   …         ||dz   d …         fS )N©Úvarname_mapÚPOP_TOPc              3   óP   K  — | ]!\  }}|j         d k    ¯|j        dk    ¯||fV — Œ"dS )Ú	LOAD_FASTÚdummyN©ÚopnameÚargval)Ú.0ÚiÚinsts      r*   ú	<genexpr>z5_bytecode_from_template_with_split.<locals>.<genexpr>9   sO   è è € ð 	
ð 	
á��4ØŒ{˜kÒ)Ð)¨d¬k¸WÒ.DÐ.Dð �ˆIà.DÐ.DÐ.DÐ.Dð	
ð 	
r,   )NNÚNOPr	   )	r
   r(   r   Úexn_tab_entryÚdepthÚnextÚ	enumerater   r5   )ÚtemplateÚstack_indexr/   Útemplate_coder9   Ú	dummy_idxÚ
dummy_insts          r*   Ú"_bytecode_from_template_with_splitrE   .   s9  € Ý*¨8ÀÐMÑMÔM€MØ×ÒÕ+¨IÑ6Ô6Ñ7Ô7Ð7ð ð 4ð 4ˆØÔð 	4ØÔÐ$Ô$¨Ñ3Ð$Ô$øõ !ð	
ð 	
å$ ]Ñ3Ô3ð	
ñ 	
ô 	
ð
 	ñô Ñ€Iˆzð Ð Ð Ð õ ˜*Õ'9¸%Ñ'@Ô'@Ð&AÑBÔBÐBð ˜ Q™Ô'Ô.°)Ò;Ð;Ð;Ð;Ý˜-¨	°A©Ô6Õ9KÈEÑ9RÔ9RÐ8SÑTÔTÐTà˜˜9 q™=˜Ô)¨=¸ÀQ¹¸¸Ô+IÐIÐIr,   c                 óL   — 	 |  d S #  t                                |¦  «         ‚ xY w©N)Ú$__import_torch_dot__dynamo_dot_utilsÚset_torch_function_mode_stack)r3   Ústack_var_names     r*   Ú_try_except_tf_mode_templaterK   L   s9   € ðØˆˆˆøðÝ,×JÒJØñ	
ô 	
ð 	
ð 	øøøs   ‚ †#T)Úfrozenc                   óz   — e Zd ZU eed<   dZeeedf                  ed<   de	e
         fd„Zde	e
         fd„Zd„ ZdS )	ÚReenterWithrA   N.Útarget_valuesÚcleanupc                 óx   — ddl m} t          t          | j        d |¦   «         i¬¦  «        \  }}||z   |dd…<   |S )z–
        Codegen based off of:
        try:
            (rest)
        except:
            (restore previous tf mode stack)
            raise
        r	   )Úget_prev_stack_var_namerJ   r.   N)Úvariables.torch_functionrR   rE   rK   rA   )ÚselfÚcode_optionsrP   rR   Úsetup_try_exceptÚepilogues         r*   Útry_except_torch_function_modez*ReenterWith.try_except_torch_function_mode^   sf   € ð 	FÐEÐEÐEÐEÐEå%GÝ(ØÔØ)Ð+BÐ+BÑ+DÔ+DÐEð&
ñ &
ô &
Ñ"Ð˜(ð
  Ñ'ˆ���‰
àÐr,   c                 óâ  — g }| j         rd„ | j         D ¦   «         }t          d| j        › �¦  «        }||d         vr|dxx         |fz  cc<   dD ]}||d         vr|dxx         |fz  cc<   Œg }t          |¦  «         |                     g |¢t          t          |¦  «        d¦  «        ¢t          d|¬¦  «        ‘¦  «         d	„ }t          || j        d
|i¬¦  «        \  }}	|	|z   |dd…<   ||z   S )z™
        Codegen based off of:
        load args
        enter context
        try:
            (rest)
        finally:
            exit context
        c                 ó,   — g | ]}t          |¦  «        ‘ŒS © ©r   ©r7   Úvals     r*   ú
<listcomp>z+ReenterWith.try_finally.<locals>.<listcomp>�   ó!   € ÐNÐNÐN°CÕ*¨3Ñ/Ô/ÐNÐNÐNr,   Ú___context_manager_Úco_varnames©Ú	__enter__Ú__exit__Úco_namesFÚ
STORE_FAST©r6   c                 óš   — |                       ¦   «          	 | |                      d d d ¦  «         d S # |                      d d d ¦  «         w xY wrG   rc   ©Úctxr3   s     r*   Ú	_templatez*ReenterWith.try_finally.<locals>._template“   sQ   € Ø�MŠM‰OŒOˆOð/Ø�à—’˜T 4¨Ñ.Ô.Ð.Ð.Ð.ø�—’˜T 4¨Ñ.Ô.Ð.Ð.øøøs	   –1 ±A
rk   r.   N)	rO   r   rA   r+   Úextendr   Úlenr   rE   )
rT   rU   rP   Ú	load_argsÚctx_nameÚnameÚ
create_ctxrl   Úsetup_try_finallyrW   s
             r*   Útry_finallyzReenterWith.try_finallyt   sr  € ð ˆ	ØÔð 	OØNÐN¸4Ô;MÐNÑNÔNˆIÝÐE°4Ô3CÐEÐEÑFÔFˆØ˜<¨Ô6Ð6Ð6Ø˜Ð'Ð'Ô'¨H¨;Ñ6Ð'Ð'Ñ'Ø-ð 	4ð 	4ˆDØ˜<¨
Ô3Ð3Ð3Ø˜ZÐ(Ð(Ô(¨T¨GÑ3Ð(Ð(Ñ(øà(*ˆ
Ý˜:Ñ&Ô&Ð&Ø×ÒðØðå%¥c¨)¡n¤n°eÑ<Ô<ðõ # <¸ÐAÑAÔAðñ	
ô 	
ð 	
ð	/ð 	/ð 	/õ 'IØ�tÔ'°e¸XÐ5Fð'
ñ '
ô '
Ñ#Ð˜8ð  Ñ'ˆ���‰
ØÐ-Ñ-Ð-r,   c                 óì  — g }| j         rd„ | j         D ¦   «         }g }t          |¦  «         |                     g |¢t          t	          |¦  «        d¦  «        ¢¦  «         d„ }t          || j        ¦  «        \  }}||z   |dd…<   t          d„ |D ¦   «         d¦  «        }|€J ‚t          |t          d¦  «        g¦  «         d„ |D ¦   «         }	t          |	d¦  «        }
t          |	d¦  «        �J ‚||z   |
fS )zR
        Codegen based off of:
        with ctx(args):
            (rest)
        c                 ó,   — g | ]}t          |¦  «        ‘ŒS r[   r\   r]   s     r*   r_   z(ReenterWith.__call__.<locals>.<listcomp>©   r`   r,   Fc                 ó@   — | 5  | d d d ¦  «         d S # 1 swxY w Y   d S rG   r[   rj   s     r*   rl   z'ReenterWith.__call__.<locals>._template´   sq   € Øð ð Ø�ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ƒ“šNc              3   óF   K  — | ]}|j         d k    ¯|j        dk    ¯|V — ŒdS )r2   rk   Nr4   ©r7   r9   s     r*   r:   z'ReenterWith.__call__.<locals>.<genexpr>¾   sG   è è € ð ð àØ”; +Ò-Ð-°$´+ÀÒ2FÐ2Fð à2FÐ2FÐ2FÐ2Fðð r,   r;   c              3   ó0   K  — | ]}|j         d k    ¯|V — ŒdS )ÚPUSH_EXC_INFON)r5   ry   s     r*   r:   z'ReenterWith.__call__.<locals>.<genexpr>Ê   s7   è è € ð 
ð 
Ø¨¬¸Ò)GÐ)GˆDÐ)GÐ)GÐ)GÐ)Gð
ð 
r,   )
rO   r+   rm   r   rn   rE   rA   r>   r   r   )rT   rU   rP   ro   rr   rl   Ú
setup_withrW   Úload_fast_ctx_instÚpush_exc_info_genÚpush_exc_info_insts              r*   Ú__call__zReenterWith.__call__    ss  € ð ˆ	ØÔð 	OØNÐN¸4Ô;MÐNÑNÔNˆIà(*ˆ
Ý˜:Ñ&Ô&Ð&Ø×ÒðØðå%¥c¨)¡n¤n°eÑ<Ô<ðñ	
ô 	
ð 	
ð	ð 	ð 	õ  BØ�tÔ'ñ 
ô  
Ñˆ
�Hð  Ñ'ˆ���‰
å!ðð à&ðñ ô ð
 ñ
ô 
Ðð "Ð-Ð-Ð-åÐ0Õ3EÀeÑ3LÔ3LÐ2MÑNÔNÐNð
ð 
Ø%ð
ñ 
ô 
Ðõ "Ð"3°TÑ:Ô:ÐåÐ% tÑ,Ô,Ð4Ð4Ð4à˜JÑ&Ð(:Ð:Ð:r,   )Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__rO   r   r   r   r   r   rX   rt   r€   r[   r,   r*   rN   rN   Y   s�   € € € € € € àÐÐÑØ/3€M�8˜E # s (œOÔ,Ð3Ð3Ñ3ð ÀDÈÔDUð  ð  ð  ð  ð,*.°°kÔ1Bð *.ð *.ð *.ð *.ðX1;ð 1;ð 1;ð 1;ð 1;r,   rN   c                   ó¾   — e Zd ZU ej        ed<    ej        e¬¦  «        Z	e
e         ed<    ej        e¬¦  «        Ze
e         ed<   dZeeeef                  ed<   dS )ÚResumeFunctionMetadataÚcode)Údefault_factoryÚinstructionsÚ prefix_block_target_offset_remapNÚblock_target_offset_remap)r�   r‚   rƒ   ÚtypesÚCodeTyper…   ÚdataclassesÚfieldÚlistrŠ   r   r   r‹   r„   rŒ   r   r   r[   r,   r*   r‡   r‡   Ô   sš   € € € € € € à
Œ.ÐÐÑØ&7 kÔ&7ÈÐ&MÑ&MÔ&M€L�$�{Ô#ÐMÐMÑMð 3D°+Ô2CØð3ñ 3ô 3Ð$ d¨3¤ið ð ñ ð ;?Ð˜x¨¨S°#¨X¬Ô7Ð>Ð>Ñ>Ð>Ð>r,   r‡   c                 óÔ   — t          |¦  «        }g }	 t          |¦  «        }| D ]2} |||¦  «        r$|                     |¦  «         t          |¦  «        }Œ3n# t          $ r Y nw xY w|S )z®
    Two-pointer conditional filter.
    e.g. _filter_iter(insts, sorted_offsets, lambda i, o: i.offset == o)
    returns the instructions with offsets in sorted_offsets
    )Úiterr>   r(   ÚStopIteration)Úl1Úl2ÚcondÚitÚresÚcurr^   s          r*   Ú_filter_iterr›   ä   sŒ   € õ 
ˆb‰Œ€BØ€CðÝ�2‰hŒhˆØð 	ð 	ˆCØˆt�C˜‰~Œ~ð Ø—
’
˜3‘”�Ý˜2‘h”h�øð	øõ ð ð ð Øˆðøøøà€Js   “AA Á
A%Á$A%c                 óÆ   — g }t          |¦  «         |                     d„ | D ¦   «         ¦  «         |                     t          t          | ¦  «        d¦  «        ¦  «         |S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rG   r\   r]   s     r*   r:   z'_load_tuple_and_call.<locals>.<genexpr>ú   s+   è è € Ð7Ð7¨CÕ" 3Ñ'Ô'Ð7Ð7Ð7Ð7Ð7Ð7r,   F)r+   rm   r   rn   )Útupr)   s     r*   Ú_load_tuple_and_callrŸ   ÷   s^   € Ø!€EÝ�uÑÔÐØ	‡L‚LÐ7Ð7°3Ð7Ñ7Ô7Ñ7Ô7Ð7Ø	‡L‚LÕ%¥c¨#¡h¤h°Ñ6Ô6Ñ7Ô7Ð7Ø€Lr,   c                   ó–  — e Zd Z e¦   «         Z e¦   «         Zed„ ¦   «         Zedede	edf         dede	e
df         de	e
df         de	edf         d	e	e	ee	e         f         df         d
e	e	e
e	e         f         df         de	edf         dej        fd„¦   «         Zedee         fd„¦   «         Zedede	edf         fd„¦   «         ZdS )ÚContinueExecutionCachec                 óÄ   — || j         vr
i | j         |<   t          |¦  «        }|| j         |         vr | j        ||g|¢R Ž | j         |         |<   | j         |         |         S rG   )ÚcacheÚtupleÚgenerate)Úclsrˆ   ÚlinenoÚkeys       r*   ÚlookupzContinueExecutionCache.lookup  sm   € à�s”yÐ Ð Ø ˆCŒI�d‰OÝ�C‰jŒjˆØ�c”i ”oÐ%Ð%Ø#/ 3¤<°°fÐ#C¸sÐ#CÐ#CÐ#CˆCŒI�dŒO˜CÑ ØŒy˜Œ˜sÔ#Ð#r,   ÚoffsetÚsetup_fn_target_offsets.ÚnstackÚargnamesÚargnames_nullÚ	setup_fnsÚstack_ctx_varsÚargnames_ctx_varsÚ
null_idxesÚreturnc                 óì  ‡ ‡‡‡‡‡‡‡‡	‡
‡‡‡— ‰€J ‚|j         t          t          z  t          z  t          z  z  rJ ‚|j         t
          z  sJ ‚|t          j        v r‰                      |‰‰‰‰‰‰‰‰	‰
‰¦  «        S t          j
        dk    Št          |¦  «        Šdt          t                   dt          t          t           f         fˆˆ
ˆˆ ˆˆˆˆˆˆˆˆˆ	fd„}t#          ||¦  «        }‰t          j        |<   |S )Nr   rŠ   rU   c                 ó  •‡— t          j        | ¦  «        ‰!_        d„ t          ‰"¦  «        D ¦   «         Š‰                     ˆfd„‰D ¦   «         ¦  «         t          |d         pg ¦  «        t          |d         pg ¦  «        z   }t          t          |¦  «        ¦  «        }t          › d|d         › d‰ › �|d<   ‰rk|d                              d	d
¬¦  «        }t          |¦  «        d
k    r|d         |d<   n/t          |¦  «        dk    sJ ‚|\  }}|› d	t          › d|› d‰ › �|d<   ‰ |d<   d|d<   ||d<   t          ‰¦  «        |d<   d|d<   d|d<   t          ‰ˆfd„‰D ¦   «         z   ˆfd„|d         D ¦   «         z   ¦  «        |d<   |d         t          t          z   z  |d<   t          ˆ$fd„| D ¦   «         ¦  «        }g }‰rW|r1|                     t          dt          |¦  «        ¬¦  «        ¦  «         |                     t          dd¬¦  «        ¦  «         g }d„ ‰&D ¦   «         }	ˆ%fd„t          ‰&¦  «        D ¦   «         }
d„ | D ¦   «         }i }d}t!          ‰'¦  «        }t          ‰"¦  «        D �]A}|t          ‰#¦  «        k     rX‰#|         ||z   k    rI|                     t          d¦  «        ¦  «         |d
z  }|t          ‰#¦  «        k     r‰#|         ||z   k    °I|                     t          dd |› �¬!¦  «        ¦  «         ||	v rw|	                     |¦  «        } |||¦  «        \  }}|                     |¦  «         ‰r<|
                     |¦  «        }||         }‰!j                             |¦  «         |||<   ||z   }||v r(|                     t'          ||         ¦  «        ¦  «         �ŒC‰r&t)          t+          ‰!j        ¦  «        ¦  «        ‰!_        |	rJ ‚‰D ]o\  }}|                     t          d|¬!¦  «        ¦  «         |                     t'          |¦  «        ¦  «         |                     t          d"|¬!¦  «        ¦  «         Œp‰rPt,          j        d#k    sJ ‚‰D ];}|‰vsJ ‚|                     t          d¦  «        t          d"|¬!¦  «        g¦  «         Œ<|                     t1          |¦  «        ¦  «         | D ]2}|j        |j        k    r nd |_        t,          j        d$k    rd |_        Œ3|r=|                     |¦  «         |                     ‰                     |¦  «        ¦  «         |r:‰sJ ‚| D ]3}|j        r*|j        j        |v r||j        j                 |j        _        Œ4|| z   | d d …<   d S )%Nc                 ó   — g | ]}d |› �‘ŒS )Ú___stackr[   )r7   r8   s     r*   r_   zCContinueExecutionCache.generate.<locals>.update.<locals>.<listcomp>6  s   € Ð:Ð:Ð: q�N˜q�N�NÐ:Ð:Ð:r,   c              3   ó$   •K  — | ]
}|‰v¯|V — Œd S rG   r[   ©r7   ÚvÚargss     €r*   r:   zBContinueExecutionCache.generate.<locals>.update.<locals>.<genexpr>7  s'   øè è € Ð=Ð=˜a¨q¸¨}¨}˜¨}¨}¨}¨}Ð=Ð=r,   Úco_cellvarsÚco_freevarsÚ_Úco_nameÚ_at_Úco_qualnameú.r	   )Úmaxsplitr   Úco_firstlinenor[   Úco_argcountr   Úco_posonlyargcountÚco_kwonlyargcountc                 ó   •— g | ]}|‰v¯|‘Œ	S r[   r[   r¹   s     €r*   r_   zCContinueExecutionCache.generate.<locals>.update.<locals>.<listcomp>Q  s   ø€ Ð=Ð=Ð=˜¨q¸¨}¨}�1¨}¨}¨}r,   c                 ó   •— g | ]}|‰v¯|‘Œ	S r[   r[   r¹   s     €r*   r_   zCContinueExecutionCache.generate.<locals>.update.<locals>.<listcomp>R  s   ø€ ÐKÐKÐK˜¸QÀd¸]¸]�1¸]¸]¸]r,   rb   Úco_flagsc              3   ó2   •K  — | ]}|j         ‰k    ¯|V — Œd S rG   ©rª   ©r7   r8   rª   s     €r*   r:   zBContinueExecutionCache.generate.<locals>.update.<locals>.<genexpr>W  s/   øè è € ÐHÐH °Q´XÀÒ5GÐ5G˜!Ð5GÐ5GÐ5GÐ5GÐHÐHr,   ÚCOPY_FREE_VARSr$   ÚRESUMEc                 ó   — i | ]
}|j         |“ŒS r[   ©rA   )r7   Úfns     r*   ú
<dictcomp>zCContinueExecutionCache.generate.<locals>.update.<locals>.<dictcomp>b  s   € Ð<Ð<Ð<¨B�R”^ RÐ<Ð<Ð<r,   c                 ó2   •— i | ]\  }}|j         ‰|         “ŒS r[   rÑ   )r7   r8   rÒ   r«   s      €r*   rÓ   zCContinueExecutionCache.generate.<locals>.update.<locals>.<dictcomp>c  s7   ø€ ð #ð #ð #á�A�rð ”Ð 7¸Ô :ð#ð #ð #r,   c                 ó   — i | ]
}|j         |“ŒS r[   rÌ   ry   s     r*   rÓ   zCContinueExecutionCache.generate.<locals>.update.<locals>.<dictcomp>g  s   € ÐIÐIÐI°D˜dœk¨4ÐIÐIÐIr,   r!   r2   r·   rh   rg   )r   é   r   )ÚcopyÚdeepcopyrŠ   Úrangerm   r¤   ÚsortedÚTORCH_DYNAMO_RESUME_IN_PREFIXÚrsplitrn   Ú
CO_VARARGSÚCO_VARKEYWORDSr>   r(   r   r?   ÚdictÚpopr‹   rŸ   r‘   Úreversedr&   r'   r   rª   Ústarts_lineÚ	positionsÚunreachable_codesr<   Útarget)(rŠ   rU   ÚfreevarsÚqualified_pathÚmodule_namer¿   rå   ÚprefixrP   ÚhooksÚhook_target_offsetsÚoffset_to_instÚold_hook_target_remapÚnull_idxes_iÚstack_ctx_vars_dr8   ÚhookÚ
hook_instsÚ
exn_targetÚhook_target_offsetÚold_hook_targetÚreal_irq   Úvalsrº   r9   r»   r­   r±   r®   r¦   Úis_py311_plusr§   Úmetar¬   r²   rª   r«   r¯   r°   s(                             @€€€€€€€€€€€€€r*   Úupdatez/ContinueExecutionCache.generate.<locals>.update3  sÝ  øø€ Ý $¤¨lÑ ;Ô ;ˆDÔà:Ð:­E°&©M¬MÐ:Ñ:Ô:ˆDØ�KŠKÐ=Ð=Ð=Ð= 8Ð=Ñ=Ô=Ñ=Ô=Ð=Ý˜\¨-Ô8Ð>¸BÑ?Ô?Å%Ø˜]Ô+Ð1¨rñCô Cñ ˆHõ �V HÑ-Ô-Ñ.Ô.ˆHõ 1ÐXÐX°<À	Ô3JÐXÐXÐPVÐXÐXð Øñð ð 	_Ø!-¨mÔ!<×!CÒ!CÀCÐRSÐ!CÑ!TÔ!T�Ý�~Ñ&Ô&¨!Ò+Ð+Ø2>¸yÔ2I�L Ñ/Ð/å˜~Ñ.Ô.°!Ò3Ð3Ð3Ð3Ø+9Ñ(�K ð 'Ð^Ð^Õ)FÐ^Ð^ÈÐ^Ð^ÐV\Ð^Ð^ð !Ø%ñð .4ˆLÐ)Ñ*Ø*,ˆL˜Ñ'Ø*2ˆL˜Ñ'Ý*-¨d©)¬)ˆL˜Ñ'Ø12ˆLÐ-Ñ.Ø01ˆLÐ,Ñ-Ý*/ØØ=Ð=Ð=Ð=˜mÐ=Ñ=Ô=ñ>àKÐKÐKÐK˜l¨=Ô9ÐKÑKÔKñLñ+ô +ˆL˜Ñ'ð
 (4°JÔ'?Ý�^Ñ+ðCñ (ˆL˜Ñ$õ ÐHÐHÐHÐH \ÐHÑHÔHÑHÔHˆFàˆFØð CØð Ø—M’MÝ*Ð+;ÅÀXÁÄÐOÑOÔOñô ð ð —’Õ0°¸qÐAÑAÔAÑBÔBÐBà)+ˆGØ<Ð<°)Ð<Ñ<Ô<ˆEð#ð #ð #ð #å& yÑ1Ô1ð#ñ #ô #Ðð JÐI¸LÐIÑIÔIˆNà$&Ð!ØˆLÝ# NÑ3Ô3ÐÝ˜6‘]”]ð Rñ R�à ¥3 z¡?¤?Ò2Ð2Ø" <Ô0°A¸Ñ4DÒDÐDà—M’MÕ"4°[Ñ"AÔ"AÑBÔBÐBØ  AÑ%�Lð	 !¥3 z¡?¤?Ò2Ð2Ø" <Ô0°A¸Ñ4DÒDÐDð —’Õ0°À^ÐPQÀ^À^ÐTÑTÔTÑUÔUÐUØ˜�:�:Ø Ÿ9š9 Q™<œ<�DØ-1¨T°,ÀÑ-HÔ-HÑ*�J 
Ø—M’M *Ñ-Ô-Ð-Ø$ð LØ-@×-DÒ-DÀQÑ-GÔ-GÐ*Ø*8Ð9KÔ*L˜ØÔ=×DÒDÐEWÑXÔXÐXØAKÐ-¨oÑ>Ø˜\Ñ)�ØÐ-Ð-Ð-ð —M’MÕ"6Ð7GÈÔ7OÑ"PÔ"PÑQÔQÐQùàð õ 9=Ý˜TÔBÑCÔCñ9ô 9�Ô5ð ÐÐ�9ð 0ð Mð M‘
��dØ—’Õ0°ÀTÐJÑJÔJÑKÔKÐKØ—’Õ2°4Ñ8Ô8Ñ9Ô9Ð9Ø—’Õ0°ÀdÐKÑKÔKÑLÔLÐLÐLð ð 	ÝÔ'¨7Ò2Ð2Ð2Ð2Ø&ð ð �AØ D˜=˜=˜=˜=Ø—M’Må.¨{Ñ;Ô;Ý.¨|ÀAÐFÑFÔFðñô ð ð ð �MŠMÕ.¨vÑ6Ô6Ñ7Ô7Ð7ð
 %ð *ð *�Ø”; &¤-Ò/Ð/Ø�EØ#'�Ô ÝÔ# wÒ.Ð.Ø%)�D”Nøàð CØ—’˜gÑ&Ô&Ð&Ø—’˜c×3Ò3°LÑAÔAÑBÔBÐBð %ð 	Ø$Ð$Ð$�}Ø(ð ð �DàÔ*ðà Ô.Ô5Ð9NÐNÐNà4IØ Ô.Ô5ô5˜Ô*Ô1øð
 % |Ñ3ˆL˜˜˜‰OˆOˆOr,   )rÊ   ÚCO_GENERATORÚCO_COROUTINEÚCO_ITERABLE_COROUTINEÚCO_ASYNC_GENERATORÚCO_OPTIMIZEDr¡   Úgenerated_code_metadataÚ&generate_based_on_original_code_objectr&   r'   r‡   r   r   r   Ústrr   r   )r¦   rˆ   r§   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   rù   Únew_coder÷   rø   s   ` ``````````  @@r*   r¥   zContinueExecutionCache.generate  sr  øøøøøøøøøøøøø€ ð Ð!Ð!Ð!àŒMÝ�lÑ*Õ-BÑBÕEWÑWñYð	
ð 	
ð 
ð Œ}�|Ñ+Ð+Ð+Ð+ØÕ)ÔAÐAÐAØ×=Ò=ØØØØ'ØØØØØØ!Øñô ð õ Ô(¨GÒ3ˆÝ% dÑ+Ô+ˆðI	4¥¥kÔ!2ð I	4Å$ÅsÍCÀxÄ.ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4ð I	4õV )¨¨vÑ6Ô6ˆØCGÕÔ6°xÑ@Øˆr,   c                 óB   — t          d¦  «        t          dd¬¦  «        gS )zACodegen a `raise None` to make analysis work for unreachable codeNÚRAISE_VARARGSr	   r$   )r   r   )rU   s    r*   rä   z(ContinueExecutionCache.unreachable_codesÂ  s)   € õ ˜dÑ#Ô#Ý˜°AÐ6Ñ6Ô6ð
ð 	
r,   c                 óê  ‡‡‡‡	‡
— t           j        |         Š	dŠ
dt          t                   dt          t
          t          f         fˆ	ˆ
ˆfd„}t          ||¦  «         t          j	        dk    rn‰	j
        sLi xŠ‰	_
        dt          t                   dt          t
          t          f         fˆˆ	ˆfd„}t          ||¦  «         t          ˆ	fd„‰D ¦   «         ¦  «        Št          j        ‰	j        |‰
‰g|¢R Ž S )a>  
        This handles the case of generating a resume into code generated
        to resume something else.  We want to always generate starting
        from the original code object so that if control flow paths
        converge we only generated 1 resume function (rather than 2^n
        resume functions).
        NrŠ   rU   c                 óÖ   •‡— ˆfd„| D ¦   «         \  Šˆfd„t          t          | ¦  «        t          ‰j        ¦  «        ¦  «        D ¦   «         \  }‰j        |j        k    sJ ‚|j        Šd S )Nc              3   ó2   •K  — | ]}|j         ‰k    ¯|V — Œd S rG   rÌ   rÍ   s     €r*   r:   ziContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offset.<locals>.<genexpr>ß  s/   øè è € ÐGÐG˜q°A´HÀÒ4FÐ4F˜Ð4FÐ4FÐ4FÐ4FÐGÐGr,   c              3   ó*   •K  — | ]\  }}|‰u ¯	|V — Œd S rG   r[   )r7   Úi1Úi2rå   s      €r*   r:   ziContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offset.<locals>.<genexpr>á  s9   øè è € ð ð á�B˜Ø˜�<�<ð à�<�<�<ðð r,   )Úziprá   rŠ   Úopcoderª   )rŠ   rU   Ú
new_targetrå   rø   Ú
new_offsetrª   s      @€€€r*   Úfind_new_offsetzVContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offsetÛ  s�   øø€ ð HÐGÐGÐG LÐGÑGÔG‰IˆVðð ð ð å!¥(¨<Ñ"8Ô"8½(À4ÔCTÑ:UÔ:UÑVÔVðñ ô ‰MˆZð
 ”= JÔ$5Ò5Ð5Ð5Ð5Ø#Ô*ˆJˆJˆJr,   r   c                 óŒ  •‡
— g }| D ]I}t          |¦  «        t          ‰j        ¦  «        k    r n!|j        dk    r|                     |¦  «         ŒJt	          |‰j        ¦  «        D ]"\  }}|‰t          t          |j        ¦  «        <   Œ#|r t          t          |d         j        ¦  «        ndŠ
t          ˆ
fd„‰D ¦   «         ¦  «        }t          | |d„ ¦  «        }t          t	          t          | ¦  «        t          ‰j        ¦  «        ¦  «        |d„ ¦  «        }t	          ||¦  «        D ]\  }}	|d         j        ‰|	j        <   Œd S )Nr{   éÿÿÿÿc              3   ó(   •K  — | ]}|‰k    ¯|V — Œd S rG   r[   )r7   ÚnÚold_start_offsets     €r*   r:   zmContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<genexpr>  s7   øè è € ð .ð .Ø¸aÐBRÒ>RÐ>R˜Ð>RÐ>RÐ>RÐ>Rð.ð .r,   c                 ó   — | j         |k    S rG   rÌ   )r9   Úos     r*   ú<lambda>zlContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<lambda>  s   € ÈÌÐWXÒHX€ r,   c                 ó   — | d         |u S )Nr   r[   )Úv1Úv2s     r*   r  zlContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<lambda>  s   €  r¨!¤u° {€ r,   r	   )rn   r‹   r5   r(   r  r   r„   rª   rÚ   r›   rá   rŠ   )rŠ   rU   Úprefix_blocksr9   r  Úold_inst_offsetsÚtargetsÚnew_targetsÚnewÚoldr  rŒ   rø   r«   s             @€€€r*   Úremap_block_offsetszZContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsetsó  s¬  øø€ ð 8:�MØ ,ð 7ð 7˜Ý˜}Ñ-Ô-µØ ÔAñ2ô 2ò ð ð "˜EØœ;¨/Ò9Ð9Ø)×0Ò0°Ñ6Ô6Ð6øõ $'Ø% tÔ'Lñ$ô $ð Nð N™˜˜að MNÐ1µ$µs¸D¼KÑ2HÔ2HÑIÐIð @MÐT��S -°Ô"3Ô":Ñ;Ô;Ð;ÐRTð %õ (.ð .ð .ð .ð .Ø#:ð.ñ .ô .ñ (ô (Ð$õ +Ø$Ð&6Ð8XÐ8Xñô �Gõ #/Ý�H \Ñ2Ô2µH¸TÔ=NÑ4OÔ4OÑPÔPØØ2Ð2ñ#ô #�Kõ
 %(¨°WÑ$=Ô$=ð Nð N™˜˜SØ@CÀAÄÄÐ1°#´*Ñ=Ð=ðNð Nr,   c              3   ó2   •K  — | ]}‰j         |         V — Œd S rG   )rŒ   )r7   r  rø   s     €r*   r:   zPContinueExecutionCache.generate_based_on_original_code_object.<locals>.<genexpr>   s<   øè è € ð ,ð ,Ø67�Ô.¨qÔ1ð,ð ,ð ,ð ,ð ,ð ,r,   )r¡   rÿ   r   r   r   r  r   r   r&   r'   rŒ   r¤   r©   rˆ   )r¦   rˆ   r§   rª   r«   r»   r  r!  rŒ   rø   r  s      ``   @@@r*   r   z=ContinueExecutionCache.generate_based_on_original_code_objectÊ  sl  øøøøø€ õ (>Ô'UØô(
ˆð ˆ
ð	+Ý�{Ô+ð	+Ý;?ÅÅSÀ¼>ð	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+õ 	˜d OÑ4Ô4Ð4åÔ˜wÒ&Ð&ð
 Ô1ð -AØMOÐOÐ)¨DÔ,Jð(NÝ"&¥{Ô"3ð(NÝCGÍÍSÈÄ>ð(Nð (Nð (Nð (Nð (Nð (Nð (Nð (NõT & dÐ,?Ñ@Ô@Ð@õ ',ð ,ð ,ð ,ð ,Ø;Rð,ñ ,ô ,ñ 'ô 'Ð#õ &Ô,ØŒI�v˜zÐ+Bð
ØEIð
ð 
ð 
ð 	
r,   N)r�   r‚   rƒ   r   r£   rÿ   Úclassmethodr©   r„   r   r  rN   r   r�   rŽ   r¥   Ústaticmethodr   r   rä   r   r[   r,   r*   r¡   r¡   ÿ   s£  € € € € € Ø"Ð"Ñ$Ô$€EØ4Ð4Ñ6Ô6Ðàð$ð $ñ „[ð$ð ðsð ð	sð
 "' s¨C x¤ðsð ðsð ˜˜S˜”/ðsð ˜S #˜X”ðsð ˜ cÐ)Ô*ðsð ˜e C¨¨s¬ OÔ4°cÐ9Ô:ðsð !  s¨E°#¬J Ô!7¸Ð!<Ô=ðsð ˜#˜s˜(”Oðsð 
Œðsð sð sñ „[ðsðj ð
¨4°Ô+<ð 
ð 
ð 
ñ „\ð
ð ðZ
Ø#&ðZ
ØAFÀsÈCÀxÄðZ
ð Z
ð Z
ñ „[ðZ
ð Z
ð Z
r,   r¡   rG   )+r×   r�   r&   r�   Útypingr   r   r   r   r   r   Úbytecode_transformationr
   r   r   r   r   r   r   r   r   Úutilsr   rþ   ÚCO_NEWLOCALSrÝ   rÞ   Ú	CO_NESTEDrú   Ú	CO_NOFREErû   rü   rý   rÛ   r+   rE   rK   Ú	dataclassrN   r‡   r›   rŸ   r¡   r[   r,   r*   ú<module>r,     s3  ðà €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð *Ð )Ð )Ð )Ð )Ð )ð €Ø€Ø€
Ø€Ø€	Ø€Ø€	Ø€ØÐ ØÐ ð !9Ð ð<ð <ð <ðJð Jð Jð Jð<
ð 
ð 
ð €Ô˜dÐ#Ñ#Ô#ðw;ð w;ð w;ð w;ð w;ñ w;ô w;ñ $Ô#ðw;ðt Ôð?ð ?ð ?ð ?ð ?ñ ?ô ?ñ Ôð?ðð ð ð&ð ð ðf
ð f
ð f
ð f
ð f
ñ f
ô f
ð f
ðR	Hð Hr,   