Ë
    P/æjn  ã                   óD  — 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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# ejH                  d¬«       G d„ d«      «       Z%ejH                   G d„ d«      «       Z&d„ Z'd„ Z( G d„ d«      Z)y)é    N)ÚAnyÚcastÚDictÚListÚOptionalÚTupleé   )
Úcreate_call_functionÚcreate_call_methodÚcreate_dup_topÚcreate_instructionÚcreate_jump_absoluteÚcreate_load_methodÚInstructionÚInstructionExnTabEntryÚtransform_code_objectÚ	unique_id)ÚExactWeakKeyDictionaryé   é   é   é   é    é@   é€   é   i   Útorch_dynamo_resume_inc                 óÀ   — t         j                  dk\  rK| j                  t        d«      «       t         j                  dk  r| j                  t        dd¬«      «       y y y )N©é   é   Ú	PUSH_NULL)r    é   ÚSWAPr   ©Úarg)ÚsysÚversion_infoÚappendr   )Úinstss    úa/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_dynamo/resume_execution.pyÚ_initial_push_nullr,   '   sN   € Ü
×Ñ˜7Ò"Ø�‰Ô'¨Ó4Ô5Ü×Ñ˜gÒ%Ø�L‰LÔ+¨F¸Ô:Õ;ð &ð #ó    T)Úfrozenc                   óN   — e Zd ZU eed<   dZeeedf      ed<   de	e
   fd„Zd„ Zy)ÚReenterWithÚstack_indexN.Útarget_valuesÚcleanupc                 óJ  ‡— g }| j                   r$| j                   D �cg c]  }t        d|¬«      ‘Œ }}t        d| j                  › �«      Š‰|d   vr|dxx   ‰fz  cc<   dD ]  }||d   vsŒ|dxx   |fz  cc<   Œ t        t        j
                  dk  rdnd	«      }t        d«      }g }t        |«       |j                  g |¢t        t        |«      d
«      ¢t        d‰¬«      ‘t        d‰¬«      ‘t        d«      ‘t        d«      ¢t        d«      ‘«       t        j
                  dk  r|j                  t        d|¬«      «       nHt        d«      }	t        d«      }
t        |	|
|| j                  dz   d
«      |	_        |j                  |	«       ˆfd„}t        j
                  dk  r*t        d«      t        d«      |g |«       ¢t        d«      ‘}nÃt        j
                  dk  r7t        d«      g |«       ¢t        d|¬«      ‘|‘ |«       ¢t        d«      ‘|‘}nyt        dd¬«      }t        dd¬«      }t        |||| j                  dz   d«      |_        
g |«       ¢t        d|¬«      ‘|‘ |«       ¢|‘|‘t        d«      ‘t        dd¬«      ‘|‘}||z   |d d  |S c c}w )!z™
        Codegen based off of:
        load args
        enter context
        try:
            (rest)
        finally:
            exit context
        Ú
LOAD_CONST©ÚargvalÚ___context_manager_Úco_varnames)Ú	__enter__Ú__exit__Úco_namesr   ÚNOPÚPUSH_EXC_INFOFÚ
STORE_FASTÚ	LOAD_FASTr:   r   ÚPOP_TOPÚSETUP_FINALLY©Útargetr	   c                  óœ   •— t        d‰ ¬«      t        d«      t        dd ¬«      t        «       t        «       gt        d«      ¢t        d«      ‘S )Nr@   r6   r;   r5   r    rA   )r   r   r   r   )Úctx_names   €r+   Úcreate_resetz,ReenterWith.try_except.<locals>.create_resetr   sS   ø€ ä" ;°xÔ@Ü" :Ó.Ü" <¸Ô=ÜÓ ÜÓ ðô $ AÓ&ðô # 9Ó-ðð r-   ©r    é	   Ú	POP_BLOCKÚBEGIN_FINALLYÚEND_FINALLYÚJUMP_FORWARDÚRERAISEr%   ÚCOPYr    r   TÚ
POP_EXCEPTN)r2   r   r   r1   r'   r(   r,   Úextendr
   Úlenr   r   r)   r   Úexn_tab_entry)ÚselfÚcode_optionsr3   Ú	load_argsÚvalÚnameÚexcept_jump_targetÚcleanup_complete_jump_targetÚsetup_finallyÚexn_tab_beginÚexn_tab_endrG   ÚepilogueÚfinally_exn_tab_endÚfinally_exn_tab_targetrF   s                  @r+   Ú
