
    %VjiLd                       d dl mZ 	 d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ d dlmZmZmZmZ d dlZd dlmZ d	d
lmZ d	dlmZ erd dl Z d dlm!Z! d	dl"m#Z# d	dl$m%Z% d	dl m&Z& ddZ' ej(        e)          Z*ej+        ,                    e)d          Z- G d de.          Z/ G d de/          Z0 G d de/          Z1 G d de/          Z2 G d de2          Z3 G d d e2          Z4 G d! d"e2          Z5 G d# d$e2          Z6 G d% d&e/          Z7 G d' d(e/          Z8 G d) d*e/          Z9 G d+ d,e/          Z: G d- d.e/          Z; G d/ d0e;          Z< G d1 d2e/          Z= G d3 d4e=          Z> G d5 d6e/          Z? G d7 d8e=          Z@ G d9 d:e=          ZA G d; d<e=          ZB G d= d>e=          ZC G d? d@e@          ZD G dA dBe
          ZE G dC dDe=          ZF G dE dFe/          ZG G dG dHe=          ZH G dI dJe/          ZI G dK dLe/          ZJ G dM dNeK          ZL G dO dPeK          ZM G dQ dRe/          ZN G dS dTe/          ZO G dU dVeO          ZP G dW dXeO          ZQ G dY dZeQ          ZR G d[ d\eQ          ZS G d] d^eO          ZT G d_ d`eO          ZU G da dbeO          ZV G dc ddeO          ZW G de dfeO          ZXeYePeZeQe[eRe\eTe]eSe^eUe.eVe_eWe`eXi	ZaddjZbdddkddsZcddvZdeje        jf        jg        eje        jf        jh        eje        jf        ji        eje        jf        jj        eje        jf        jk        fZldd|Zm en            Zoeodd}ddZpddZqddZr ed	          dd            ZsddZteoddddZu G d d          ZvdddZwddZxddZy	 dddZzddZ{ddZ|ddZ}	 	 dddZ~	 	 dddZdS )    )annotationsN)autoEnum)	lru_cache)Path)extract_stack
format_excformat_listStackSummary)AnyNoReturnOptionalTYPE_CHECKING)get_file_path_2   )config)counters)	CompileId)DynamoTracerOutput)InstructionTranslatorBase)DynamoFrameType	case_namestrreturnc                4    d|                      dd          z   S )NzhFor more information about this error, see: https://pytorch.org/docs/main/generated/exportdb/index.html#_-)replacer   s    K/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/_dynamo/exc.pyexportdb_error_messager!   :   s%    	I


C
%
%	&    graph_breaksc                        e Zd Zd fdZ xZS )TorchDynamoExceptionargsr   kwargsr   Nonec                H     t                      j        |i | d | _        d S N)super__init___torch_dynamo_tracer_outputselfr&   r'   	__class__s      r    r,   zTorchDynamoException.__init__G   s-    $)&)))IM(((r"   r&   r   r'   r   r   r(   __name__
__module____qualname__r,   __classcell__r0   s   @r    r%   r%   F   sG        N N N N N N N N N Nr"   r%   c                      e Zd ZdS )InternalTorchDynamoErrorNr3   r4   r5    r"   r    r9   r9   L           Dr"   r9   c                      e Zd ZdS )ResumePrologueTracingErrorNr:   r;   r"   r    r>   r>   P   r<   r"   r>   c                  2     e Zd ZU ded<   ddd
 fd	Z xZS )RestartAnalysisOptional[str]restart_reasonN)rB   r&   r   r   r(   c               B    || _          t                      j        |  d S r*   )rB   r+   r,   )r/   rB   r&   r0   s      r    r,   zRestartAnalysis.__init__W   s%    ,$r"   )r&   r   rB   rA   r   r(   r3   r4   r5   __annotations__r,   r6   r7   s   @r    r@   r@   T   sX         !!!!CG                        r"   r@   c                      e Zd ZdS )SpeculationRestartAnalysisNr:   r;   r"   r    rG   rG   \   r<   r"   rG   c                      e Zd ZdS )UnspecializeRestartAnalysisNr:   r;   r"   r    rI   rI   `   r<   r"   rI   c                      e Zd ZdS ) CompileCollectiveRestartAnalysisNr:   r;   r"   r    rK   rK   d   r<   r"   rK   c                      e Zd ZdS )TensorifyScalarRestartAnalysisNr:   r;   r"   r    rM   rM   h   r<   r"   rM   c                      e Zd ZdS )	SkipFrameNr:   r;   r"   r    rO   rO   l   r<   r"   rO   c                      e Zd ZdS )TorchRuntimeErrorNr:   r;   r"   r    rQ   rQ   p   r<   r"   rQ   c                        e Zd Zd fdZ xZS )InvalidBackendnamer   r   r(   c                R    t                                          d|d           d S )NzInvalid backend: z=, see `torch._dynamo.list_backends()` for available backends.r+   r,   )r/   rT   r0   s     r    r,   zInvalidBackend.__init__u   s7    eeee	
 	
 	
 	
 	
