ó
    Eñinq  ã                  óÞ  • S SK J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  S SKJr  S SKJrJrJrJrJr  S SKJrJrJrJr  S SKrS SKJr  S	S
KJr  S	SKJr  \(       a  S SK r S SKJ!r!  S	SK"J#r#  S	SK$J%r%  S	SK J&r&J'r'  SxS jr(\RR                  " \*5      r+\RX                  R[                  \*S5      r. " S S\/5      r0 " S S\05      r1 " S S\05      r2 " S S\05      r3 " S S\35      r4 " S S\35      r5 " S S\35      r6 " S  S!\35      r7 " S" S#\35      r8 " S$ S%\05      r9 " S& S'\05      r: " S( S)\05      r; " S* S+\05      r< " S, S-\05      r= " S. S/\=5      r> " S0 S1\05      r? " S2 S3\05      r@ " S4 S5\05      rA " S6 S7\05      rB " S8 S9\05      rC " S: S;\	5      rD " S< S=\?5      rE " S> S?\05      rF " S@ SA\05      rG " SB SC\05      rH " SD SE\I5      rJ " SF SG\I5      rK " SH SI\05      rL " SJ SK\05      rM " SL SM\M5      rN " SN SO\M5      rO " SP SQ\O5      rP " SR SS\O5      rQ " ST SU\M5      rR " SV SW\M5      rS " SX SY\M5      rT " SZ S[\M5      rU " S\ S]\M5      rV\W\N\X\O\Y\P\Z\R\[\Q\\\S\/\T\]\U\^\V0	r_SyS^ jr`SSS_.         SzS` jjraS{Sa jrb\RÆ                  RÈ                  RÊ                  \RÆ                  RÈ                  RÌ                  \RÆ                  RÈ                  RÎ                  \RÆ                  RÈ                  RÐ                  \RÆ                  RÈ                  RÒ                  4rj              S|Sb jrk          S}Sc jrl\" S	Sd9S~Se j5       rmSSf jrn\o" 5       rp\pSgSgSh.               S€Si jjrq " Sj Sk5      rrS�Sl jrsS‚SƒSm jjrt      S„Sn jruS…So jrv S†     S‡Sp jjrwSˆSq jrxS‰Sr jrySŠSs jrz  S‹         SŒSt jjr{S�Su jr|SŽSv jr}  S‹         SŒSw jjr~g)�é    )ÚannotationsN)ÚautoÚEnum)Ú	lru_cache)ÚPath)Úextract_stackÚ
format_excÚformat_listÚFrameSummaryÚStackSummary)ÚAnyÚNoReturnÚOptionalÚTYPE_CHECKING)Úget_file_path_2é   )Úconfig)Úcounters)Ú	CompileId)ÚDynamoTracerOutput)ÚInstructionTranslatorBase)ÚDynamoFrameTypeÚFrameExecStrategyc                ó,   • SU R                  SS5      -   $ )NzhFor more information about this error, see: https://pytorch.org/docs/main/generated/exportdb/index.html#Ú_Ú-)Úreplace)Ú	case_names    ÚN/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/exc.pyÚexportdb_error_messager    9   s"   € ð	Ià
×
Ñ
˜C Ó
%ñ	&ðó    Úgraph_breaksc                  ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚTorchDynamoExceptionéE   a  Base exception class for all TorchDynamo-specific exceptions.

Attributes:
    _torch_dynamo_tracer_output: Optional tracer output attached to the exception
    frame_exec_strategy: Optional frame execution strategy to control how convert_frame
        should handle this exception. When set, convert_frame will use this strategy
        instead of the default behavior. This allows exceptions to signal specific
        execution strategies (e.g., SKIP, RUN_ONLY) without requiring separate
        exception types for control flow.
c                óB   >• [         TU ]  " U0 UD6  S U l        S U l        g ©N)ÚsuperÚ__init__Ú_torch_dynamo_tracer_outputÚframe_exec_strategy)ÚselfÚargsÚkwargsÚ	__class__s      €r   r)   ÚTorchDynamoException.__init__Q   s%   ø€ Ü‰Ò˜$Ð) &Ò)ØIMˆÔ(Ø=AˆÕ r!   )r*   r+   )r-   r   r.   r   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   Ú__static_attributes__Ú__classcell__©r/   s   @r   r$   r$   E   s   ø† ñ	÷Bõ Br!   r$   c                  ó   • \ rS rSrSrg)ÚInternalTorchDynamoErroréW   © N©r3   r4   r5   r6   r8   r>   r!   r   r<   r<   W   ó   † Úr!   r<   c                  ó   • \ rS rSrSrg)ÚResumePrologueTracingErroré[   r>   Nr?   r>   r!   r   rB   rB   [   r@   r!   rB   c                  ó@   ^ • \ rS rSr% S\S'   SS.SU 4S jjjrSrU =r$ )ÚRestartAnalysisé_   úOptional[str]Úrestart_reasonN)rH   c               ó,   >• Xl         [        TU ]  " U6   g r'   )rH   r(   r)   )r,   rH   r-   r/   s      €r   r)   ÚRestartAnalysis.__init__b   s   ø€ Ø,ÔÜ‰Ò˜$Òr!   )r-   r   rH   rG   r1   r2   ©r3   r4   r5   r6   Ú__annotations__r)   r8   r9   r:   s   @r   rE   rE   _   s   ø‡ Ø!Ó!àCG÷  ÷  ð  r!   rE   c                  ó   • \ rS rSrSrg)ÚSpeculationRestartAnalysiség   r>   Nr?   r>   r!   r   rN   rN   g   r@   r!   rN   c                  ó   • \ rS rSrSrSrg)ÚAutogradGradRestartAnalysisék   z„Raised when autograd.grad consumed grad_fns that are returned.