try_exceptzReenterWith.try_except5   se  ø€ ð ˆ	Ø×Òð  ×-Ñ-öàô # <¸Ö<ðˆIð ô Ð2°4×3CÑ3CÐ2DÐEÓFˆØ˜<¨Ñ6Ñ6Ø˜Ó'¨H¨;Ñ6Ó'Ø-ò 	4ˆDØ˜<¨
Ñ3Ò3Ø˜ZÓ(¨T¨GÑ3Ô(ð	4ô 0Ü×%Ñ%¨Ò/‰E°_ó
Ðô (:¸%Ó'@Ð$à+-ˆÜ˜=Ô)ð 	×ÑðØðä%¤c¨)£n°eÓ<ðô # <¸ÔAðô # ;°xÔ@ð	ô
 # ;Ó/ðô $ AÓ&ðô # 9Ó-ðô
	
ô ×Ñ˜gÒ%Ø× Ñ Ü" ?Ð;MÔNõô /¨uÓ5ˆMÜ,¨UÓ3ˆKÜ*@ØØØ"Ø× Ñ  1Ñ$Øó+ˆMÔ'ð × Ñ  Ô/ô		ô ×Ñ˜fÒ$ä" ;Ó/Ü" ?Ó3Ø"ðñ “ð	ô
 # =Ó1ð‰Hô ×Ñ Ò'ä" ;Ó/ðá“ðô # >Ð:VÔWðð #ð	ñ
 “ðô # 9Ó-ðð -ð‰Hô #5°YÀAÔ"FÐÜ%7¸ÀAÔ%FÐ"Ü/EØ"Ø#Ø&Ø× Ñ  1Ñ$Øó0ÐÔ,ð ðá“ðô # >Ð:VÔWðð #ð	ñ
 “ðð $ðð 'ðô # <Ó0ðô # 9°!Ô4ðð -ðˆHð  Ñ'ˆ‘ˆ
ØÐùòKs   žJ c                 óÌ  — g }| j                   r$| j                   D �cg c]  }t        d|¬«      ‘Œ }}t        j                  dk  rrt        d«      }t        d«      }t        d«      ||t        d«      t        d«      g|z   |d	d	 g |¢t        d
t	        |«      ¬«      ‘t        d|¬«      ‘t        d«      ‘d	fS t        j                  dk  rêt        d«      }t        d«      }t        d«      }	t        d«      t        dd	¬«      t        d«      t        d«      t        d
d¬«      t        d«      t        d|	¬«      |t        d|¬«      t        d«      |t        d«      t        d«      t        d«      t        d«      |	g|z   |d	d	 g |¢t        d
t	        |«      ¬«      ‘t        d|¬«      ‘t        d«      ‘d	fS t        d«      }t        d«      }	d„ }
t        d«      }t        d«      }t        d«      }t        dd¬«      }t        dd¬«      }t        |||| j                  dz   d«      |_        t        |||| j                  dz   d«      |_        t        |||| j                  dz   d«      |_        | |
«        |
«        |
«       gt        dd«      ¢t        d«      ‘t        d|	¬«      ‘|‘t        d«      ‘t        t        j                  dk  rd nd|¬«      ‘|‘|‘t        d«      ‘t        dd¬«      ‘|‘t        d«      ‘t        d«      ‘t        d«      ‘|	‘|z   |d	d	 g }t        |«       |j                  g |¢t        t	        |«      d«      ¢t        d!«      ‘|‘«       ||fS c c}w )"zR
        Codegen based off of:
        with ctx(args):
            (rest)
        r5   r6   rH   ÚWITH_CLEANUP_STARTrK   rJ   ÚWITH_CLEANUP_FINISHrL   NÚCALL_FUNCTIONr%   Ú