r"   )rT   r   r   r(   r2   r7   s   @r    rS   rS   t   s=        
 
 
 
 
 
 
 
 
 
r"   rS   c                        e Zd Zd fdZ xZS )ResetRequiredr   r(   c                n    t                                          t          j        d                     d S )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/   r0   s    r    r,   zResetRequired.__init__|   s=    O 	
 	
 	
 	
 	
r"   r   r(   r2   r7   s   @r    rX   rX   {   s=        
 
 
 
 
 
 
 
 
 
r"   rX   c                  (     e Zd Zd fdZdd
Z xZS )ShortenTracebackr&   r   first_useful_frameOptional[types.FrameType]r'   r   r(   c               H     t                      j        |i | || _        d S r*   )r+   r,   r_   )r/   r_   r&   r'   r0   s       r    r,   zShortenTraceback.__init__   s/     	$)&)))"4r"   typing.Selfc                    | j         }| j        |t          j        r| S |j        | j        ur!|j        }|
J d            |j        | j        u!|                     |          S )Nz#internal error, please report a bug)__traceback__r_   r   verbosetb_frametb_nextwith_traceback)r/   tbs     r    remove_dynamo_framesz%ShortenTraceback.remove_dynamo_frames   sq    "*bjFNjKk!888B>>#H>>> k!888 ""2&&&r"   )r&   r   r_   r`   r'   r   r   r(   )r   rb   )r3   r4   r5   r,   rj   r6   r7   s   @r    r^   r^      sQ        5 5 5 5 5 5' ' ' ' ' ' ' 'r"   r^   c                        e Zd Zd
 fd	Z xZS )BackendCompilerFailed
backend_fnr   inner_exception	Exceptionr_   r`   r   r(   c                    t          |dd          | _        || _        d| j        dt          |          j         d| }t                                          ||           d S )Nr3   ?zbackend=z	 raised:
z: )r_   )getattrbackend_namern   typer3   r+   r,   )r/   rm   rn   r_   msgr0   s        r    r,   zBackendCompilerFailed.__init__   sq     $J
C@@.k*kk_8M8M8VkkZikk1CDDDDDr"   )rm   r   rn   ro   r_   r`   r   r(   r2   r7   s   @r    rl   rl      sG        	E 	E 	E 	E 	E 	E 	E 	E 	E 	Er"   rl   c                  8     e Zd Zddd fd	Zdd
ZdddZ xZS )UnsupportedNr   ru   r   r   rA   r   r(   c                   t                                          |           t          j        j                                        | _        || _        d | _        | 	                                 || _
        d S r*   )r+   r,   torch_guardsTracingContextr   