On restart, autograd.grad will graph break instead of being traced.
r>   N©r3   r4   r5   r6   r7   r8   r>   r!   r   rQ   rQ   k   s   † ôr!   rQ   c                  ó   • \ rS rSrSrg)ÚUnspecializeRestartAnalysisér   r>   Nr?   r>   r!   r   rU   rU   r   r@   r!   rU   c                  ó   • \ rS rSrSrg)Ú CompileCollectiveRestartAnalysisév   r>   Nr?   r>   r!   r   rX   rX   v   r@   r!   rX   c                  ó   • \ rS rSrSrg)ÚTensorifyScalarRestartAnalysiséz   r>   Nr?   r>   r!   r   r[   r[   z   r@   r!   r[   c                  ó   • \ rS rSrSrg)Ú	SkipFrameé‚   r>   Nr?   r>   r!   r   r^   r^   ‚   r@   r!   r^   c                  ó0   ^ • \ rS rSrSSU 4S jjjrSrU =r$ )ÚTorchRuntimeErroré†   c                ó    >• [         TU ]  U5        Xl        Ub  UU l        g [        R                  R
                  R                  5       U l        g r'   ©r(   r)   ÚmsgÚtorchÚ_guardsÚTracingContextr   Ú
real_stack©r,   re   ri   r/   s      €r   r)   ÚTorchRuntimeError.__init__‡   óH   ø€ Ü‰Ñ˜ÔØŒð Ñ%ð ð 	�ô —‘×-Ñ-×;Ñ;Ó=ð 	�r!   ©re   ri   r'   ©re   Ústrri   úStackSummary | Noner1   r2   ©r3   r4   r5   r6   r)   r8   r9   r:   s   @r   ra   ra   †   ó   ø† ÷
÷ 
r!   ra   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚInvalidBackendé‘   c                ó.   >• [         TU ]  SU< S35        g )NzInvalid backend: z=, see `torch._dynamo.list_backends()` for available backends.)r(   r)   )r,   Únamer/   s     €r   r)   ÚInvalidBackend.__init__’   s   ø€ Ü‰ÑØ ™xÐ'dÐeõ	
r!   r>   )rw   ro   r1   r2   rq   r:   s   @r   rt   rt   ‘   s   ø† ÷
õ 
r!   rt   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚResetRequiredé˜   c                óL   >• [         TU ]  [        R                  " S5      5        g )NzÃ
                Must call `torch._dynamo.reset()` before changing backends.  Detected two calls to
                `torch.compile()` with a different backend compiler arguments.
                )r(   r)   ÚtextwrapÚdedent)r,   r/   s    €r   r)   ÚResetRequired.__init__™   s!   ø€ Ü‰ÑÜ�OŠOðóõ	
r!   r>   ©r1   r2   rq   r:   s   @r   rz   rz   ˜   s   ø† ÷
õ 
r!   rz   c                  óF   ^ • \ rS rSr        SU 4S jjrSS jrSrU =r$ )ÚShortenTracebacké¤   c               ó2   >• [         TU ]  " U0 UD6  Xl        g r'   )r(   r)   Úfirst_useful_frame)r,   r…   r-   r.   r/   s       €r   r)   ÚShortenTraceback.__init__¥   s   ø€ ô 	‰Ò˜$Ð) &Ò)Ø"4Õr!   c                ó  • U R                   nU R                  b  Ub  [        R                  (       a  U $ UR                  U R                  La1  UR
                  nUc   S5       eUR                  U R                  La  M1  U R                  U5      $ )Nz#internal error, please report a bug)Ú__traceback__r…   r   ÚverboseÚtb_frameÚtb_nextÚwith_traceback)r,   Útbs     r   Úremove_dynamo_framesÚ%ShortenTraceback.remove_dynamo_frames«   sz   € Ø×ÑˆØ×"Ñ"Ñ*¨b©j¼F¿N¿NØˆKØ�k‰k ×!8Ñ!8Ò8Ø—‘ˆBØ‘>ÐHÐ#HÓH�>ð �k‰k ×!8Ñ!8Ô8ð ×"Ñ" 2Ó&Ð&r!   ©r…   )r-   r   r…   úOptional[types.FrameType]r.   r   r1   r2   )r1   ztyping.Self)r3   r4   r5   r6   r)   rŽ   r8   r9   r:   s   @r   r‚   r‚   ¤   s2   ø† ð5Øð5Ø.Gð5ØSVð5à	÷5÷'ò 'r!   r‚   c                  ó<   ^ • \ rS rSr        SU 4S jjrSrU =r$ )ÚBackendCompilerFailedéµ   c                ó¢   >• [        USS5      U l        X l        SU R                  < S[        U5      R                   SU 3n[
        TU ]  XCS9  g )Nr3   Ú?zbackend=z	 raised:
z: r�   )ÚgetattrÚbackend_nameÚinner_exceptionÚtyper3   r(   r)   )r,   Ú
backend_fnr™   r…   re   r/   s        €r   r)   ÚBackendCompilerFailed.__init__¶   sZ   ø€ ô $ J°
¸CÓ@ˆÔØ.ÔØ˜×*Ñ*Ñ-¨Z¼¸_Ó8M×8VÑ8VÐ7WÐWYÐZiÐYjÐkˆÜ‰Ñ˜ÐÒDr!   )r˜   r™   )r›   r   r™   Ú	Exceptionr…   r‘   r1   r2   rq   r:   s   @r   r“   r“   µ   s9   ø† ð	Eàð	Eð #ð	Eð 6ð		Eð
 