SETUP_WITHrC   rA   r   ÚWITH_EXCEPT_STARTr=   ÚDUP_TOPr    rM   ÚPOP_JUMP_IF_TRUErN   rP   c                  ó   — t        dd ¬«      S )Nr5   r6   ©r   © r-   r+   Úcreate_load_nonez.ReenterWith.__call__.<locals>.create_load_noneì   s   € Ü)¨,¸tÔDÐDr-   r>   r   rO   r	   TF©r    é   ÚPOP_JUMP_FORWARD_IF_TRUEÚBEFORE_WITH)r2   r   r'   r(   rR   r   r1   rS   r
   r,   rQ   )rT   rU   r3   rV   rW   Úwith_cleanup_startÚbegin_finallyÚwith_except_startÚpop_top_after_with_except_startrZ   rm   Úexn_tab_1_beginÚexn_tab_1_endÚexn_tab_1_targetÚexn_tab_2_endÚexn_tab_2_targetÚrets                    r+   Ú__call__zReenterWith.__call__©   sT  € ð ˆ	Ø×Òð  ×-Ñ-öàô # <¸Ö<ðˆIð ô ×Ñ˜fÒ$Ü!3Ð4HÓ!IÐÜ.¨Ó?ˆMä" ;Ó/ØØ"Ü"Ð#8Ó9Ü" =Ó1ðð ñˆG‘AˆJðØðä" ?¼¸I»ÔGðô # <Ð8JÔKðô # 9Ó-ð	ð
 ðð ô ×Ñ Ò'Ü 2Ð3FÓ GÐÜ.@ÀÓ.KÐ+ä+=¸eÓ+DÐ(ô # ;Ó/Ü" <¸Ô=Ü" 9Ó-Ü" 9Ó-Ü" ?¸Ô:Ü" 9Ó-Ü" >Ð:VÔWØ!Ü"Ø&Ð/Nôô # 9Ó-Ø/Ü" 9Ó-Ü" 9Ó-Ü" <Ó0Ü" 9Ó-Ø,ð%ð& ñ'ˆG‘AˆJð*Øðä" ?¼¸I»ÔGðô # <Ð8IÔJðô # 9Ó-ð	ð
 ðð ô /AÀÓ.KÐ+Ü+=¸eÓ+DÐ(òEô 1°Ó;ˆOÜ.¨uÓ5ˆMÜ1°/ÓBÐÜ.¨y¸aÔ@ˆMÜ1°&¸aÔ@Ðä,BØØØ Ø× Ñ  1Ñ$Øó-ˆOÔ)ô .DØ ØØ Ø× Ñ  1Ñ$Øó.ÐÔ*ô =SØ/Ø/Ø Ø× Ñ  1Ñ$Øó=Ð+Ô9ð Ù Ó"Ù Ó"Ù Ó"ð	ô
 & a¨Ó/ðô # 9Ó-ðô # >Ð:VÔWðð !ðô #Ð#6Ó7ðô #ä×'Ñ'¨'Ò1ñ /à+Ø:ô	ðð  ð!ð" !ð#ô$ # <Ó0ð%ô& # 9°!Ô4ð'ð( 0ð)ô* # <Ó0ð+ô, # 9Ó-ð-ô. # 9Ó-ð/ð0 -ð1ð2 ñ3ˆG‘AˆJð6 &(ˆCÜ˜sÔ#Ø�J‰JðØðä)¬#¨i«.¸%Ó@ðô ' }Ó5ðð $ð	ôð Ð(Ð(Ð(ùò}s   �M!)Ú__name__Ú
__module__Ú__qualname__ÚintÚ__annotations__r2   r   r   r   r   r   ra   r|   rl   r-   r+   r0   r0   .   s9   … àÓØ/3€M�8˜E # s (™OÑ,Ó3ðr°°[Ñ0Aó róhG)r-   r0   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<   y)Ú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   rl   r-   r+   rƒ   rƒ   3  sf   … à
�.‰.ÓØ&7 k×&7Ñ&7ÈÔ&M€L�$�{Ñ#ÓMð 3D°+×2CÑ2CØô3Ð$ d¨3¡ió ð ;?Ð˜x¨¨S°#¨X©Ñ7Ô>r-   rƒ   c                 ó´   — t        |«      }g }	 t        |«      }| D ](  } |||«      sŒ|j                  |«       t        |«      }Œ* 	 |S # t        $ r Y |S w xY w)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
    )ÚiterÚnextr)   ÚStopIteration)Úl1Úl2ÚcondÚitÚresÚcurrW   s          r+   Ú_filter_iterr˜   C  sl   € ô 