real_stackru   categoryadd_to_statsr   )r/   ru   r   r0   s      r    r,   zUnsupported.__init__   s^    -6DDFF'+(1r"   c                    | j         J t          | j                  | j        xx         dz  cc<   t          | j                  | j                 dk    rt          | j                  | j        = d S d S )Nr   r   r}   r   ru   r/   s    r    remove_from_statszUnsupported.remove_from_stats   sm    }((()))Q.)))DM"48,11'111 21r"   unimplementedr}   c                T    || _         t          |         | j        xx         dz  cc<   d S )Nr   r   )r/   r}   s     r    r~   zUnsupported.add_to_stats   s2     48$$$)$$$$$r"   )ru   r   r   rA   r   r(   r\   )r   )r}   r   r   r(   )r3   r4   r5   r,   r   r~   r6   r7   s   @r    rw   rw      sw        ?C 2 2 2 2 2 2 2 22 2 2 2* * * * * * * * *r"   rw   c                      e Zd ZdS )$UnknownPropertiesDuringBackwardTraceNr:   r;   r"   r    r   r      r<   r"   r   c                      e Zd ZdS )RecompileErrorNr:   r;   r"   r    r   r      r<   r"   r   c                        e Zd Zd fdZ xZS )ArgsMismatchErrorru   r   r   r(   c                J    t                                          |           d S r*   rV   r/   ru   r0   s     r    r,   zArgsMismatchError.__init__   !    r"   ru   r   r   r(   r2   r7   s   @r    r   r      =                 r"   r   c                        e Zd Zd fdZ xZS )AttributeMutationErrorru   r   r   r(   c                J    t                                          |           d S r*   rV   r   s     r    r,   zAttributeMutationError.__init__   r   r"   r   r2   r7   s   @r    r   r      r   r"   r   c                        e Zd Zd fdZ xZS )InfiniteGeneratorErrorru   r   r   r(   c                J    t                                          |           d S r*   rV   r   s     r    r,   zInfiniteGeneratorError.__init__   r   r"   r   r2   r7   s   @r    r   r      s=                 r"   r   c                        e Zd Zd fdZ xZS )SideEffectsErrorru   r   r   r(   c                J    t                                          |           d S r*   rV   r   s     r    r,   zSideEffectsError.__init__   r   r"   r   r2   r7   s   @r    r   r      r   r"   r   c                  $     e Zd ZdZd fdZ xZS )CondOpArgsMismatchErrorz?
    Internal error from cond() due to arguments mismatch.
    ru   r   r   r(   c                J    t                                          |           d S r*   rV   r   s     r    r,   z CondOpArgsMismatchError.__init__   r   r"   r   )r3   r4   r5   __doc__r,   r6   r7   s   @r    r   r      sG                  r"   r   c                      e Zd Z e            Z e            Z e            Z e            Z e            Z e            Z	 e            Z
 e            ZdS )UserErrorTypeN)r3   r4   r5   r   DYNAMIC_CONTROL_FLOWANTI_PATTERNSTANDARD_LIBRARYCONSTRAINT_VIOLATIONDYNAMIC_DIMINVALID_INPUTINVALID_OUTPUT*UNSUPPORTED_ALIASED_MUTATED_DYNAMIC_INPUTSr;   r"   r    r   r      sl        466466Ltvv466$&&KDFFMTVVN15...r"   r   c                  $     e Zd Z	 dd fd