÷	Eõ 	Er!   r“   c                  ól   ^ • \ rS rSr  SSSS.           S	U 4S jjjjrS
S jrSSS jjrSrU =r$ )ÚUnsupportedéÇ   N)r   ri   c               óî   >• [         TU ]  U5        U(       d(  [        R                  R                  R                  5       nXPl        Xl        X0l        S U l	        U R                  5         X l        SU l        g ©NF)r(   r)   rf   rg   rh   r   ri   re   Ú
skip_frameÚcategoryÚadd_to_statsÚgb_typeÚlogged)r,   re   r¦   r£   r   ri   r/   s         €r   r)   ÚUnsupported.__init__È   s[   ø€ ô 	‰Ñ˜ÔÞÜŸ™×5Ñ5×CÑCÓEˆJØ$ŒØŒØ$ŒØ'+ˆŒØ×ÑÔØ#*ŒØˆ�r!   c                óø   • U R                   c   e[        U R                      U R                  ==   S-  ss'   [        U R                      U R                     S::  a  [        U R                      U R                  	 g g )Nr   r   ©r¤   r   re   ©r,   s    r   Úremove_from_statsÚUnsupported.remove_from_statsÝ   sc   € Ø�}‰}Ñ(Ð(Ð(Ü�—‘Ñ §¡Ó)¨QÑ.Ó)Ü�D—M‘MÑ" 4§8¡8Ñ,°Ó1Ü˜Ÿ™Ñ'¨¯©Ñ1ð 2r!   c                óL   • Xl         [        U   U R                  ==   S-  ss'   g )Nr   rª   )r,   r¤   s     r   r¥   ÚUnsupported.add_to_statsã   s    € Ø ŒÜ�Ñ˜4Ÿ8™8Ó$¨Ñ)Ô$r!   )r¤   r¦   r§   re   ri   r£   )Ú F)re   ro   r¦   ro   r£   Úboolr   rG   ri   rp   r1   r2   r€   )Úunimplemented)r¤   ro   r1   r2   )	r3   r4   r5   r6   r)   r¬   r¥   r8   r9   r:   s   @r   rŸ   rŸ   Ç   sk   ø† ð
 Ø ðð $(Ø*.ñàðð ð	ð
 ðð !ðð (ðð 
÷ñ ô*2÷*ô *r!   rŸ   c                  ó   • \ rS rSrSrg)Ú$UnknownPropertiesDuringBackwardTraceéè   r>   Nr?   r>   r!   r   r´   r´   è   r@   r!   r´   c                  ó   • \ rS rSrSrg)ÚRecompileErroréì   r>   Nr?   r>   r!   r   r·   r·   ì   r@   r!   r·   c                  ó   • \ rS rSrSrg)ÚInfiniteGeneratorErroréð   r>   Nr?   r>   r!   r   rº   rº   ð   ó   † âr!   rº   c                  ó   • \ rS rSrSrSrg)ÚCondOpArgsMismatchErroréõ   z7
Internal error from cond() due to arguments mismatch.
r>   NrS   r>   r!   r   r¾   r¾   õ   s   † ôr!   r¾   c                  ó„   • \ rS rSr\" 5       r\" 5       r\" 5       r\" 5       r\" 5       r	\" 5       r
\" 5       r\" 5       rSrg)ÚUserErrorTypeéû   r>   N)r3   r4   r5   r6   r   ÚDYNAMIC_CONTROL_FLOWÚANTI_PATTERNÚSTANDARD_LIBRARYÚCONSTRAINT_VIOLATIONÚDYNAMIC_DIMÚINVALID_INPUTÚINVALID_OUTPUTÚ*UNSUPPORTED_ALIASED_MUTATED_DYNAMIC_INPUTSr8   r>   r!   r   rÁ   rÁ   û   s>   † Ù›6ÐÙ“6€LÙ“vÐÙ›6ÐÙ“&€KÙ“F€MÙ“V€NÙ15³Ó.r!   rÁ   c                  ó@   ^ • \ rS rSr S       SU 4S jjjrSrU =r$ )Ú	UserErrori  c                óà   >• UbF  [        U[        5      (       d   eUR                  S5      (       a  US-  nOUS-  nU[        U5      -  n[        TU ]  X#(       a  UOS5        Xl        X l        g)a  
Type of errors that would be valid in Eager, but not supported in TorchDynamo.
The error message should tell user about next actions.

