ó
    CC˜jxQ  ã                   ó¦  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
Jr  S SKJrJrJr  S SK Jr  S SKJrJrJr  S SKrS SKrS SKJr  S SKJr  S SKJr  S	S
KJr  S	SKJ r J!r!  S	SK"J#r#  \(       a  S	SK$J%r%  S	SK&J'r'J(r(  \RR                  " \*5      r+S\RX                  S\S\S\-\.\4   4S jr/\ " S S5      5       r0 " S S\Rb                  5      r2 " S S\Rf                  5      r4\ " S S5      5       r5S\.S\64S jr7\ " S S 5      5       r8 S.S!\S"\9\9\S#4   \-\.\4   4   S$\#S%\
\Rt                  Rv                  \<\Rz                     /\!4   S&\>S-  S\84S' jjr?\ " S( S)5      5       r@\ " S* S+5      5       rAS!\R„                  R†                  S,\<\@   S$\#S%\
\Rt                  Rv                  \<\Rz                     /\!4   S\A4
S- jrDg)/é    N)ÚCallableÚSequence)ÚAbstractContextManagerÚ	ExitStackÚnullcontext)Ú	dataclass)ÚAnyÚOptionalÚTYPE_CHECKING)ÚGraphRuntimeEnv)Ú_graph_device_type)Ú
SystemInfoé   )Úconvert_frame)Ú&BundledAOTAutogradSerializableCallableÚSerializableCallable)ÚHooks)ÚGuardManagerWrapper)ÚSerializedCodeÚ
SourceInfoÚ	signatureÚargsÚkwargsÚreturnc                 ó^   • U R                   " U0 UD6nUR                  5         UR                  $ ©N)ÚbindÚapply_defaultsÚ	arguments)r   r   r   Úbound_argumentss       Ú§C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/aot_compile.pyÚbind_localsr"   %   s/   € ð  —n’n dÐ5¨fÑ5€OØ×"Ñ"Ô$Ø×$Ñ$Ð$ó    c                   óð   • \ rS rSr% \R
                  \S'   \S   \S'   \\S'   \	\S'   \