Z xZS )	UserErrorN
error_typer   ru   r   r   rA   r   r(   c                    |It          |t                    sJ |                    d          r|dz  }n|dz  }|t          |          z  }t	                                          |           || _        || _        dS )aG  
        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. 
)
isinstancer   endswithr!   r+   r,   r   message)r/   r   ru   r   r0   s       r    r,   zUserError.__init__   s      i-----||C   s
t))444C$r"   r*   )r   r   ru   r   r   rA   r   r(   r2   r7   s   @r    r   r      sE        NR          r"   r   c                      e Zd ZdS )SkipCodeRecursiveExceptionNr:   r;   r"   r    r   r     r<   r"   r   c                      e Zd ZdS )RecompileLimitExceededNr:   r;   r"   r    r   r     r<   r"   r   c                      e Zd ZdS )UnsafeScriptObjectErrorNr:   r;   r"   r    r   r   
  r<   r"   r   c                  "     e Zd Zd	d
 fdZ xZS )UncapturedHigherOrderOpErrorNru   r   r|   Optional[StackSummary]r   r(   c                    t                                          |           || _        ||n"t          j        j                                        | _        d S r*   )r+   r,   ru   ry   rz   r{   r   r|   )r/   ru   r|   r0   s      r    r,   z%UncapturedHigherOrderOpError.__init__  sP     % J-;;== 	r"   r*   )ru   r   r|   r   r   r(   r2   r7   s   @r    r   r     sB        
 
 
 
 
 
 
 
 
 
 
r"   r   c                      e Zd ZdS )IncorrectUsageNr:   r;   r"   r    r   r     r<   r"   r   c                      e Zd ZdS )FailOnRecompileLimitHitNr:   r;   r"   r    r   r      r<   r"   r   c                      e Zd ZdS )PackageErrorNr:   r;   r"   r    r   r   $  r<   r"   r   c                      e Zd ZdS )ObservedExceptionNr:   r;   r"   r    r   r   (          Dr"   r   c                  ,     e Zd ZU ded<   d	 fdZ xZS )
ObservedUserStopIterationzOptional[Any]valuer&   r   r'   r   r(   c                    t                                          d           t          |          dk    r|d         | _        d S d | _        d S )Nzunhandled `raise StopIteration`r   )r+   r,   lenr   r.   s      r    r,   z"ObservedUserStopIteration.__init__3  sE    :;;;t99q==aDJJJDJJJr"   r1   rD   r7   s   @r    r   r   -  sK                  r"   r   c                      e Zd ZdS )ObservedLookupErrorNr:   r;   r"   r    r   r   ;  r   r"   r   c                      e Zd ZdS )ObservedIndexErrorNr:   r;   r"   r    r   r   @  r   r"   r   c                      e Zd ZdS )ObservedKeyErrorNr:   r;   r"   r    r   r   E  r   r"   r   c                      e Zd ZdS )ObservedGeneratorExitNr:   r;   r"   r    r   r   J  r<   r"   r   c                      e Zd ZdS )ObservedAttributeErrorNr:   r;   r"   r    r   r   N  r   r"   r   c                      e Zd ZdS )ObservedRuntimeErrorNr:   r;   r"   r    r   r   S  r   r"   r   c                      e Zd ZdS )ObservedNotImplementedErrorNr:   r;   r"   r    r   r   X  r<   r"   r   c                      e Zd ZdS )ObservedTypeErrorNr:   r;   r"   r    r   r   \  r   r"   r   exc_typetype[Exception]type[ObservedException]c                    | t           vrAt          | dt          |                     }t          d| dt          fi           t           | <   t           |          S )Nr3   ObservedError)observed_exception_maprr   r   rt   r   )r   rT   s     r    get_dynamo_observed_exceptionr   n  s]    ---xS]];;+/"t"""%6$8",
 ,
x( "(++r"   )r&   r'   txr   r&   Optional[list[Any]]r'   Optional[dict[str, Any]]r   c                   ddl m}  ||                               ||pg |pi           }|j                            |           t          |           )Nr   )BuiltinVariable)	variablesr   call_functionexn_vt_stackset_current_exceptionr   )r   r   r&   r'   r   exception_vts         r    raise_observed_exceptionr   w  sf     +***** #?8,,::2tzr6<UWXXLO)),777
'
1
11r"   r   r(   c                8    | j                                          d S r*   )r   clear_current_exception)r   s    r    handle_observed_exceptionr     s    2 O++-----r"   ero   codetypes.CodeTyperu   c                    t          | |          t          j                            dd fd           t                              d           t                              |           t          ||            d S )Nartifactc                     dddS Ndynamo_graph_break_reasonstring)rT   encodingr;   r;   r"   r    <lambda>z,unimplemented_with_warning.<locals>.<lambda>      / 
 
 r"   c                      S r*   r;   graph_break_msgs   r    r   z,unimplemented_with_warning.<locals>.<lambda>      ? r"   metadata_fn