error_type: Type of user error
msg: Actionable error message
case_name: (Optional) Unique name (snake case) for the usage example in exportdb.
NÚ.Ú Ú
rÌ   )Ú
isinstancero   Úendswithr    r(   r)   Ú
error_typeÚmessage)r,   rÓ   re   r   r/   s       €r   r)   ÚUserError.__init__  sl   ø€ ð Ñ Ü˜i¬×-Ñ-Ð-Ð-Ø�|‰|˜C× Ñ Ø�s‘
‘à�t‘�ØÔ)¨)Ó4Ñ4ˆCÜ‰Ñ˜­9™i¸+ÔFØ$ŒØ�r!   )rÓ   rÔ   r'   )rÓ   rÁ   re   ro   r   rG   r1   r2   rq   r:   s   @r   rÌ   rÌ     s0   ø† àNRðØ'ðØ.1ðØ>Kðà	÷ö r!   rÌ   c                  ó0   ^ • \ rS rSrSSU 4S jjjrSrU =r$ )ÚStepUnsupportedi  c                ó¨   >• [         TU ]  U5        Xl        U(       d(  [        R                  R
                  R                  5       nX l        SU l        g r¢   )	r(   r)   re   rf   rg   rh   r   ri   r§   rj   s      €r   r)   ÚStepUnsupported.__init__   s<   ø€ Ü‰Ñ˜ÔØŒÞÜŸ™×5Ñ5×CÑCÓEˆJØ$ŒØˆ�r!   )r§   re   ri   r'   rn   rq   r:   s   @r   r×   r×     s   ø† ÷÷ r!   r×   c                  ó   • \ rS rSrSrg)ÚUnsafeScriptObjectErrori)  r>   Nr?   r>   r!   r   rÛ   rÛ   )  r@   r!   rÛ   c                  ó0   ^ • \ rS rSrSSU 4S jjjrSrU =r$ )ÚUncapturedHigherOrderOpErrori-  c                ó    >• [         TU ]  U5        Xl        Ub  UU l        g [        R                  R
                  R                  5       U l        g r'   rd   rj   s      €r   r)   Ú%UncapturedHigherOrderOpError.__init__.  rl   r!   rm   r'   rn   rq   r:   s   @r   rÝ   rÝ   -  rr   r!   rÝ   c                  ó   • \ rS rSrSrg)ÚIncorrectUsagei8  r>   Nr?   r>   r!   r   rá   rá   8  r@   r!   rá   c                  ó   • \ rS rSrSrg)ÚFailOnRecompileLimitHiti?  r>   Nr?   r>   r!   r   rã   rã   ?  r@   r!   rã   c                  ó   • \ rS rSrSrg)ÚPackageErroriC  r>   Nr?   r>   r!   r   rå   rå   C  r@   r!   rå   c                  óB   ^ • \ rS rSrSS.       SU 4S jjjrSrU =r$ )ÚObservedExceptioniG  N©ri   c               ó–   >• [         TU ]  " U0 UD6  Ub  UU l        g [        R                  R                  R                  5       U l        g r'   )r(   r)   rf   rg   rh   r   ri   ©r,   ri   r-   r.   r/   s       €r   r)   ÚObservedException.__init__I  sJ   ø€ ô 	‰Ò˜$Ð) &Ò)ð Ñ%ð ð 	�ô —‘×-Ñ-×;Ñ;Ó=ð 	�r!   ©r-   r   ri   úOptional[StackSummary]r.   r   r1   r2   rq   r:   s   @r   rç   rç   G  s4   ø† ð @Dñ