ˆb‹€BØ€CðÜ�2‹hˆØò 	ˆCÙ�C˜�~Ø—
‘
˜3”Ü˜2“h‘ñ	ð €Jøô ò ØØ€Jðús   �A
 ©A
 Á
	AÁAc                 ó®   — g }t        |«       | D ]  }|j                  t        d|¬«      «       Œ  |j                  t	        t        | «      d«      «       |S )Nr5   r6   F)r,   r)   r   rQ   r
   rR   )Útupr*   rW   s      r+   Ú_load_tuple_and_callr›   V  sQ   € Ø!€EÜ�uÔØò CˆØ�‰Ô'¨¸SÔAÕBðCà	‡L�LÔ%¤c¨#£h°Ó6Ô7Ø€Lr-   c                   ó  — e Zd Z e«       Z e«       Zed„ «       Zedede	e   dede	e
   de	e
   de	e   de	ee	e   f   d	e	e
e	e   f   d
e	e   dej                  fd„«       Zedee   fd„«       Zedede	edf   fd„«       Zy)ÚContinueExecutionCachec                 óà   — || j                   vri | j                   |<   t        |«      }|| j                   |   vr$ | j                  ||g|¢­Ž | j                   |   |<   | j                   |   |   S ©N)ÚcacheÚtupleÚgenerate)Úclsr„   ÚlinenoÚkeys       r+   ÚlookupzContinueExecutionCache.lookupc  sk   € à�s—y‘yÑ Ø ˆC�I‰I�d‰OÜ�C‹jˆØ�c—i‘i ‘oÑ%Ø#/ 3§<¡<°°fÐ#C¸sÒ#CˆC�I‰I�d‰O˜CÑ Ø�y‰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‰ j                  |‰‰‰‰‰‰‰‰	‰
‰«      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                 ól
  •‡— t        j                  | «      ‰"_        t        ‰#«      D �cg c]  }d|› �‘Œ	 c}Š‰j	                  ˆfd„‰D «       «       t        |d   xs g «      t        |d   xs g «      z   }t        t        |«      «      }t        › d|d   › d‰!› �|d<   ‰ rV|d   j                  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        ‰‰D �cg c]	  }|‰vsŒ|‘Œ c}z   |d   D �cg c]	  }|‰vsŒ|‘Œ c}z   «      |d<   |d   t        t        z   z  |d<   t        ˆ%fd„| D «       «      }g }	‰ rC|r%|	j                  t        dt        |«      ¬«      «       |	j                  t        dd¬«      «       g }