payload_fn%s)from_exc)	format_error_msg_verbosery   _loggingtrace_structuredgraph_breaks_logdebuglogwarningr   )r   r   ru   r   s      @r    unimplemented_with_warningr    s     /q$77O	N##
 
 +*** $    4111KK#""""""r"   )r  r   r  rA   c                   | t           j                            dd          k    sJ |t          urt	          | |          |t	          | |          )NBREAKFr   )osenvironget_NOTHINGrw   )ru   r  r   s      r    r   r     sX     "*..%000000x#333A
cY
/
/
//r"   gb_typecontextexplanationhints	list[str]c                    t          | |          t          j                            dd fd           t                              d           t          ||||| d           d S )Nr   c                     dddS r   r;   r;   r"   r    r   z/unimplemented_v2_with_warning.<locals>.<lambda>  r   r"   c                      S r*   r;   r   s   r    r   z/unimplemented_v2_with_warning.<locals>.<lambda>  r   r"   r   r  Tr  log_warning)r  ry   r  r  r  r  unimplemented_v2)r   r   r  r  r  r  r   s         @r    unimplemented_v2_with_warningr    s     /q$77O	N##
 
 +*** $    4111Wg{EASWXXXXXXr"   c                    t          j        |d                                          }d                    d |D                       }t          j        |d                                          }|  d| d| d| d}|S )N    r   c              3  j   K   | ].}d t          j        |d                                          z   V  /dS )z  Hint: r  N)rZ   indentlstrip).0hints     r    	<genexpr>z-format_graph_break_message.<locals>.<genexpr>  sP        @D
X_T62299;;;     r"   z
  Explanation: z

  Developer debug context: )rZ   r!  r"  join)r  r  r  r  	hints_strru   s         r    format_graph_break_messager(    s     /+v66==??K		  HM    I ogv..5577G 	    
 $  C Jr"   )maxsizedict[str, Any]c                    	 t          t                                                    j        } t	          dt          |           d          }t          |          5 }t          j        |          }ddd           n# 1 swxY w Y   n4# t          $ r'}t                              d|           i }Y d}~nd}~ww xY wi }|                                D ]\  }}|D ]}|||d         <   |S )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).
     zgraph_break_registry.jsonNz%Error accessing the registry file: %sGb_type)r   __file__resolveparentr   r   openjsonloadro   r	  erroritems)	
script_dirregistry_pathfregistryr   mappingkventrys	            r    _load_gb_type_to_gb_id_mapr>    sB   	(^^++--4
'J!<
 
 -   	$Ay||H	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$   		91=== G   * *1 	* 	*E()GE)$%%	* Ns<   AB A;/B ;A??B A?B 
B8B33B8c                p    d}t                      }| |v r!| d||                              d           dS dS )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)r>  r"  )r  GRAPH_BREAK_SITE_URLgb_type_to_gb_id_maps      r    get_gbid_documentation_linkrD    s[     	F  677&&&#XX';G'D'K'KD'Q'QXXX	
 4r"   Fr  r  boolc                   t          | |||          }t          |           }|r|d| z  }|rt                              |           |t          urt          |          |t          |          )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.
    z9
 For more details about this graph break, please visit: )r(  rD  r	  r
  r  rw   )r  r  r  r  r  r  ru   documentation_links           r    r  r  6  s    & %Wg{E
J
JC4W== a`L^``` Cx#H,
c

r"   c                  &    e Zd Zd
dZddZddZd	S )KeyErrorMsgr   r   r   r(   c                    || _         d S r*   )r   )r/   r   s     r    r,   zKeyErrorMsg.__init__Z  s    