\S'   \R                  \S'   \\S	'   S
\S'   \	\S'   \	\S'   \R                  " \R"                  S9r\\S'   SS jrSrg)ÚCompileArtifactsé-   r   r   Úguard_managerÚguards_stateÚ
backend_idÚcompiled_fnÚoriginal_codeÚruntime_envr   Úsource_infoÚdevice_typeÚbackend_name)Údefault_factoryÚsystem_infoNc                 óz   • [         R                  " 5       nUR                  U R                  U R                  5        g r   )r   ÚcurrentÚcheck_compatibilityr1   r.   )ÚselfÚcurrent_systems     r!   r4   Ú$CompileArtifacts.check_compatibility;   s,   € Ü#×+Ò+Ó-ˆØ×*Ñ*¨4×+;Ñ+;¸T×=MÑ=MÕNr#   © ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚinspectÚ	SignatureÚ__annotations__r
   ÚbytesÚstrr   ÚtypesÚCodeTyper   ÚdataclassesÚfieldr   r3   r1   r4   Ú__static_attributes__r8   r#   r!   r%   r%   -   sn   ‡ à× Ñ Ó ØÐ1Ñ2Ó2ØÓØƒOØ%Ó%Ø—>‘>Ó!Ø Ó ØÓØÓØÓØ)×/Ò/À
×@RÑ@RÑS€K�ÓS÷Or#   r%   c                   ó¾  ^ • \ rS rSrS\\\4   S\R                  SS4U 4S jjr	S\S\
\-  S-  4S jr\S	\S\4S
 j5       r\S\S\S\R                   4S j5       r\S\S\R$                  4S j5       r\SSS\R(                  4S j5       r\S\R(                  S\S\S\\S4   S-  S\\R.                  S4   S-  S\R0                  4S j5       rS\S\4S jrSrU =r$ )ÚAOTCompilePickleré@   Úexternal_dataÚbufr   Nc                 ó²   >• [         TU ]  U5        Xl        UR                  5        VVs0 s H  u  p4[	        U5      U_M     snnU l        0 U l        g s  snnf r   )ÚsuperÚ__init__rK   ÚitemsÚidÚid_mapÚerrors)r5   rK   rL   ÚkeyÚvalueÚ	__class__s        €r!   rO   ÚAOTCompilePickler.__init__A   sS   ø€ Ü‰Ñ˜ÔØ*Ôà-:×-@Ñ-@Ô-Bô'
Ú-B™z˜sŒBˆu‹I�sŠNÑ-Bò'
ˆŒð ˆ�ùó'
s   ªAÚobjc                 óü   • [        U5      U R                  ;   a  U R                  [        U5         $ [        U[        R                  R
                  5      (       a"  XR                  [        U5      '   [        U5      $ g r   )rQ   rR   Ú
isinstanceÚtorchÚnnÚModulerS   )r5   rX   s     r!   Úpersistent_idÚAOTCompilePickler.persistent_idI   sV   € Üˆc‹7�d—k‘kÓ!Ø—;‘;œr #›wÑ'Ð'Ü˜œUŸX™XŸ_™_×-Ñ-Ø#&�K‰Kœ˜3›Ñ Ü�c“7ˆNàr#   Úvalc                 ón   ^• S[         4U4S jjnUR                  c  [        S5      eUR                  S   $ )Nr   c                  ó   >• T $ r   r8   )r`   s   €r!   Ú_Ú+AOTCompilePickler._unpickle_cell.<locals>._T   s   ø€ ØˆJr#   zclosure must not be Noner   )ÚobjectÚ__closure__ÚAssertionError)Úclsr`   rc   s    ` r!   Ú_unpickle_cellÚ AOTCompilePickler._unpickle_cellR   s6   ø€ ð	”6÷ 	ð �=‰=Ñ Ü Ð!;Ó<Ð<Ø�}‰}˜QÑÐr#   ÚfuncÚbasec                 ó.   • [         R                  " X5      $ r   )rC   Ú
MethodType)rh   rk   rl   s      r!   Ú_unpickle_bound_methodÚ(AOTCompilePickler._unpickle_bound_method[   s   € ô ×Ò Ó+Ð+r#   Únamec                 ó.   • [         R                  " U5      $ r   )Ú	importlibÚimport_module)rh   rq   s     r!   Ú_unpickle_moduleÚ"AOTCompilePickler._unpickle_module`   s   € ä×&Ò& tÓ,Ð,r#   Úserialized_coder   c                 ó2   • SSK Jn  UR                  " U5      $ )Nr   ©r   )Útorch._dynamo.packager   Úto_code_object)rh   rw   r   s      r!   Ú_unpickle_codeÚ AOTCompilePickler._unpickle_coded   s   € å8à×,Ò,¨_Ó=Ð=r#   ÚcodeÚmoduleÚqualnameÚargdefs.Úclosurec                 ór   • [         R                  " U5      R                  n[        R                  " XX4U5      $ r   )rs   rt   Ú__dict__rC   ÚFunctionType)rh   r~   r   r€   r�   r‚   Ú	f_globalss          r!   Ú_unpickle_nested_functionÚ+AOTCompilePickler._unpickle_nested_functionj   s/   € ô ×+Ò+¨FÓ3×<Ñ<ˆ	Ü×!Ò! $°8ÀgÓNÐNr#   c                 óÒ  • [        U[        S " S5      R                  S   5      5      (       a"  [        U 5      R                  UR                  44$ [
        R                  " U5      (       a.  SSKJn  [        U 5      R                  UR                  " U5      44$ [
        R                  " U5      (       a"  [        U 5      R                  UR                  44$ [
        R                  " U5      (       ax   UR                  nUR                   n[#        XCR                  5      n[
        R                  " U5      (       a  UR                  nX5La  [        U 5      R$                  X444$  [2        $ [
        R&                  " U5      (       a^  SUR(                  ;   aN  [        U 5      R*                  UR,                  UR.                  UR(                  UR0                  UR                  44$ [2        $ )Nc                 ó   ^ • U 4S j$ )Nc                  ó   >• T $ r   r8   ©Úxs   €r!   Ú<lambda>ÚFAOTCompilePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>x   s   ø€ ±1r#   r8   rŒ   s   `r!   rŽ   Ú4AOTCompilePickler.reducer_override.<locals>.<lambda>x   s   ø€ ­9r#   r   ry   z<locals>)rZ   Útyperf   ri   Úcell_contentsr>   Úiscoderz   r   r|   Úfrom_code_objectÚismoduleru   r:   ÚismethodÚ__func__Ú__self__Úgetattrro   Ú
isfunctionr<   r‡   Ú__code__r;   Ú__defaults__ÚNotImplemented)r5   rX   r   rk   Úmethod_selfÚ
inner_funcs         r!   Úreducer_overrideÚ"AOTCompilePickler.reducer_overridew   s�  € Ü�cœ4Ò!4°aÓ 8× DÑ DÀQÑ GÓH×IÑIÜ˜“:×,Ñ,¨s×/@Ñ/@Ð.BÐBÐBÜ�^Š^˜C× Ñ Ý<ä˜“:×,Ñ,¨~×/NÒ/NÈsÓ/SÐ.UÐUÐUä×Ò˜c×"Ñ"Ü˜“:×.Ñ.°·±°Ð?Ð?Ü×Ò˜c×"Ñ"ðð —<‘<ˆDØŸ,™,ˆKÜ  ¯m©mÓ<ˆJÜ×Ò 
×+Ñ+Ø'×0Ñ0�
ØÒ%Ü˜D“z×8Ñ8¸4Ð:MÐMÐMð &ô Ðô ×Ò ×$Ñ$Ø˜S×-Ñ-Ó-Ü˜D“z×;Ñ;Ø—L‘LØ—N‘NØ×$Ñ$Ø×$Ñ$Ø—O‘Oð>ð ð ô Ðr#   )rS   rK   rR   )r:   r;   r<   r=   ÚdictrB   re   ÚioÚBytesIOrO   Úintr^   Úclassmethodri   r   rC   rn   ro   Ú
ModuleTyperu   rD   r|   ÚtupleÚCellTyper…   r‡   r	   r    rG   Ú__classcell__©rV   s   @r!   rI   rI   @   s  ø† ð d¨3°¨;Ñ&7ð ¸b¿j¹jð ÈT÷ ð ð ¨C°#©I¸Ñ,<ô ð ð  ð  ¨Fó  ó ð ð ð,¨(ð ,¸&ð ,ÀU×EUÑEUó ,ó ð,ð ð- Cð -¨E×,<Ñ,<ó -ó ð-ð ð>Ð-=ð >À%Ç.Á.ó >ó ð>ð
 ð	Oà�n‰nð	Oð ð	Oð ð		Oð
 �v˜s�{Ñ# dÑ*ð	Oð �u—~‘~ sÐ*Ñ+¨dÑ2ð	Oð 
×	Ñ	ó	Oó ð	Oð" Cð "¨C÷ "ò "r#   rI   c                   óh   ^ • \ rS rSrS\\\4   S\R                  S\4U 4S jjr	S\S\4S jr
SrU =r$ )	ÚAOTCompileUnpickleréœ   rK   Úfiler   c                 ó0   >• [         TU ]  U5        Xl        g r   )rN   rO   rK   )r5   rK   r¯   rV   s      €r!   rO   ÚAOTCompileUnpickler.__init__�   s   ø€ Ü‰Ñ˜ÔØ*Õr#   rT   c                 ót   • XR                   ;  a  [        SU SU R                    35      eU R                   U   $ )Nz-Missing required external reference to data: zS. Please load AOT compiled function with `external_data=<external data dictionary>`)rK   ÚRuntimeError)r5   rT   s     r!   Úpersistent_loadÚ#AOTCompileUnpickler.persistent_load¡   sN   € Ø×(Ñ(Ó(ÜØ?À¸uð E=ð ×%Ñ%Ð&ð(óð ð ×!Ñ! #Ñ&Ð&r#   )rK   )r:   r;   r<   r=   r¢   rB   re   r£   r¤   rO   r´   rG   rª   r«   s   @r!   r­   r­   œ   sB   ø† ð+ d¨3°¨;Ñ&7ð +¸r¿z¹zð +Èf÷ +ð' 3ð '¨6÷ 'ò 'r#   r­   c                   ó    • \ rS rSr% \\S'   Srg)ÚAOTCompileSaveResulté¬   Úserialized_datar8   N)r:   r;   r<   r=   rA   r@   rG   r8   r#   r!   r·   r·   ¬   s   ‡ àÖr#   r·   Ú	file_pathÚdatac                 ó„  • [         R                  R                  U 5      =(       d    Sn[        R                  " USSS9 nUR
                  nUR                  U5        UR                  5         [         R                  " UR                  5       5        S S S 5        [         R                  " WU 5        g ! , (       d  f       N&= f)NÚ.FÚwb)ÚdirÚdeleteÚmode)ÚosÚpathÚdirnameÚtempfileÚNamedTemporaryFilerq   ÚwriteÚflushÚfsyncÚfilenoÚreplace)rº   r»   Údir_nameÚ	temp_fileÚ	temp_paths        r!   Úatomic_write_binaryrÏ   ±   s…   € Ü�w‰w�‰˜yÓ)×0¨S€Hä	×	$Ò	$Ø˜U¨ò
à	Ø—N‘Nˆ	Ø�‰˜ÔØ�‰ÔÜ
�Š�×!Ñ!Ó#Ô$÷
ô ‡J‚Jˆy˜)Õ$÷
õ 
ús   ¿AB1Â1
B?c            
       ód  • \ rS rSr% \\S'   Sr\\S'   Sr\	\
\4   S-  \S'   S\S\S	\	\
\4   4S
 jrS\S\S	\4S jrSS jrS\S\S	\4S jrSS jr SS\
S\	\
\4   S-  S	\4S jjr\ SSS S\	\
\4   S-  S	\4S jj5       r\  SS\S\	\
\4   S-  S\	\
\4   S-  S	S 4S jj5       rSS jrSrg)ÚAOTCompiledFunctioné¿   Ú
_artifactsTÚ_guard_check_enabledNÚ_extra_globalsr   r   r   c                 ó  • 0 nU R                   R                  nUR                  (       a¤  UR                  R                  (       a6  [        UR                  5      [        UR                  R                  5      :w  a  [        S5      e[        UR                  R                  UR                  5       VVs0 s H  u  pVXVR                  _M     nnnUR                  [        U R                   R                  /UQ70 UD65        U$ s  snnf )Nz,closure length must match co_freevars length)rÓ   r,   r‚   ÚbytecodeÚco_freevarsÚlenrg   Úzipr’   Úupdater"   r   )r5   r   r   Úf_localsÚenvrq   Úcells          r!   Úprepare_f_localsÚ$AOTCompiledFunction.prepare_f_localsÅ   sÐ   € Ø&(ˆØ�o‰o×)Ñ)ˆØ�;�;Ø—<‘<×+×+¬s°3·;±;Ó/?Ä3Ø—‘×(Ñ(óDó 0ô %Ð%SÓTÐTô #& c§l¡l×&>Ñ&>ÀÇÁÔ"Lôâ"L‘J�Dð ×(Ñ(Ò(Ù"Lð ñ ð 	�‰œ D§O¡O×$=Ñ$=ÐOÀÒOÈÑOÔPØˆùós   Â3Dc                 ó´   • U R                   " U0 UD6nU R                  R                  c  [        S5      eU R                  R                  R	                  U5      $ )Núguard_manager must not be None)rß   rÓ   r'   rg   Úcheck)r5   r   r   rÜ   s       r!   Úguard_checkÚAOTCompiledFunction.guard_checkÔ   sN   € Ø×(Ò(¨$Ð9°&Ñ9ˆØ�?‰?×(Ñ(Ñ0Ü Ð!AÓBÐBØ�‰×,Ñ,×2Ñ2°8Ó<Ð<r#   c                 óê  • SSK JnJn  U R                  R	                  5         U R                  R
                  R                  U R                  R                  U R                  R                  U R                  S9U l
        U R                  R                  c^  U" U R                  R                  5      nU" UU R                  R                  U R                  R                  5      U R                  l        g g )Nr   )Úload_guard_managerÚload_guards_state)Úextra_globals)Úpackagerç   rè   rÓ   r4   r,   Úforward_callabler)   r*   rÕ   Úfnr'   r(   r+   Ú__globals__)r5   rç   rè   r(   s       r!   Ú__post_init__Ú!AOTCompiledFunction.__post_init__Ú   s²   € ßBà�‰×+Ñ+Ô-à—/‘/×-Ñ-×>Ñ>Ø�O‰O×&Ñ&Ø�O‰O×'Ñ'Ø×-Ñ-ð ?ð 
ˆŒð �?‰?×(Ñ(Ñ0Ù,¨T¯_©_×-IÑ-IÓJˆLÙ,>ØØ—‘×-Ñ-Ø—‘×#Ñ#ó-ˆD�O‰OÕ)ð 1r#   c                 óV  • U R                   R                  c  [        S5      eU R                  (       ae  U R                  " U0 UD6(       dN  U R
                  " U0 UD6n[        U R                   R                  R                  U5      5      n[        SU 35      eU R                  " U0 UD6$ )Nrâ   z#GuardManager check failed, reason: )
rÓ   r'   rg   rÔ   rä   rß   rB   Úcheck_verboser³   rì   )r5   r   r   rÜ   Úreasons        r!   Ú__call__ÚAOTCompiledFunction.__call__í   s”   € Ø�?‰?×(Ñ(Ñ0Ü Ð!AÓBÐBØ×$×$¨T×-=Ò-=¸tÐ-NÀv×-NØ×,Ò,¨dÐ=°fÑ=ˆHÜ˜Ÿ™×6Ñ6×DÑDÀXÓNÓOˆFÜÐ!DÀVÀHÐMÓNÐNØ�wŠw˜Ð' Ñ'Ð'r#   c                 ó.   • U R                   R                  $ r   )rÓ   r-   ©r5   s    r!   r-   ÚAOTCompiledFunction.source_infoö   s   € Ø�‰×*Ñ*Ð*r#   rÃ   rK   c                 ód   • [        U 5      R                  X5      n[        XR                  5        U$ r   )r‘   Ú	serializerÏ   r¹   )r5   rÃ   rK   Úresults       r!   Úsave_compiled_functionÚ*AOTCompiledFunction.save_compiled_functionù   s+   € ô �d“×%Ñ% dÓ:ˆÜ˜D×"8Ñ"8Ô9Øˆr#   rì   c                 ó”  • SSK Jn  UR                  R                  R	                  5       nS US'   [
        R                  " US   UR                  " US   R                  5      S9US'   US   n[        U5      R                  [        U5      R                  U5      4US'   UR                  " US   5      US'   [        R                  " 5       n[        U=(       d    0 U5      nUR                  U5        UR                   (       a0  [#        S[%        UR                   R'                  5       5       S	35      e[)        UR+                  5       S
9$ )Nr   ry   r'   r,   ©r×   r*   r+   z+Failed to serialize the following objects: zI
Please mark these as external data by using `external_data={'key': ...}`)r¹   )rz   r   rÓ   r„   ÚcopyrE   rË   r”   r×   r‘   Údeserialize_compile_artifactsÚserialize_compile_artifactsr£   r¤   rI   ÚdumprS   r³   ÚlistÚvaluesr·   Úgetvalue)rh   rì   rK   r   Ústater*   rL   Úpicklers           r!   rù   ÚAOTCompiledFunction.serialize   s*  € õ 	9à—‘×&Ñ&×+Ñ+Ó-ˆØ!%ˆˆoÑÜ*×2Ò2Ø�-Ñ Ø#×4Ò4°U¸=Ñ5I×5RÑ5RÓSñ 
ˆˆmÑð ˜MÑ*ˆä�Ó×;Ñ;Ü�Ó×9Ñ9¸+ÓFð 
ˆˆmÑð "0×!@Ò!@ÀÀÑAWÓ!XˆˆoÑÜ�jŠj‹lˆÜ# M×$7°R¸Ó=ˆØ�‰�UÔØ�>�>ÜØ=¼dÀ7Ç>Á>×CXÑCXÓCZÓ>[Ð=\ð ][ð [óð ô $°C·L±L³NÑCÐCr#   r»   r†   Úexternal_closure_datac                 ó.  • SSK Jn  [        R                  " U5      nUR	                  S5        [        U=(       d    0 U5      nUR                  5       nUR                  5         [        R                  " US   UR                  " US   R                  5      S9US'   US   u  p‰[        R                  R                  R                  SS9   U" U	5      US'   S S S 5        UR                  " US   5      US'   [!        S
0 UD6n
U " X¢S	9$ ! , (       d  f       N7= f)Nr   ry   r,   rþ   r*   T)Úenable_autograd_for_aotr+   )rÕ   r8   )rz   r   r£   r¤   Úseekr­   ÚloadÚcloserE   rË   r{   r×   r[   Ú	_inductorÚconfigÚpatchr%   )rh   r»   r†   r	  r   ÚfÚ	unpicklerr  ÚdeserializerÚcompiled_fn_stateÚ	artifactss              r!   ÚdeserializeÚAOTCompiledFunction.deserialize  sù   € õ 	9ä�JŠJ�tÓˆØ	�‰ˆqŒ	Ü'Ð(=×(CÀÀQÓGˆ	Ø—‘Ó ˆØ	�‰Œ	Ü*×2Ò2Ø�-Ñ Ø#×2Ò2°5¸Ñ3G×3PÑ3PÓQñ 
ˆˆmÑð +0°Ñ*>Ñ'ˆÜ�_‰_×#Ñ#×)Ñ)À$Ð)ÒGÙ#/Ð0AÓ#BˆE�-Ñ ÷ Hà!/×!>Ò!>¸uÀ_Ñ?UÓ!VˆˆoÑä$Ñ- uÑ-ˆ	Ù�9Ñ7Ð7÷ HÕGús   Ã	DÄ
Dc                 ó   • SU l         g )NF)rÔ   rö   s    r!   Údisable_guard_checkÚ'AOTCompiledFunction.disable_guard_check6  s
   € Ø$)ˆÕ!r#   )rÔ   rì   r9   )r   r   r   )NN)r:   r;   r<   r=   r%   r@   rÔ   ÚboolrÕ   r¢   rB   re   rß   r	   rä   rî   ró   r-   r·   rû   r¦   rù   rA   r  r  rG   r8   r#   r!   rÑ   rÑ   ¿   s`  ‡ à Ó Ø!%Ð˜$Ó%Ø/3€N�D˜˜f˜Ñ%¨Ñ,Ó3ð fð ¸ð À4ÈÈVÈÑCTô ð= ð =°ð =¸ô =ôð&(˜cð (¨Sð (°Sô (ô+ð AEñØðØ(,¨S°#¨X©¸Ñ(=ðà	õð àOSñDØ&ðDØ7;¸CÀ¸H±~ÈÑ7LðDà	ôDó ðDð6 ð /3Ø7;ñ	8àð8ð ˜˜V˜Ñ$ tÑ+ð8ð  $ C¨ H™~°Ñ4ð	8ð
 
ô8ó ð8÷2*r#   rÑ   ÚmodelÚexample_inputs.ÚhooksÚbackendÚdynamicc                 ó
  ^• SSK Jm  SSKJn  SSKJnJn  SSKJn  SSK	J
n	  Uu  p«[        5       nUb  SSKJn  U" U5      nU" 5          U" S5         [        R                  R                   R#                  S	S
9   U   U   [$        R&                  " X
U5      nUR(                  nUR*                  c  [-        S5      eUR.                  (       d+  SSKJn  S[4        U   S[4        [6           4U4S jjnUUl        [$        R8                  " U 5      u  nnUR:                  nUc  [-        S5      eUR<                  UR>                  l         [C        UR>                  RD                  5      nURF                  RH                  UR*                  RH                  La  [-        S5      eU	" URF                  5      nURJ                  Ul%        [        RL                  RO                  U5         [        R                  R                   R#                  S	S	S	S	S	S.5         U" UR>                  URP                  5      n[S        U[        RT                  5      (       dv  [W        US5      (       aG  [S        URX                  [        RZ                  R\                  R^                  R`                  5      (       d  [W        US5      (       a  URb                  b  [e        U5      nS S S 5        S S S 5        [S        W[f        5      (       d?  [W        US5      (       a  URX                  nOUn[i        S[k        U5       S3SU S3-   5      e[m        5       nURn                  (       a  URq                  URs                  5       5        U   URu                  URv                  US	S	S9nS S S 5        WRx                  c  [-        S5      eU" [{        5       S9nUR|                   H  nUR                  U5        M     [�        [$        R‚                  " U5      UR„                  URx                  UR<                  UURv                  UR‡                  5       UU[‰        USS5      S9
n[‹        UURŒ                  S9nS S S 5        S S S 5        S S S 5        S S S 5        S S S 5        W$ ! , (       d  f       GN»= f! , (       d  f       GNÅ= f! , (       d  f       GN"= f! , (       d  f       Nf= f! , (       d  f       No= f! , (       d  f       Nx= f! , (       d  f       N�= f! , (       d  f       W$ = f) Nr   )ÚCheckFunctionManager)r   )Údynamo_timedÚget_metrics_context)Ú#torch_function_mode_stack_state_mgr)ÚTracingContext)Úset_enable_dynamicÚfullgraph_captureT)Ústrict_autograd_cachezoutput_graph must not be None)ÚGuardFilterEntryÚguard_entriesr   c                 ó’   >• U  Vs/ s H4  nUR                   =(       d    UR                  TR                  ;   (       + PM6     sn$ s  snf r   )Ú	is_globalÚ
guard_typeÚ%UNSUPPORTED_SERIALIZATION_GUARD_TYPES)r,  Úgr#  s     €r!   Únew_guard_filter_fnÚ2aot_compile_fullgraph.<locals>.new_guard_filter_fn`  sS   ø€ ñ +ó	ò +˜ð ŸK™K÷ ZØ Ÿ|™|Ø3×YÑYñ Z÷ñ +ñ	ð 	ùò 	s   †;Azbackend_input must not be Nonez>fake_mode.shape_env must be the same as output_graph.shape_env)r*  Úbypass_autograd_cache_keyÚbundled_autograd_cacheÚ force_non_lazy_backward_loweringÚforce_autograd_cacheÚcompiler_fnrù   zCompiled function type z (produced zfrom backend z*) does not implement SerializableCallable.)r  ÚsaveÚstrict_errorzguards_state must not be None)Úinlined_sourcesÚcompiler_nameÚunknown)
r   r'   r(   r)   r*   r+   r,   r-   r.   r/   )rÓ   rÕ   )GÚtorch._dynamo.guardsr#  rz   r   Útorch._dynamo.utilsr$  r%  Ú&torch._dynamo.variables.torch_functionr&  Útorch._guardsr'  r   Útorch._dynamo.eval_framer(  r[   Ú
_functorchr  r  r   r)  Úgraph_capture_outputÚoutput_graphrg   Úguard_filter_fnÚtorch._dynamo.typesr+  r   r  Úget_traced_fnÚbackend_inputr)   Úgraph_moduleÚ_backend_idr   ÚgraphÚ	fake_modeÚ	shape_envÚtensor_to_contextÚ_guardsÚtracingr  rZ   Ú_TorchCompileInductorWrapperÚhasattrr8  Ú_dynamoÚbackendsÚcommonÚAotAutogradrù   r   r   r³   r‘   r   ÚstackÚenter_contextÚtemp_restore_stackÚbuild_guardsr›   r(   ÚsetÚtraced_codeÚadd_coder%   Ú_get_signaturer'   Úget_runtime_envr™   rÑ   rí   ) r  r  r  r   r!  r   r$  r%  r&  r'  r   r   Údynamic_ctxr(  Úcapture_outputrD  r+  r2  rì   rc   rI  r.   Útracing_contextr*   r8  Úbuild_guards_ctxÚcheck_fnr-   r]  r  Úaot_compiled_fnr#  s                                   @r!   Úaot_compile_fullgraphrg  :  sP  ø€ õ :Ý0ßEõõ -à!�L€Dä“-€KØÑÝ?á(¨Ó1ˆñ 	ÕÙÐ(Õ)Ü×Ñ×Ñ×%Ñ%¸DÐ%ÒAÚÚ+ä&×8Ò8¸ÀfÓMˆØ-×BÑBÐØ×,Ñ,Ñ4Ü Ð!@ÓAÐAà×$×$Ý<ðÜ'Ð(8Ñ9ðäœ$‘÷ð %8ˆEÔ!ä×+Ò+¨EÓ2‰ˆˆAà&×4Ñ4ˆØÑ Ü Ð!AÓBÐBØ1>×1IÑ1Iˆ×"Ñ"Ô.Ü(¨×)CÑ)C×)IÑ)IÓJˆà×#Ñ#×-Ñ-Ø'×4Ñ4×>Ñ>ò?ô !ØPóð ñ )¨×)@Ñ)@ÓAˆØ,9×,KÑ,KˆÔ)ä�M‰M×!Ñ! /Õ2Ü×Ñ×#Ñ#×)Ñ)à-1Ø15Ø.2Ø8<Ø,0ñõñ "Ø×*Ñ*¨M×,HÑ,HóˆKô ˜7¤E×$FÑ$F×GÑGä˜G ]×3Ñ3Ü"Ø×+Ñ+¬U¯]©]×-CÑ-C×-JÑ-J×-VÑ-V÷ñ ô
 ˜K¨×5Ñ5Ø#×-Ñ-Ñ9ô EÀ[ÓQ�÷;÷ 3ô@ ˜+Ô';×<Ñ<Ü�w ×.Ñ.Ø%×1Ñ1‘à%�ÜØ)¬$¨{Ó*;Ð)<¸KÐHØ! + Ð.XÐYñZóð ô %›;ÐØ.×4×4Ø×*Ñ*Ø3×FÑFÓHôò Ø+×8Ñ8Ø—‘ 5¨tÀ$ð 9ð ˆH÷ ð
 × Ñ Ñ(Ü Ð!@ÓAÐAá ´³Ñ7ˆØ/×;Ô;ˆKØ× Ñ  Ö-ñ <ô %Ü#×2Ò2°2Ó6Ø"×0Ñ0Ø!×.Ñ.Ø$×/Ñ/Ø#ØŸ+™+Ø,×<Ñ<Ó>Ø#Ø#Ü  ¨/¸9ÓEñ
ˆ	ô .Ø °·±ñ
ˆ÷i 	,÷ 	÷ 	B÷ 	*÷ 	ðx Ð÷Yö ú÷ 3Ö2ú÷b Öú÷y 	,Õ+ú÷ 	�ú÷ 	BÕAú÷ 	*Õ)ú÷ 	Ôðx Ðús¸   Á	S:Á(S)Á9SÁ<S	Á?ER6Ç0RÈB>R ËRËBR6Í,R$Î	CR6ÑS	ÑSÑ&S)Ñ.S:Ò 
RÒ
RÒ
R!ÒR6Ò$
R3Ò.R6Ò6
SÓ S	Ó
SÓSÓ
S&Ó"S)Ó)
S7	Ó3S:Ó:
T	c                   óT   • \ rS rSr% Sr\\   \S'   \\	\4   \S'   \
\\      \S'   Srg)Ú
ModelInputiÑ  a  
WIP type: represents a single model input
Which consists of a tuple of arguments and a set of contexts in which to run the model.

For each ModelInput, we'll compile one full graph of the model, and then use the guards generated
to dispatch between the compiled graphs.


r   r   Úcontextsr8   N)r:   r;   r<   r=   Ú__doc__r¨   r	   r@   r¢   rB   r  r   rG   r8   r#   r!   ri  ri  Ñ  s2   ‡ ñð �‰*ÓØ��c�‰NÓØÐ)¨#Ñ.Ñ/Ö/r#   ri  c                   óÄ   • \ rS rSr% \R
                  R                  \S'   \\	   \S'   S\
S\
S\
4S jrS\4S jr\S\R
                  R                  S	\SS 4S
 j5       rSrg)ÚAOTCompiledModeliâ  r  Úcompiled_resultsr   r   r   c                 óè   • U R                    H@  nUR                  " U R                  /UQ70 UD6(       d  M*  U" U R                  /UQ70 UD6s  $    U R                   S   " U R                  /UQ70 UD6$ )Nr   )rn  rä   r  )r5   r   r   rú   s       r!   ró   ÚAOTCompiledModel.__call__é  sp   € Ø×+Ô+ˆFØ×!Ò! $§*¡*Ð>¨tÒ>°v×>Ñ>Ù˜dŸj™jÐ:¨4Ò:°6Ñ:Ò:ñ ,ð ×$Ñ$ QÒ'¨¯
©
ÐD°TÒD¸VÑDÐDr#   c                 ó´   • / nU R                    H1  nUR                  [        R                  U5      R                  5        M3     [
        R                  " U5      $ r   )rn  ÚappendrÑ   rù   r¹   ÚpickleÚdumps)r5   r»   rú   s      r!   rù   ÚAOTCompiledModel.serializeð  sD   € ØˆØ×+Ô+ˆFØ�K‰KÔ+×5Ñ5°fÓ=×MÑMÖNñ ,ä�|Š|˜DÓ!Ð!r#   r»   c                 ót  • SSK Jn  SSKJnJn  [
        R                  " U5      n/ nU Hb  nU" U" [        R                  " 0 5      5      5         U" 5          UR                  [        R                  U5      5        S S S 5        S S S 5        Md     U " X5      $ ! , (       d  f       N"= f! , (       d  f       MŽ  = f)Nr   )r%  )Úcompile_contextÚCompileContext)r?  r%  rA  rw  rx  rs  Úloadsr   Úget_compile_idrr  rÑ   r  )	rh   r  r»   r%  rw  rx  Úresultsrn  rú   s	            r!   r  ÚAOTCompiledModel.deserializeö  sŒ   € å;ßAä%Ÿ|š|¨DÓ1ˆØÐÛˆFá¡¬}×/KÒ/KÈBÓ/OÓ PÕQÙ#Õ%à ×'Ñ'Ô(;×(GÑ(GÈÓ(OÔP÷ &÷ RÑQñ ñ �5Ó+Ð+÷ &Õ%ú÷ RÖQús$   ÁB(Á%BÁ;B(Â
B%Â!B(Â(
B7	r8   N)r:   r;   r<   r=   r[   r\   r]   r@   r  rÑ   r	   ró   rA   rù   r¦   r  rG   r8   r#   r!   rm  rm  â  sz   ‡ ð �8‰8�?‰?ÓØÐ.Ñ/Ó/ðE˜cð E¨Sð E°Sô Eð"˜5ô "ð ð, §¡§¡ð ,°uð ,ÐASó ,ó ó,r#   rm  Úinputsc                 óð   ^ ^^• S[         S[        4UUU 4S jjn/ nU H0  n[        R                  SU5        UR	                  U" U5      5        M2     [        U5      S:X  a  [        S5      e[        T U5      $ )za
Compiles a single nn.Module with any number of inputs, and returns a compiled forward function.
Úmodel_inputr   c                 óö   >• U R                   U R                  4nTR                  n[        5        nU R                   H  nUR                  U5        M     [        UUTTS9sS S S 5        $ ! , (       d  f       g = f)N)r  r   )r   r   Úforwardr   rj  rY  rg  )r  r  Úorig_forwardrX  Úctxr   r  r  s        €€€r!   Úcompile_single_graphÚ0aot_compile_module.<locals>.compile_single_graph  se   ø€ Ø%×*Ñ*¨K×,>Ñ,>Ð?ˆØ—}‘}ˆÜŒ[˜EØ"×+Ô+�Ø×#Ñ# CÖ(ñ ,ä(ØØØØñ	÷ �[�[ús   °0A*Á*
A8zCompiling input %s..r   z%Expected at least one compiled result)ri  rÑ   ÚlogÚinforr  rÙ   rg   rm  )r  r}  r  r   r„  rn  r  s   ` ``   r!   Úaot_compile_modulerˆ    s{   ú€ ð¬*ð Ô9L÷ ñ ð ÐÛˆÜ�‰Ð'¨Ô5Ø×ÑÑ 4°[Ó AÖBñ ô ÐÓ Ó!ÜÐDÓEÐEä˜EÐ#3Ó4Ð4r#   r   )ErE   rs   r>   r£   ÚloggingrÂ   rs  rÅ   rC   Úcollections.abcr   r   Ú
contextlibr   r   r   r   Útypingr	   r
   r   r[   Útorch.fxÚtorch._dynamo.convert_framer   Útorch._dynamo.graph_utilsr   rz   r   Ú r   Úaot_compile_typesr   r   r  r   Úguardsr   rê   r   r   Ú	getLoggerr:   r†  r?   r¢   rB   r"   r%   ÚPicklerrI   Ú	Unpicklerr­   r·   rA   rÏ   rÑ   r¨   ÚfxÚGraphModuler  ÚTensorr  rg  ri  rm  r\   r]   rˆ  r8   r#   r!   Ú<module>r™     sI  ðÛ Û Û Û 	Û Û 	Û Û Û ß .ß EÑ EÝ !ß /Ñ /ã Û Ý 7Ý 8Ý ,å ÷õ ö Ý+ß3ð ×Ò˜Ó!€ð%Ø× Ñ ð%Ø),ð%Ø8;ð%à	ˆ#ˆsˆ(�^ô%ð ÷Oð Oó ðOô$Y˜Ÿ™ô Yôx'˜&×*Ñ*ô 'ð  ÷ð ó ðð% 3ð %¨eô %ð ÷w*ð w*ó ðw*ð~  ñTØðTà˜%  S ™/¨4°°S°©>Ð9Ñ:ðTð ðTð �u—x‘x×+Ñ+¨T°%·,±,Ñ-?Ð@ÐBVÐVÑWð	Tð
 �D‰[ðTð õTðn ÷0ð 0ó ð0ð  ÷ ,ð  ,ó ð ,ðF 5Ø�8‰8�?‰?ð 5à�Ñð 5ð ð 5ð �u—x‘x×+Ñ+¨T°%·,±,Ñ-?Ð@ÐBVÐVÑWð	 5ð
 õ 5r#   