‰'D �ci c]  }|j                  |“Œ }}t!        ‰'«      D ��ci c]  \  }}|j                  ‰&|   “Œ }}}| D �ci c]  }|j"                  |“Œ }}i }d}t%        ‰(«      }t        ‰#«      D �]  }|t        ‰$«      k  rD‰$|   ||z   k(  r9|	j                  t        d«      «       |d
z  }|t        ‰$«      k  r‰$|   ||z   k(  rŒ9|	j                  t        dd|› �¬«      «       ||v rf|j'                  |«      } |||
«      \  }}|	j	                  |«       ‰ r6|j'                  |«      }||   }‰"j(                  j                  |«       |||<   ||z   }||v sŒé|	j	                  t+        ||   «      «       �Œ ‰ r#t-        t/        ‰"j(                  «      «      ‰"_        |rJ ‚‰D ]W  \  }}|	j                  t        d|¬«      «       |	j	                  t+        |«      «       |	j                  t        d|¬«      «       ŒY ‰rIt0        j2                  dk\  sJ ‚‰D ]/  }|‰vsJ ‚|	j	                  t        d«      t        d|¬«      g«       Œ1 |	j                  t5        |«      «       | D ]?  }|j"                  |j"                  k(  r n$d |_        t0        j2                  dk\  sŒ9d |_        ŒA |
r1|	j	                  |
«       |	j	                  ‰j;                  |«      «       |rY‰ sJ ‚| D ]P  }|j<                  sŒ|j<                  j>                  |v sŒ)||j<                  j>                     |j<                  _        ŒR |	| z   | d d  y c c}w c c}w c c}w c c}w c c}}w c c}w )NÚ___stackc              3   ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrŸ   rl   )Ú.0ÚvÚargss     €r+   ú	<genexpr>zBContinueExecutionCache.generate.<locals>.update.<locals>.<genexpr>—  s   øè ø€ Ò=˜a¨q¸ª}œÑ=ùs   ƒ	�Úco_cellvarsÚco_freevarsÚ_Úco_nameÚ_at_Úco_qualnameú.r	   )Úmaxsplitr   Úco_firstlinenorl   Úco_argcountr   Úco_posonlyargcountÚco_kwonlyargcountr9   Úco_flagsc              3   óB   •K  — | ]  }|j                   ‰k(  sŒ|–— Œ y ­wrŸ   ©r§   ©rµ   Úir§   s     €r+   r¸   zBContinueExecutionCache.generate.<locals>.update.<locals>.<genexpr>·  s   øè ø€ ÒH °Q·X±XÀÓ5Gœ!ÑHùó   ƒ˜ÚCOPY_FREE_VARSr%   ÚRESUMEr"   r@   r6   r?   rn   r   ) ÚcopyÚdeepcopyr†   ÚrangerQ   r¡   ÚsortedÚTORCH_DYNAMO_RESUME_IN_PREFIXÚrsplitrR   Ú
CO_VARARGSÚCO_VARKEYWORDSr�   r)   r   r1   Ú	enumerater§   ÚdictÚpopr‡   r›   r�   Úreversedr'   r(   r   Ústarts_lineÚ	positionsÚunreachable_codesrS   rD   ))r†   rU   rÉ   ÚfreevarsÚqualified_pathÚmodule_namer¼   r¶   rD   Úprefixr3   ÚfnÚhooksÚhook_target_offsetsÚinstÚoffset_to_instÚold_hook_target_remapÚnull_idxes_iÚstack_ctx_vars_dÚhookÚ
hook_instsÚ
exn_targetÚhook_target_offsetÚold_hook_targetÚreal_irX   Úvalsr·   rª   r®   r«   r£   Úis_py311_plusr¤   Úmetar©   r¯   r§   r¨   r¬   r­   s)                              @€€€€€€€€€€€€€r+   Úupdatez/ContinueExecutionCache.generate.<locals>.update“  sÄ  ù€ Ü $§¡¨lÓ ;ˆDÔä,1°&«MÖ: q�h˜q˜c’NÒ:ˆDØ�K‰KÓ= 8Ô=Ô=Ü˜\¨-Ñ8Ò>¸BÓ?Ä%Ø˜]Ñ+Ò1¨róCñ ˆHô œV HÓ-Ó.ˆHô 1Ð1°°<À	Ñ3JÐ2KÈ4ÐPVÈxÐXð Øññ Ø!-¨mÑ!<×!CÑ!CÀCÐRSÐ!CÓ!T�Ü�~Ó&¨!Ò+Ø2>¸yÑ2I�L Ò/ä˜~Ó.°!Ò3Ð3Ð3Ø+9Ñ(�K ð '˜- qÔ)FÐ(GÀqÈÈ	ÐQUÐV\ÐU]Ð^ð !Ø%ñð .4ˆLÐ)Ñ*Ø*,ˆL˜Ñ'Ø*2ˆL˜Ñ'Ü*-¨d«)ˆL˜Ñ'Ø12ˆLÐ-Ñ.Ø01ˆLÐ,Ñ-Ü*/ØØ+Ö=˜¨q¸ª}’1Ò=ñ>à*¨=Ñ9ÖK˜¸QÀdº]’1ÒKñLó+ˆL˜Ñ'ð
 (4°JÑ'?Üœ^Ñ+ðCñ (ˆL˜Ñ$ô ÓH \ÔHÓHˆFàˆFÙÙØ—M‘MÜ*Ð+;ÄÀXÃÔOôð —‘Ô0°¸qÔAÔBà)+ˆGØ2;Ö<¨B�R—^‘^ RÑ'Ð<ˆEÐ<ô ' yÓ1÷#á�A�rð —‘Ð 7¸Ñ :Ñ:ð#Ðñ #ð =IÖI°D˜dŸk™k¨4Ñ/ÐIˆNÐIà$&Ð!ØˆLÜ# NÓ3ÐÜ˜6“]ó R�à ¤3 z£?Ò2Ø" <Ñ0°A¸Ñ4DÒDà—M‘MÔ"4°[Ó"AÔBØ  AÑ%�Lð	 !¤3 z£?Ò2Ø" <Ñ0°A¸Ñ4DÓDð —‘Ô0°ÀxÐPQÈsÀ^ÔTÔUØ˜‘:Ø Ÿ9™9 Q›<�DÙ-1°,ÀÓ-HÑ*�J 
Ø—M‘M *Ô-Ù$Ø-@×-DÑ-DÀQÓ-GÐ*Ø*8Ð9KÑ*L˜Ø×=Ñ=×DÑDÐEWÔXØAKÐ-¨oÑ>Ø˜\Ñ)�ØÐ-Ò-ð —M‘MÔ"6Ð7GÈÑ7OÓ"PÖQð+Rñ. ô 9=Ü˜T×BÑBÓCó9�Ô5ñ Ð�9ð 0ò M‘
��dØ—‘Ô0°ÀTÔJÔKØ—‘Ô2°4Ó8Ô9Ø—‘Ô0°ÀdÔKÕLðMñ Ü×'Ñ'¨7Ò2Ð2Ð2Ø&ò �AØ D™=Ð(˜=Ø—M‘Mä.¨{Ó;Ü.¨|ÀAÔFðõðð �M‰MÔ.¨vÓ6Ô7ð
 %ò *�Ø—;‘; &§-¡-Ò/ÙØ#'�Ô Ü×#Ñ# wÓ.Ø%)�D•Nð*ñ Ø—‘˜gÔ&Ø—‘˜c×3Ñ3°LÓAÔBñ %Ù$Ð$�}Ø(ò �Dà×*Ó*Ø ×.Ñ.×5Ñ5Ð9NÒNà4IØ ×.Ñ.×5Ñ5ñ5˜×*Ñ*Õ1ðð % |Ñ3ˆL™‰OùòM ;ùò6 >ùÚKùò  =ùó#ùò Js/   ªTÄ)	T
Ä3T
Å	T!
ÅT!
ÇT&Ç8T+ÈT1)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.generatel  s  ÿü€ ð Ð!Ð!Ð!à�M‰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ôV )¨¨vÓ6ˆØCGÔ×6Ñ6°xÑ@Øˆr-   c                 ó6   — t        dd¬«      t        dd¬«      gS )zACodegen a `raise None` to make analysis work for unreachable coder5   Nr6   ÚRAISE_VARARGSr	   r%   rk   )rU   s    r+   rÛ   z(ContinueExecutionCache.unreachable_codes"  s"   € ô ˜|°DÔ9Ü˜°AÔ6ð
ð 	
r-   .c                 óÄ  ‡‡‡‡	‡
— t         j                  |   Š	dŠ
dt        t           dt        t
        t        f   fˆ	ˆ
ˆfd„}t        ||«       t        j                  dk\  r]‰	j                  s=i xŠ‰	_
        dt        t           dt        t
        t        f   fˆˆ	ˆfd„}t        ||«       t        ˆ	fd„‰D «       «      Št        j                  ‰	j                  |‰