r"   r   c                *    t          | j                  S r*   )r   r   r   s    r    __str__zKeyErrorMsg.__str__]  s    4:r"   c                *    |                                  S r*   )rL  r   s    r    __repr__zKeyErrorMsg.__repr__`  s    ||~~r"   N)r   r   r   r(   )r   r   )r3   r4   r5   r,   rL  rN  r;   r"   r    rI  rI  Y  sP                   r"   rI  r   excexportc                |   dd l }d | _        t          |           }|Nt          |          dk    r;|d         | _        |dd                    |                    |                     z  }t          j        r&t          | d          r|d| j	         d| j	         dz  }t          j
        st          | d	          r|d
z  }t          | d          r^t          | j        d          rIt          | j        d          r!|d| j        j         d| j        j         dz  }n|d| j        j         dz  }t          | j                  dk    rdnt          | j        d                   }t!          | t"                    r*t%          ||z             f| j        dd          z   | _        d S ||z   }|f| j        dd          z   | _        d S )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').
r|   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"
rn   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_enabledhasattrrS  re   rn   rT  rU  r&   r   r   KeyErrorrI  )rO  ru   rP  rV  r|   old_msgnew_msgs          r    augment_exc_messager^  d  s,   '+C$$$J#j//A"5"5+5b>(Rbggi.C.CJ.O.O&P&PRRR# 
5F(G(G 
31D 3 3+3 3 3	

 > 
gc<88 
J	
 s%&& 7_, ,  3&77 
	U0C0Q U U030C0PU U UCC _0C0Q _ _ _C
 MMQ&&bbC,<,<G#x   -#..038ABB<?C-:,r"   
compile_idr   #tuple[Optional[str], Optional[int]]c                ^    d }d }| j         | j         j        }| j         j        }|| _        ||fS r*   )rW  filenamelinenor_  )r   r_  rb  rc  s       r    get_exc_messagerd    s?     HF%11:/6ALVr"   r   c                 8    t          t                                S r*   )filter_stackr   r;   r"   r    get_stack_above_dynamorg    s    (((r"   frameOptional[DynamoFrameType]r   c                    t          | dd           }|d S |t                      }nt                      }t          j        ||z             S )Nr|   )rr   rg  r   	from_list)rO  rh  r|   stack_above_dynamos       r    rX  rX    sZ     lD11Jt  455)^^!"4z"ABBBr"   stackc                    t                      }| D ]D}|j        
d|j        v r n0d|j        v s|j        r
d|j        v r/|                    |           E|S )Nconvert_frame
eval_frameztorch._dynamo.optimize()r   rb  lineappend)rm  
user_stackrh  s      r    rf  rf    s{    J 	! 	!>!en,,E5>))J *4
BB%    r"   rT   c                p    ddl m} t          j        | d|           }|r|                    d          S d S )Nr   )TORCH_DYNAMO_RESUME_IN_PREFIXz_(\w+)_at_\d+)resume_executionru  rematchgroup)rT   ru  rx  s      r    remove_resume_prefixrz    sL    ??????H5FFFMME {{1~~4r"   c                    t                      }| D ]U}|j        
t          |j                  }|r |r|d         j        |k    r||d<   ||_        @|                    |           V|S )a1  
    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>
    NrR  )r   rb  rz  rT   rr  )rm  	new_stackrh  rT   s       r    collapse_resume_framesr}    s    ( I $ $>!#EJ// 	$ 	$)B-"4"<"<!IbMEJJU####r"   rS  c                    d|j          d|j         d|j         d}|dz  }|t                      z  }t	          | |          }|4|dz  }|d                    t          |                    z  }|dz  }|dz  }|S )	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	   rX  r&  r
   )rO  r   rS  rh  ru   r|   s         r    r  r    s     	XWW(8WW@SWWW  CCC:<<CU++J	
 	rww{:..///txJr"   c           	         t           j        rt          | |||          S d|j         d|j         d|j         dt                       S )Nr  r   r  z 
due to: 
)r   re   r  r  r  r  r	   )rO  r   rS  rh  s       r    format_error_msgr    sk     ~ K'T?EJJJ8DL 8 84+; 8 88 8)38 8 8r"   )r   r   r   r   )r   r   r   r   )
r   r   r   r   r&   r   r'   r   r   r   )r   r   r   r(   )r   ro   r   r   ru   r   r   r   )ru   r   r  r   r   rA   r   r   )r   ro   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   r   rA   )r  r   r  r   r  r   r  r  r  r   r  rE  r   r   )r   F)rO  ro   ru   r   rP  rE  r   r(   )r   ro   r_  r   r   r`  )r   r   r*   )rO  ro   rh  ri  r   r   )rm  r   r   r   )rT   r   r   rA   )NN)
rO  ro   r   r   rS  rA   rh  ri  r   r   )
__future__r   r2  loggingr  rw  rZ   typingenumr   r   	functoolsr   pathlibr   rV  r   r	   r
   r   r   r   r   r   torch._guardsry   torch._utils_internalr   r,  r   utilsr   typesr   output_graphr   symbolic_convertr   r   r!   	getLoggerr3   r	  r  getArtifactLoggerr  RuntimeErrorr%   r9   r>   r@   rG   rI   rK   rM   rO   rQ   rS   rX   r^   rl   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   ro   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_fallbackr  objectr  r   r  r(  r>  rD  r  rI  r^  rd  rg  rX  rf  rz  r}  r  r  r;   r"   r    <module>r     s_   " " " " " "2   				 				                       J J J J J J J J J J J J 9 9 9 9 9 9 9 9 9 9 9 9     1 1 1 1 1 1              'LLL''''''000000;;;;;;&&&&&&    g!!>33HnMM N N N N N< N N N	 	 	 	 	3 	 	 		 	 	 	 	!5 	 	 	         *      	 	 	 	 	 	 	 		 	 	 	 	/ 	 	 		 	 	 	 	 	 	 		 	 	 	 	_ 	 	 		 	 	 	 	$ 	 	 		 	 	 	 	, 	 	 	
 
 
 
 
) 
 
 
	
 	
 	
 	
 	