Øð
Ø&<ð
ØORð
à	÷
ö 
r!   rç   c                  óN   ^ • \ rS rSr% S\S'   SS.       SU 4S jjjrSrU =r$ )	ÚObservedUserStopIterationiT  zOptional[Any]ÚvalueNrè   c               ód   >• [         TU ]  SUS9  [        U5      S:”  a  US   U l        g S U l        g )Nzunhandled `raise StopIteration`rè   r   )r(   r)   Úlenrð   rê   s       €r   r)   Ú"ObservedUserStopIteration.__init__Z  s5   ø€ ô 	‰ÑÐ:ÀzÐÑRÜˆt‹9�q‹=Ø˜a™ˆD�JàˆD�Jr!   ©rð   rì   rK   r:   s   @r   rï   rï   T  s:   ø‡ àÓð
 @DñØðØ&<ðØORðà	÷ö r!   rï   c                  ó   • \ rS rSrSrg)ÚObservedLookupErrorid  r>   Nr?   r>   r!   r   rö   rö   d  r¼   r!   rö   c                  ó   • \ rS rSrSrg)ÚObservedIndexErrorii  r>   Nr?   r>   r!   r   rø   rø   i  r¼   r!   rø   c                  ó   • \ rS rSrSrg)ÚObservedKeyErrorin  r>   Nr?   r>   r!   r   rú   rú   n  r¼   r!   rú   c                  ó   • \ rS rSrSrg)ÚObservedGeneratorExitis  r>   Nr?   r>   r!   r   rü   rü   s  r@   r!   rü   c                  ó   • \ rS rSrSrg)ÚObservedAttributeErroriw  r>   Nr?   r>   r!   r   rþ   rþ   w  r¼   r!   rþ   c                  ó   • \ rS rSrSrg)ÚObservedRuntimeErrori|  r>   Nr?   r>   r!   r   r   r   |  r¼   r!   r   c                  ó   • \ rS rSrSrg)ÚObservedNotImplementedErrori�  r>   Nr?   r>   r!   r   r  r  �  r@   r!   r  c                  ó   • \ rS rSrSrg)ÚObservedTypeErrori…  r>   Nr?   r>   r!   r   r  r  …  r¼   r!   r  c                óŽ   • U [         ;  a3  [        U S[        U 5      5      n[        SU S3[        40 5      [         U '   [         U    $ )Nr3   ÚObservedÚError)Úobserved_exception_mapr—   ro   rš   rç   )Úexc_typerw   s     r   Úget_dynamo_observed_exceptionr
  —  sN   € ØÔ-Ó-Ü�x ¬S°«]Ó;ˆÜ+/Ø�t�f˜EÐ"Ô%6Ð$8¸"ó,
Ô˜xÑ(ô " (Ñ+Ð+r!   )r-   r.   c          
     óx  • SSK Jn  SSKJn  UR	                  X5      R                  UU(       a!  U Vs/ s H  oeR	                  X5      PM     snO/ U=(       d    0 5      n[        Xt5      (       d   eUR                  U5        UR                  R                  U5        [        U 5      nU(       a  U" U6 eUes  snf )Nr   )ÚExceptionVals)ÚSourcelessBuilder)Úsymbolic_convertr  Úvariables.builderr  ÚcreateÚcall_functionrÑ   Ú_attach_traceback_to_exceptionÚexn_vt_stackÚset_current_exceptionr
  )	r	  Útxr-   r.   r  r  ÚaÚexception_vtÚ
raised_excs	            r   Úraise_observed_exceptionr  ¡  s¦   € õ 0Ý4ð %×+Ñ+¨BÓ9×GÑGØ
Þ;?±$Ó7²$¨Q×	!Ñ	! "Ö	(±$Ò7ÀRØ��"ó€Lô
 �l×2Ñ2Ð2Ð2Ø×%Ñ% lÔ3Ø‡O�O×)Ñ)¨,Ô7Ü.¨xÓ8€JæÙ˜$ÐÐØ
Ðùò 	8s   ³B7
c                ó8   • U R                   R                  5         g r'   )r  Úclear_current_exception)r  s    r   Úhandle_observed_exceptionr  ¼  s   € ð2 ‡O�O×+Ñ+Õ-r!   c          	     ó²   ^• [        X5      m[        R                  R                  SS U4S jS9  [        R                  ST5        [        nU" UUUUU SS9  g )NÚartifactc                 ó   • SSS.$ )NÚdynamo_graph_break_reasonÚstring)rw   Úencodingr>   r>   r!   r   Ú<lambda>Ú,unimplemented_with_warning.<locals>.<lambda>õ  s   € Ø/Ø ò
r!   c                 ó   >• T $ r'   r>   )Úgraph_break_msgs   €r   r#  r$  ù  s   ø€ ™?r!   )Úmetadata_fnÚ
payload_fnz%sT)r¦   ÚcontextÚexplanationÚhintsÚfrom_excÚlog_warning)Úformat_error_msg_verboserf   Ú_loggingÚtrace_structuredÚgraph_breaks_logÚdebugr²   )ÚeÚcoder¦   r)  r*  r+  Ú_unimplementedr&  s          @r   Úunimplemented_with_warningr6  â  sd   ø€ ô  /¨qÓ7€OÜ	‡N�N×#Ñ#Øñ
ô +ð $ñ ô ×Ñ˜4 Ô1Ü"€NáØØØØØØór!   c                ó  • [         R                  " US5      R                  5       nSR                  S U 5       5      n[         R                  " US5      R                  5       nU  SU SU SU 3n[	        U 5      nU(       a  USU 3-  nU$ )Nú    rÐ   c              3  ór   #   • U  H-  nS [         R                  " US5      R                  5       -   v •  M/     g7f)z  Hint: r8  N)r}   ÚindentÚlstrip)Ú.0Úhints     r   Ú	<genexpr>Ú-format_graph_break_message.<locals>.<genexpr>  s,   é € ð ÚHMÀˆ
”X—_’_ T¨6Ó2×9Ñ9Ó;Ö;Êùs   ‚57z
  Explanation: z

  Developer debug context: z:

 For more details about this graph break, please visit: )r}   r:  r;  ÚjoinÚget_gbid_documentation_link)r¦   r)  r*  r+  Ú	hints_strre   Údocumentation_links          r   Úformat_graph_break_messagerD    s¨   € ô —/’/ +¨vÓ6×=Ñ=Ó?€KØ—	‘	ñ ÙHMóó €Iô �oŠo˜g vÓ.×5Ñ5Ó7€Gð 	€	ð 
Øˆ}ð Ø
€ð à#˜9ð(€Cô 5°WÓ=ÐæØÐMÐN`ÐMaÐbÑbˆà€Jr!   )Úmaxsizec                 óœ  •  [        [        5      R                  5       R                  n [	        S[        U 5      S5      n[        U5       n[        R                  " U5      nSSS5        0 nWR                  5        H  u  pVU H
  nXTUS   '   M     M     U$ ! , (       d  f       N;= f! [         a    [        R                  S5        0 n Naf = f)zÅ
Loads the gb_type to gb_id map from the graph break registry from JSON file with caching.

Includes historical gb_type (mapping behavior of duplicate gb_types with different gb_ids is undefined).
r°   zgraph_break_registry.jsonNz!Error accessing the registry fileÚGb_type)r   Ú__file__ÚresolveÚparentr   ro   ÚopenÚjsonÚloadr�   ÚlogÚ	exceptionÚitems)Ú
script_dirÚregistry_pathÚfÚregistryÚmappingÚkÚvÚentrys           r   Ú_load_gb_type_to_gb_id_maprY  "  s´   € ð
Üœ(“^×+Ñ+Ó-×4Ñ4ˆ
Ü'Ø”�J“Ð!<ó
ˆô �-Ô  AÜ—y’y “|ˆH÷ !ð €GØ—‘Ö ‰ˆÛˆEØ()�E˜)Ñ$Ó%ó ñ !ð €N÷ !Õ ûäó Ü�‰Ð9Ô:àŠðús0   ‚AB' Á
BÁ!B' Â
B$Â B' Â$B' Â'!CÃ
Cc                óX   • Sn[        5       nX;   a  U SX    R                  S5       S3$ g)zÌ
Retrieves the GBID documentation link for a given graph break type.

Args:
    gb_type: The graph break type to look up.

Returns:
    A string containing the documentation URL if found, otherwise None.