‰g|¢­Ž 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                  Šy )Nc              3   óB   •K  — | ]  }|j                   ‰k(  sŒ|–— Œ y ­wrŸ   rÇ   rÈ   s     €r+   r¸   ziContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offset.<locals>.<genexpr>?  s   øè ø€ ÒG˜q°A·H±HÀÓ4FœÑGùrÊ   c              3   ó0   •K  — | ]  \  }}|‰u r|–— Œ y ­wrŸ   rl   )rµ   Úi1Úi2rD   s      €r+   r¸   ziContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offset.<locals>.<genexpr>A  s$   øè ø€ ò á�B˜Ø˜‘<ô ñùs   ƒ)ÚziprØ   r†   Úopcoder§   )r†   rU   Ú
new_targetrD   rð   Ú
new_offsetr§   s      @€€€r+   Úfind_new_offsetzVContinueExecutionCache.generate_based_on_original_code_object.<locals>.find_new_offset;  s_   ù€ ó H LÔG‰IˆVóä!¤(¨<Ó"8¼(À4×CTÑCTÓ:UÓVô‰MˆZð
 —=‘= J×$5Ñ$5Ò5Ð5Ð5Ø#×*Ñ*‰Jr-   r   c                 óf  •‡
— g }| D ]F  }t        |«      t        ‰j                  «      k(  r n#|j                  dk(  sŒ6|j                  |«       ŒH t	        |‰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                  <   Œ# y )Nr>   éÿÿÿÿc              3   ó.   •K  — | ]  }|‰kD  sŒ	|–— Œ y ­wrŸ   rl   )rµ   ÚnÚold_start_offsets     €r+   r¸   zmContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<genexpr>o  s   øè ø€ ò .Ø¸aÐBRÓ>Rœñ.ùs   ƒ
Žc                 ó    — | j                   |k(  S rŸ   rÇ   )rã   Úos     r+   ú<lambda>zlContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<lambda>s  s   € ÈÏÉÐWXÑHX€ r-   c                 ó   — | d   |u S )Nr   rl   )Úv1Úv2s     r+   r  zlContinueExecutionCache.generate_based_on_original_code_object.<locals>.remap_block_offsets.<locals>.<lambda>x  s   €  r¨!¡u° {€ r-   r	   )rR   r‡   Úopnamer)   r  r   r€   r§   rÐ   r˜   rØ   r†   )r†   rU   Úprefix_blocksrã   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_offsetsS  sI  ù€ ð 8:�MØ ,ò 7˜Ü˜}Ó-´Ø ×AÑAó2ò ñ "ØŸ;™;¨/Ó9Ø)×0Ñ0°Õ6ð7ô $'Ø% t×'LÑ'Ló$ò N™˜˜að MNÐ1´$´s¸D¿K¹KÓ2HÒIðNñ @MœœS -°Ñ"3×":Ñ":Ô;ÐRTð %ô (.ó .Ø#:ô.ó (Ð$ô +Ø$Ð&6Ñ8Xó�Gô #/ÜœH \Ó2´H¸T×=NÑ=NÓ4OÓPØÙ2ó#�Kô
 %(¨°WÓ$=ò N™˜˜SØ@CÀAÁÇÁÐ1°#·*±*Ò=ñNr-   c              3   ó<   •K  — | ]  }‰j                   |   –— Œ y ­wrŸ   )rˆ   )rµ   r  rð   s     €r+   r¸   zPContinueExecutionCache.generate_based_on_original_code_object.<locals>.<genexpr>€  s!   øè ø€ ò ,Ø67�×.Ñ.¨qÕ1ñ,ùs   ƒ)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*  sì   ü€ ô (>×'UÑ'UØñ(
ˆð ˆ
ð	+Üœ{Ñ+ð	+Ü;?ÄÄSÀ¹>÷	+ô 	˜d OÔ4ä×Ñ˜wÒ&ð
 ×1Ò1ØMOÐOÐ)¨DÔ,Jð(NÜ"&¤{Ñ"3ð(NÜCGÌÌSÈÁ>÷(NôT & dÐ,?Ô@ô ',ó ,Ø;Rô,ó 'Ð#ô &×,Ñ,Ø�I‰I�v˜zÐ+Bð
ØEIò
ð 	
r-   N)r}   r~   r   r   r    r÷   Úclassmethodr¦   r€   r   rù   r0   r   r‰   rŠ   r¢   Ústaticmethodr   r   rÛ   rø   rl   r-   r+   r�   r�   _  s-  „ Ù"Ó$€EÙ4Ó6Ðàñ$ó ð$ð ðsð ð	sð
 "' s¡ðsð ðsð ˜‘*ðsð ˜S‘zðsð ˜Ñ%ðsð ˜c 5¨¡:˜oÑ.ðsð !  e¨C¡j Ñ1ðsð ˜#‘Jðsð 
�‰òsó ðsðj ð
¨4°Ñ+<ò 
ó ð
ð ðZ
Ø#&ðZ
ØAFÀsÈCÀxÁòZ
ó ñZ
r-   r�   )*rÍ   r‹   r'   r‰   Útypingr   r   r   r   r   r   Úbytecode_transformationr
   r   r   r   r   r   r   r   r   r   Úutilsr   rö   ÚCO_NEWLOCALSrÓ   rÔ   Ú	CO_NESTEDrò   Ú	CO_NOFREEró   rô   rõ   rÑ   r,   Ú	dataclassr0   rƒ   r˜   r›   r�   rl   r-   r+   ú<module>r%     sÔ   ðã Û Û 
Û ß 9× 9÷÷ ÷ õ *ð €Ø€Ø€
Ø€Ø€	Ø€Ø€	Ø€ØÐ ØÐ ð !9Ð ò<ð €×Ñ˜dÔ#÷A)ð A)ó $ðA)ðH ×Ñ÷?ð ?ó ð?òò&÷f
ñ f
ðR	Hr-   