( 	
 	
 	
' ' ' ' '+ ' ' '"
E 
E 
E 
E 
E, 
E 
E 
E* * * * *& * * *(	 	 	 	 	; 	 	 		 	 	 	 	) 	 	 	       
    [   
    [       {   
    /   8 8 8 8 8D 8 8 8       0	 	 	 	 	!5 	 	 		 	 	 	 	[ 	 	 		 	 	 	 	2 	 	 	
 
 
 
 
#7 
 
 
	 	 	 	 	Y 	 	 		 	 	 	 	i 	 	 		 	 	 	 	' 	 	 		 	 	 	 	, 	 	 	
     1   	 	 	 	 	+ 	 	 	
	 	 	 	 	, 	 	 	
	 	 	 	 	* 	 	 	
	 	 	 	 	- 	 	 		 	 	 	 	. 	 	 	
	 	 	 	 	, 	 	 	
	 	 	 	 	"3 	 	 		 	 	 	 	) 	 	 	 ,$"(*&4 
 , , , , !%'+2 2 2 2 2 2 . . . .< 
!>	!=	!>	!@	!F% !# # # #0 688 "*d0 0 0 0 0 0Y Y Y Y8   , 1   2   >      F       ,- ,- ,- ,- ,-^	 	 	 	) ) ) )
 8<C C C C CB          J &*'+	    < &*'+		8 	8 	8 	8 	8 	8 	8r"   