z;https://meta-pytorch.github.io/compile-graph-break-site/gb/ÚgbÚGBz.htmlN)rY  r;  )r¦   ÚGRAPH_BREAK_SITE_URLÚgb_type_to_gb_id_maps      r   rA  rA  =  sJ   € ð 	Fð ô 6Ó7ÐàÓ&à#Ð$ BÐ';Ñ'D×'KÑ'KÈDÓ'QÐ&RÐRWÐXð	
ð r!   F)r,  r-  r£   c                ó0  • [        XX#5      nU(       a  [        R                  U5        U[        LaZ  Sn[	        US5      (       a  UR
                  n[        U[        5      (       a  UR                   SU 3n[        XpXhS9e[        XpXhS9Ue[        XpU5      e)aç  
Called within dynamo to cause a graph break.
Args:
    gb_type: Context-free graph break type. It should be a short string without any
             information specific to the tracing context (i.e. no dynamically-generated strings)
    context: Developer context for the graph break. It can contain tracing context/dynamic strings.
    explanation: User-facing context-dependent explanation for the graph break. Can be dynamic.
    hints: List of user-facing hints for the graph break.
Nri   zJ

*** While handling this graph break, another graph break occurred: ***

rè   )	rD  rN  ÚwarningÚ_NOTHINGÚhasattrri   rÑ   rŸ   re   )	r¦   r)  r*  r+  r,  r-  r£   re   Úpast_real_stacks	            r   r²   r²   X  s™   € ô( % W°{Ó
J€CæÜ�‰�CÔØ”xÒØˆÜ�8˜\×*Ñ*Ø&×1Ñ1ˆOÜ�h¤×,Ñ,Ø—\‘\�NÐ"pÐqtÐpuÐvˆCÜ˜c¨JÑSÐSÜØ˜*ñ
àð	ô �c JÓ
/Ð/r!   c                  ó2   • \ rS rSrSS jrSS jrSS jrSrg)	ÚKeyErrorMsgi  c                ó   • Xl         g r'   rô   )r,   rð   s     r   r)   ÚKeyErrorMsg.__init__€  s   € Ø�
r!   c                ó,   • [        U R                  5      $ r'   )ro   rð   r«   s    r   Ú__str__ÚKeyErrorMsg.__str__ƒ  s   € Ü�4—:‘:‹Ðr!   c                ó"   • U R                  5       $ r'   )ri  r«   s    r   Ú__repr__ÚKeyErrorMsg.__repr__†  s   € Ø�|‰|‹~Ðr!   rô   N)rð   r   r1   r2   )r1   ro   )r3   r4   r5   r6   r)   ri  rl  r8   r>   r!   r   re  re    s   † ôô÷r!   re  c                ó†   • [        U S5      (       a/  UR                  S5      nUS    SU R                   US    US    3nU$ )NÚ	_hop_namez
  Explanation:r   z
  Higher Order Operator: r   é   )rb  Ú	partitionro  )Úexcre   Úliness      r   Ú!augment_exc_message_with_hop_namert  Š  sT   € ô ˆs�K× Ñ Ø—‘Ð0Ó1ˆà�Q‰xˆjÐ3°C·M±M°?À5ÈÁ8À*ÈUÐSTÉXÈJÐWð 	ð €Jr!   c                óî  • SS K nS U l        [        U 5      nUb?  [        U5      S:”  a0  US   U l        USSR	                  UR                  U5      5       3-  n[        R                  (       a1  [        U S5      (       a   USU R                   SU R                   S3-  n[        R                  (       d  [        U S	5      (       a  US
-  n[        U S5      (       aˆ  [        U R                  S5      (       am  [        U R                  S5      (       a5  USU R                  R                   SU R                  R                   S3-  nOUSU R                  R                   S3-  n[        U R                  5      S:X  a  SO[        U R                  S   5      n[!        X5      n[#        U [$        5      (       a$  ['        XQ-   5      4U R                  SS  -   U l        g XQ-   nU4U R                  SS  -   U l        g )Nr   éÿÿÿÿz
from user code:
 r°   Úrecord_filenamez!
Last frame execution written to zD. To run only this frame while debugging, run torch._dynamo.replay('z').
ri   z´
Set TORCHDYNAMO_VERBOSE=1 for the internal stack trace (please do this especially if you're reporting a bug to PyTorch). For even more developer context, set TORCH_LOGS="+dynamo"
r™   Úminifier_pathÚbuck_commandz
Minifier script written to zW. Run this buck command to find the smallest traced graph which reproduces this error: rÐ   zQ. Run this script to find the smallest traced graph which reproduces this error.
r   )Ú	tracebackÚinnermost_user_frame_summaryÚget_real_stackrò   r@  r
   r   Úreplay_record_enabledrb  rw  r‰   r™   rx  ry  r-   ro   rt  rÑ   ÚKeyErrorre  )rr  re   Úexportrz  ri   Úold_msgÚnew_msgs          r   Úaugment_exc_messager‚  –  sê  € Ûà'+€CÔ$ä Ó$€JØÑ¤# j£/°AÓ"5Ø+5°b©>ˆÔ(ØÐ% b§g¡g¨i×.CÑ.CÀJÓ.OÓ&PÐ%QÐRÑRˆä×#×#¬°Ð5F×(GÑ(GØØ0°×1DÑ1DÐ0Eð FØ×+Ñ+Ð,¨Eð3ñ	
ˆô
 �>�>œg c¨<×8Ñ8ØðJñ	
ˆô ˆsÐ%×&Ñ&¬7Ø×Ñ˜_÷,ñ ,ô �3×&Ñ&¨×7Ñ7ØØ/°×0CÑ0C×0QÑ0QÐ/Rð S0à03×0CÑ0C×0PÑ0PÐ/QÐQSðUñ‰Cð Ø/°×0CÑ0C×0QÑ0QÐ/Rð S_ð _ñˆCô
 ˜Ÿ™“M QÓ&‰b¬C°·±¸±Ó,<€Gä/°Ó=€Gä�#”x× Ñ Ü ¡Ó.Ð0°3·8±8¸A¸B°<Ñ?ˆ�à‘-ˆØ�: §¡¨¨ Ñ,ˆ�r!   c                óŽ   • S nS nU R                   b,  U R                   R                  nU R                   R                  nXl        X#4$ r'   )r{  ÚfilenameÚlinenoÚ
compile_id)r3  r†  r„  r…  s       r   Úget_exc_messager‡  Ç  sJ   € ð €HØ€FØ×%Ñ%Ñ1Ø×1Ñ1×:Ñ:ˆØ×/Ñ/×6Ñ6ˆØ„LØÐÐr!   c                 ó(   • [        [        5       5      $ r'   )Úfilter_stackr   r>   r!   r   Úget_stack_above_dynamorŠ  Ó  s   € Üœ›Ó(Ð(r!   c                ó„   • [        U SS 5      nUc  g Ub  [        5       nO
[        5       n[        R                  " X2-   5      $ )Nri   )r—   rŠ  r   Ú	from_list)rr  Úframeri   Ústack_above_dynamos       r   r|  r|  ×  sK   € ô ˜˜l¨DÓ1€JØÑØð Ñô 4Ó5Ñä)›^Ðä×!Ò!Ð"4Ñ"AÓBÐBr!   c                óø   • [        5       nU  Hi  nUR                  c  M  SUR                  ;   a    U$ SUR                  ;   d!  UR                  (       a  SUR                  ;   a  MX  UR                  U5        Mk     U$ )NÚconvert_frameÚ
eval_frameztorch._dynamo.optimize()r   r„  ÚlineÚappend)ÚstackÚ
user_stackr�  s      r   r‰  r‰  ø  sq   € Ü“€JÛˆØ�>‰>Ñ!ÙØ˜eŸn™nÓ,Øð Ðð ˜5Ÿ>™>Ó)Ø�J�JÐ4¸¿
¹
ÓBáØ×Ñ˜%Ö ñ ð Ðr!   c                ót   • SSK Jn  [        R                  " U S3U 5      nU(       a  UR	                  S5      $ g )Nr   )ÚTORCH_DYNAMO_RESUME_IN_PREFIXz_(\w+)_at_\d+)Úresume_executionr—  ÚreÚmatchÚgroup)rw   r—  rš  s      r   Úremove_resume_prefixrœ    s2   € Ý?ä�HŠHÐ5Ð6°oÐFÈÓM€EÞØ�{‰{˜1‹~ÐØr!   c                óð   • [        5       nU  He  nUR                  c  M  [        UR                  5      nU(       a&  U(       a  US   R                  U:X  a  X!S'   X2l        MT  UR	                  U5        Mg     U$ )aõ  
When we graph break, we create a resume function and make a regular Python call
to it, which gets intercepted by Dynamo. This behavior is normally shown in the
traceback, which can be confusing to a user. So we can filter out resume frames
for better traceback clarity.

Example:
File "..." line 3, in f
    <line 3>
File "..." line 5, in torch_dynamo_resume_in_f_at_80
    <line 5>
File "..." line 10, in torch_dynamo_resume_in_f_at_120
    <line 10>

becomes
File "..." line 10, in f
    <line 10>
rv  )r   r„  rœ  rw   r“  )r”  Ú	new_stackr�  rw   s       r   Úcollapse_resume_framesrŸ    sh   € ô( “€IÛˆØ�>‰>Ñ!ÙÜ# E§J¡JÓ/ˆÞž )¨B¡-×"4Ñ"4¸Ó"<Ø!�b‰MØŽJà×Ñ˜UÖ#ñ ð Ðr!   c                óò   • SUR                    SUR                   SUR                   S3nUS-  nU[        5       -  n[	        X5      nUb,  US-  nUSR                  [        U5      5      -  nUS-  nUS-  nU$ )	NúWON'T CONVERT rÏ   ú line rÐ   z.========== TorchDynamo Stack Trace ==========
zY
========== The above exception occurred while processing the following code ==========

r°   z
==========)Úco_nameÚco_filenameÚco_firstlinenor	   r|  r@  r
   )rr  r4  rw  r�  re   ri   s         r   r.  r.  3  s�   € ð ˜Ÿ™˜ a¨×(8Ñ(8Ð'9¸À×@SÑ@SÐ?TÐTVÐWð ð ÐCÑC€CØŒ:‹<Ñ€CÜ Ó+€JØÑØðñ	
ˆð 	ˆr�w‰w”{ :Ó.Ó/Ñ/ˆØˆt‰ˆØˆx‰ˆà€Jr!   c           	     óZ   • [        U SS5       S[        U SS5       S[        U SS5       S3$ )	Nr£  z	<unknown>z (r¤  r¢  r¥  r   Ú))r—   )r4  s    r   Úformat_frame_infor¨  N  sF   € ä�4˜ KÓ0Ð
1ð 2Ü�D˜-¨Ó5Ð6ð 7Ü˜Ð.°Ó2Ð3°1ð	6ðr!   c                ó8   • U b  [        U 5      nSU SU 3$ SU 3$ )Nz6torch.compile intentionally decided to skip the frame z! and fall back to eager.
Reason: zVtorch.compile intentionally decided to skip the frame and fall back to eager.
Reason: )r¨  )r4  ÚreasonÚ
frame_infos      r   Úformat_skip_frame_messager¬  V  sB   € ØÑÜ& tÓ,ˆ
àDÀZÀLð QØ�hð ð	
ðØ�hð ð	
r!   c           	     ó¬   • [         R                  (       a  [        XX#5      $ SUR                   SUR                   SUR
                   S[        5        3$ )Nr¡  rÏ   r¢  z 
due to: 
)r   r‰   r.  r£  r¤  r¥  r	   )rr  r4  rw  r�  s       r   Úformat_error_msgr®  d  sS   € ô ‡~‡~Ü'¨°?ÓJÐJØ˜DŸL™L˜>¨¨4×+;Ñ+;Ð*<ð =Ø×ÑÐ˜=¬«¨ð8ð 8r!   )r   ro   r1   ro   )r	  útype[Exception]r1   ztype[ObservedException])
r	  r¯  r  r   r-   zOptional[list[Any]]r.   zOptional[dict[str, Any]]r1   r   )r  r   r1   r2   )r3  r�   r4  útypes.CodeTyper¦   ro   r)  ro   r*  ro   r+  ú	list[str]r1   r   )
r¦   ro   r)  ro   r*  ro   r+  r±  r1   ro   )r1   zdict[str, Any])r¦   ro   r1   rG   )r¦   ro   r)  ro   r*  ro   r+  r±  r,  r   r-  r±   r£   r±   r1   r   )rr  r�   re   ro   r1   ro   )rÐ   F)rr  r�   re   ro   r  r±   r1   r2   )r3  r�   r†  r   r1   z#tuple[Optional[str], Optional[int]])r1   r   r'   )rr  r�   r�  úOptional[DynamoFrameType]r1   rí   )r”  r   r1   r   )rw   ro   r1   rG   )r”  z!StackSummary | list[FrameSummary]r1   r   )NN)
rr  r�   r4  r°  rw  rG   r�  r²  r1   ro   )r4  r°  r1   ro   )r4  zOptional[types.CodeType]rª  ro   r1   ro   )Ú
__future__r   rL  Úloggingr™  r}   ÚtypingÚenumr   r   Ú	functoolsr   Úpathlibr   rz  r   r	   r
   r   r   r   r   r   r   Útorch._guardsrf   Útorch._utils_internalr   r°   r   Úutilsr   Útypesr   Úoutput_graphr   r  r   r   r   r    Ú	getLoggerr3   rN  r/  ÚgetArtifactLoggerr1  ÚRuntimeErrorr$   r<   rB   rE   rN   rQ   rU   rX   r[   r^   ra   rt   rz   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  ÚStopIterationÚLookupErrorÚ
IndexErrorÚGeneratorExitr~  ÚAttributeErrorÚNotImplementedErrorÚ	TypeErrorr  r
  r  r  Ú_subclassesÚfake_tensorÚDataDependentOutputExceptionÚDynamicOutputShapeExceptionÚUnsupportedOperatorExceptionÚUnsupportedFakeTensorExceptionÚ$UnsupportedMutationAliasingExceptionÚ!exceptions_allowed_to_be_fallbackr6  rD  rY  rA  Úobjectra  r²   re  rt  r‚  r‡  rŠ  r|  r‰  rœ  rŸ  r.  r¨  r¬  r®  r>   r!   r   Ú<module>rÑ     sQ  ðÝ "ðó2 Û Û 	Û Û ß Ý Ý ß XÕ Xß 9Ó 9ã Ý 1å Ý ö Ûå'å0Ý;ß9ôð ×Ò˜Ó!€Ø—>‘>×3Ñ3°H¸nÓMÐ ôB˜<ô Bô$	Ð3ô 	ô	Ð!5ô 	ô Ð*ô  ô	 ô 	ô /ô ô	 /ô 	ô	 ô 	ô	 _ô 	ô	Ð$ô 	ô
Ð,ô 
ô
Ð)ô 
ô	
Ð(ô 	
ô'Ð+ô 'ô"
EÐ,ô 
Eô$*Ð&ô *ôB	Ð+?ô 	ô	Ð)ô 	ô	Ð1ô 	ô
Ð2ô ô8�Dô 8ô�ô ô2Ð*ô ô	Ð2ô 	ô
Ð#7ô 
ô	�Yô 	ô	˜iô 	ô	Ð'ô 	ô

Ð,ô 

ôÐ 1ô ô 	Ð+ô 	ô
	Ð,ô 	ô
	Ð*ô 	ô
	Ð-ô 	ô	Ð.ô 	ô
	Ð,ô 	ô
	Ð"3ô 	ô	Ð)ô 	ð Ð,ØÐ$ØÐ"ØÐ(ØÐØÐ*ØÐ&ØÐ4ØÐ ð
Ð ô,ð !%Ø'+ñØðà!ðð ð	ð
 %ðð õô6.ð< 
×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×=Ñ=Ø	×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×@Ñ@Ø	×Ñ×!Ñ!×FÑFð%Ð !ð#Øð#à
ð#ð ð	#ð
 ð#ð ð#ð ð#ð ô#ðLØðàðð ðð ð	ð
 	ôñ4 �1Ñóó ðô4ñ0 ‹8€ð ØØñ"0àð"0ð ð"0ð ð	"0ð
 ð"0ð ð"0ð ð"0ð ð"0ð õ"0÷Nñ ô	ö.-ðb	Øð	Ø'ð	à(ô	ô)ð
 8<ðCØ	ðCØ4ðCàõCôBô ôðJ &*Ø'+ð	Ø	ðà
ðð #ðð %ð	ð
 	õô6ô
ð" &*Ø'+ð		8Ø	ð	8à
ð	8ð #ð	8ð %ð		8ð
 	ö	8r!   