ó
    CC˜jgŽ  ã                  ó¤  • 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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  S SK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 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 jr)\RT                  " \+5      r,\RZ                  R]                  \+S5      r/\0" S5      r1SŠS jr2 " S S\35      r4S‹S jr5SŒS jr6      S�S jr7 " S S\35      r8 " S S\85      r9 " S S\85      r: " S  S!\85      r; " S" S#\;5      r< " S$ S%\;5      r= " S& S'\;5      r> " S( S)\;5      r? " S* S+\;5      r@ " S, S-\;5      rA " S. S/\85      rB " S0 S1\85      rC " S2 S3\85      rD " S4 S5\85      rE " S6 S7\85      rF " S8 S9\F5      rG " S: S;\85      rH " S< S=\85      rI " S> S?\85      rJ " S@ SA\85      rK " SB SC\85      rL " SD SE\5      rM " SF SG\85      rN " SH SI\85      rO " SJ SK\85      rP " SL SM\85      rQ " SN SO\R5      rS " SP SQ\85      rT " SR SS\85      rU " ST SU\U5      rV " SV SW\U5      rW " SX SY\W5      rX " SZ S[\W5      rY " S\ S]\U5      rZ " S^ S_\U5      r[ " S` Sa\U5      r\ " Sb Sc\U5      r] " Sd Se\U5      r^ " Sf Sg\U5      r_\`\V\a\W\b\X\c\Z\d\Y\e\[\3\\\f\]\g\^0	rh " Sh Si\f5      ri " Sj Sk\35      rjSŽSl jrkSSSm.         S�Sn jjrlS�So jrmS�Sp jrnS‘Sq jro\Rà                  Râ                  Rä                  \Rà                  Râ                  Ræ                  \Rà                  Râ                  Rè                  \Rà                  Râ                  Rê                  \Rà                  Râ                  Rì                  4rw              S’Sr jrx          S“Ss jry\" S	St9S”Su j5       rzS•Sv jr{\|" 5       r}\}SwSwSx.               S–Sy jjr~ " Sz S{5      rS—S| jr€S˜S™S} jjr�      SšS~ jr‚S›S jrƒS›S€ jr„ Sœ     S�S� jjr…SžS‚ jr†SŸSƒ jr‡S S„ jrˆ  S¡         S¢S… jjr‰S£S† jrŠS¤S‡ jr‹  S¡         S¢Sˆ jjrŒg)¥é    )ÚannotationsN)ÚautoÚEnum)Ú	lru_cache)ÚPath)Ú
format_excÚformat_listÚFrameSummaryÚStackSummary)ÚAnyÚNoReturnÚTYPE_CHECKING)Úget_file_path_2é   )Úconfig)Úcounters)ÚVariableTracker)Ú	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    ÚŸC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/_dynamo/exc.pyÚexportdb_error_messager   T   s"   € ð	Ià
×
Ñ
˜C Ó
%ñ	&ðó    Úgraph_breaks)Ú_torch_dynamo_tracer_outputÚfirst_useful_frameÚframe_exec_strategyc                ó   • U $ ©N© ©Úargss    r   Ú_safe_exception_argsr*   i   s   € Ø€Kr    c                  ó8   ^ • \ rS rSr% S\S'   SU 4S jjrSrU =r$ )Ú_SerializedExceptioném   ÚstrÚ_dynamo_original_exception_typec                óš   >• [         TU ]  [        U5      5        [        U5      R                   S[        U5      R
                   3U l        g )NÚ.)ÚsuperÚ__init__r.   ÚtypeÚ
__module__Ú__qualname__r/   )ÚselfÚexcÚ	__class__s     €r   r3   Ú_SerializedException.__init__p   s@   ø€ Ü‰Ñœ˜S›Ô"ä�C‹y×#Ñ#Ð$ A¤d¨3£i×&<Ñ&<Ð%=Ð>ð 	Õ,r    )r/   )r8   ÚBaseExceptionÚreturnÚNone©Ú__name__r5   r6   Ú__firstlineno__Ú__annotations__r3   Ú__static_attributes__Ú__classcell__©r9   s   @r   r,   r,   m   s   ø‡ Ø%(Ó(÷
õ 
r    r,   c                ó   • [        U 5      $ r&   )r,   )r8   s    r   Ú_safe_inner_exceptionrF   w   s   € Ü Ó$Ð$r    c                óö   • 0 nU R                  5        Hb  u  p#U[        ;   d  [        U[        R                  5      (       a  S X'   M4  US:X  a$  [        U[
        5      (       a  [        U5      X'   M^  X1U'   Md     U$ )NÚinner_exception)ÚitemsÚ_EXCEPTION_STATE_ATTRS_TO_DROPÚ
isinstanceÚtypesÚ	FrameTyper;   rF   )ÚstateÚresultÚnameÚvalues       r   Ú_safe_exception_staterR   {   sh   € Ø€FØ—{‘{–}‰ˆØÔ1Ó1´ZÀÄuÇÁ×5WÑ5WØˆF‹LØÐ&Ó&¬:°e¼]×+KÑ+KÜ0°Ó7ˆF‹Là �4‹Lñ %ð €Mr    ÚTorchDynamoExceptionc                óV   • U R                  U 5      n[        R                  " U/UQ76   U$ r&   )Ú__new__r;   r3   )Úexc_typer)   r8   s      r   Ú#_reconstruct_torch_dynamo_exceptionrW   ‡   s,   € ð ×
Ñ
˜8Ó
$€CÜ×Ò˜3Ð& Ó&Ø€Jr    c                  óN   ^ • \ rS rSrSrSU 4S jjrS	S jrS
S jrSS jrSr	U =r
$ )rS   é�   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 r&   )r2   r3   r"   r$   )r7   r)   Úkwargsr9   s      €r   r3   ÚTorchDynamoException.__init__›   s%   ø€ Ü‰Ò˜$Ð) &Ò)ØFJˆÔ(Ø=AˆÕ r    c                ól   • [         [        U 5      [        U R                  5      4U R	                  5       4$ r&   )rW   r4   r*   r)   Ú__getstate__©r7   s    r   Ú
__reduce__ÚTorchDynamoException.__reduce__    s1   € ä/Ü�$‹ZÔ-¨d¯i©iÓ8Ð9Ø×ÑÓð
ð 	
r    c                ó,   • [        U R                  5      $ r&   )rR   Ú__dict__r_   s    r   r^   Ú!TorchDynamoException.__getstate__§   s   € Ü$ T§]¡]Ó3Ð3r    c               óB   • Ub  U R                   R                  U5        g g r&   )rc   Úupdate)r7   rN   s     r   Ú__setstate__Ú!TorchDynamoException.__setstate__ª   s   € ØÑØ�M‰M× Ñ  Õ'ð r    )r"   r$   )r)   r   r[   r   r<   r=   )r<   útuple[Any, ...]©r<   údict[str, Any])rN   zdict[str, Any] | Noner<   r=   )r?   r5   r6   r@   Ú__doc__r3   r`   r^   rg   rB   rC   rD   s   @r   rS   rS   �   s"   ø† ñ	÷Bô

ô4÷(ò (r    c                  ó   • \ rS rSrSrg)ÚInternalTorchDynamoErroré¯   r'   N©r?   r5   r6   r@   rB   r'   r    r   rn   rn   ¯   ó   † Úr    rn   c                  ó   • \ rS rSrSrg)ÚResumePrologueTracingErroré³   r'   Nrp   r'   r    r   rs   rs   ³   rq   r    rs   c                  ó@   ^ • \ rS rSr% S\S'   SS.SU 4S jjjrSrU =r$ )ÚRestartAnalysisé·   ú
str | NoneÚrestart_reasonN)ry   c               ó,   >• Xl         [        TU ]  " U6   g r&   )ry   r2   r3   )r7   ry   r)   r9   s      €r   r3   ÚRestartAnalysis.__init__º   s   ø€ Ø,ÔÜ‰Ò˜$Òr    )r)   r   ry   rx   r<   r=   r>   rD   s   @r   rv   rv   ·   s   ø‡ ØÓà@D÷  ÷  ð  r    rv   c                  ó   • \ rS rSrSrg)ÚSpeculationRestartAnalysisé¿   r'   Nrp   r'   r    r   r}   r}   ¿   rq   r    r}   c                  ó   • \ rS rSrSrSrg)ÚAutogradGradRestartAnalysiséÃ   z„Raised when autograd.grad consumed grad_fns that are returned.

On restart, autograd.grad will graph break instead of being traced.
r'   N©r?   r5   r6   r@   rl   rB   r'   r    r   r€   r€   Ã   s   † ôr    r€   c                  ó   • \ rS rSrSrSrg)ÚRequiresGradRestartAnalysiséÊ   zËRaised when a source-less requires_grad_() intermediate leaks as output.

On restart, requires_grad_() will graph break instead of being traced,
preserving partial acceleration for code before the call.
r'   Nr‚   r'   r    r   r„   r„   Ê   s   † ôr    r„   c                  ó   • \ rS rSrSrg)ÚUnspecializeRestartAnalysiséÒ   r'   Nrp   r'   r    r   r‡   r‡   Ò   rq   r    r‡   c                  ó   • \ rS rSrSrg)Ú CompileCollectiveRestartAnalysiséÖ   r'   Nrp   r'   r    r   rŠ   rŠ   Ö   rq   r    rŠ   c                  ó   • \ rS rSrSrg)ÚTensorifyScalarRestartAnalysiséÚ   r'   Nrp   r'   r    r   r�   r�   Ú   rq   r    r�   c                  ó   • \ rS rSrSrg)Ú	SkipFrameéâ   r'   Nrp   r'   r    r   r�   r�   â   rq   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&   ©r2   r3   ÚmsgÚtorchÚ_guardsÚTracingContextÚextract_stackÚ
real_stack©r7   r—   rœ   r9   s      €r   r3   ÚTorchRuntimeError.__init__ç   óH   ø€ Ü‰Ñ˜ÔØŒð Ñ%ð ð 	�ô —‘×-Ñ-×;Ñ;Ó=ð 	�r    ©r—   rœ   r&   ©r—   r.   rœ   úStackSummary | Noner<   r=   ©r?   r5   r6   r@   r3   rB   rC   rD   s   @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$ )ÚInvalidBackendéñ   c                ó˜   >• SU< 3nUU(       a#  SSR                  [        [        U5      5       S3OS-  nUS-  n[        TU ]  U5        g )NzInvalid backend: z, did you mean: z, Ú?r1   z< See `torch._dynamo.list_backends()` for available backends.)ÚjoinÚmapÚreprr2   r3   )r7   rP   Úsuggestionsr—   r9   s       €r   r3   ÚInvalidBackend.__init__ò   sX   ø€ Ø! $¡Ð*ˆØæð ˜tŸy™y¬¬T°;Ó)?Ó@ÐAÀÑCàñ	
ˆð
 	ÐMÑMˆÜ‰Ñ˜Õr    r'   r&   )rP   r.   r­   zlist[str] | Noner<   r=   r£   rD   s   @r   r¦   r¦   ñ   s   ø† ÷÷ r    r¦   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.
                )r2   r3   ÚtextwrapÚdedent)r7   r9   s    €r   r3   ÚResetRequired.__init__þ   s!   ø€ Ü‰ÑÜ�OŠOðóõ	
r    r'   ©r<   r=   r£   rD   s   @r   r°   r°   ý   s   ø† ÷
õ 
r    r°   c                  óF   ^ • \ rS rSr        SU 4S jjrSS jrSrU =r$ )ÚShortenTracebacki	  c               ó2   >• [         TU ]  " U0 UD6  Xl        g r&   )r2   r3   r#   )r7   r#   r)   r[   r9   s       €r   r3   ÚShortenTraceback.__init__
  s   ø€ ô 	‰Ò˜$Ð) &Ò)Ø"4Õr    c                ó&  • U R                   nU R                  b  Ub  [        R                  (       a  U $ UR                  U R                  La5  UR
                  nUc  [        S5      eUR                  U R                  La  M5  U R                  U5      $ )Nz#internal error, please report a bug)Ú__traceback__r#   r   ÚverboseÚtb_frameÚtb_nextÚAssertionErrorÚwith_traceback)r7   Útbs     r   Úremove_dynamo_framesÚ%ShortenTraceback.remove_dynamo_frames  s{   € Ø×ÑˆØ×"Ñ"Ñ*¨b©j¼F¿N¿NØˆKØ�k‰k ×!8Ñ!8Ò8Ø—‘ˆBØ‰zÜ$Ð%JÓKÐKð �k‰k ×!8Ñ!8Ô8ð ×"Ñ" 2Ó&Ð&r    ©r#   )r)   r   r#   útypes.FrameType | Noner[   r   r<   r=   )r<   ztyping.Self)r?   r5   r6   r@   r3   rÃ   rB   rC   rD   s   @r   r¸   r¸   	  s2   ø† ð5Øð5Ø.Dð5ØPSð5à	÷5÷'ò 'r    r¸   c                  ó<   ^ • \ rS rSr        SU 4S jjrSrU =r$ )ÚBackendCompilerFailedi  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 )Nr?   r©   zbackend=z	 raised:
z: rÅ   )ÚgetattrÚbackend_namerH   r4   r?   r2   r3   )r7   Ú
backend_fnrH   r#   r—   r9   s        €r   r3   ÚBackendCompilerFailed.__init__  sZ   ø€ ô $ J°
¸CÓ@ˆÔØ.ÔØ˜×*Ñ*Ñ-¨Z¼¸_Ó8M×8VÑ8VÐ7WÐWYÐZiÐYjÐkˆÜ‰Ñ˜ÐÒDr    )rË   rH   )rÌ   r   rH   Ú	Exceptionr#   rÆ   r<   r=   r£   rD   s   @r   rÈ   rÈ     s9   ø† ð	Eàð	Eð #ð	Eð 3ð		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$ )ÚUnsupportedi-  N)r   rœ   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)r2   r3   r˜   r™   rš   r›   rœ   r—   Ú
skip_frameÚcategoryÚadd_to_statsÚgb_typeÚlogged)r7   r—   rÖ   rÓ   r   rœ   r9   s         €r   r3   ÚUnsupported.__init__.  s[   ø€ ô 	‰Ñ˜ÔÞÜŸ™×5Ñ5×CÑCÓEˆJØ$ŒØŒØ$ŒØ$(ˆŒØ×ÑÔØ#*ŒØˆ�r    c                ó
  • U R                   c  [        S5      e[        U R                      U R                  ==   S-  ss'   [        U R                      U R                     S::  a  [        U R                      U R                  	 g g )Nz/category must be set before removing from statsr   r   )rÔ   rÀ   r   r—   r_   s    r   Úremove_from_statsÚUnsupported.remove_from_statsC  si   € Ø�=‰=Ñ Ü Ð!RÓSÐSÜ�—‘Ñ §¡Ó)¨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—   )r7   rÔ   s     r   rÕ   ÚUnsupported.add_to_statsJ  s    € Ø ŒÜ�Ñ˜4Ÿ8™8Ó$¨Ñ)Ô$r    )rÔ   rÖ   r×   r—   rœ   rÓ   )Ú F)r—   r.   rÖ   r.   rÓ   Úboolr   rx   rœ   r¢   r<   r=   r¶   )Úunimplemented)rÔ   r.   r<   r=   )	r?   r5   r6   r@   r3   rÚ   rÕ   rB   rC   rD   s   @r   rÐ   rÐ   -  sk   ø† ð
 Ø ðð !%Ø*.ñàðð ð	ð
 ðð ðð (ðð 
÷ñ ô*2÷*ô *r    rÐ   c                  ó   • \ rS rSrSrg)Ú$UnknownPropertiesDuringBackwardTraceiO  r'   Nrp   r'   r    r   râ   râ   O  rq   r    râ   c                  ó   • \ rS rSrSrg)ÚRecompileErroriS  r'   Nrp   r'   r    r   rä   rä   S  rq   r    rä   c                  ó   • \ rS rSrSrg)ÚInfiniteGeneratorErroriW  r'   Nrp   r'   r    r   ræ   ræ   W  ó   † âr    ræ   c                  ó   • \ rS rSrSrSrg)ÚCondOpArgsMismatchErrori\  z7
Internal error from cond() due to arguments mismatch.
r'   Nr‚   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)ÚUserErrorTypeib  r'   N)r?   r5   r6   r@   r   ÚDYNAMIC_CONTROL_FLOWÚANTI_PATTERNÚSTANDARD_LIBRARYÚCONSTRAINT_VIOLATIONÚDYNAMIC_DIMÚINVALID_INPUTÚINVALID_OUTPUTÚ*UNSUPPORTED_ALIASED_MUTATED_DYNAMIC_INPUTSrB   r'   r    r   rë   rë   b  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$ )Ú	UserErrorim  c                óz  >• Ub[  [        U[        5      (       d  [        S[        U5       35      eUR	                  S5      (       a  US-  nOUS-  nU[        U5      -  n[        TU ]  U5        [        R                  R                  R                  5       U l        SU l        SU l        Xl        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.
Nzcase_name must be a str, got r1   Ú Ú
F)rK   r.   rÀ   r4   Úendswithr   r2   r3   r˜   r™   rš   r›   rœ   rÓ   r×   Ú
error_typer—   Úmessage)r7   rú   r—   r   r9   s       €r   r3   ÚUserError.__init__n  s¥   ø€ ð Ñ Ü˜i¬×-Ñ-Ü$Ð'DÄTÈ)Ã_ÐDUÐ%VÓWÐWØ�|‰|˜C× Ñ Ø�s‘
‘à�t‘�ØÔ)¨)Ó4Ñ4ˆCÜ‰Ñ˜ÔÜŸ-™-×6Ñ6×DÑDÓFˆŒØˆŒØˆŒØ$ŒØŒØ�r    )rú   r×   rû   r—   rœ   rÓ   r&   )rú   rë   r—   r.   r   rx   r<   r=   r£   rD   s   @r   rõ   rõ   m  s0   ø† àKOðØ'ðØ.1ðØ>Hðà	÷ö 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Ò   )	r2   r3   r—   r˜   r™   rš   r›   rœ   r×   r�   s      €r   r3   ÚStepUnsupported.__init__Œ  s<   ø€ Ü‰Ñ˜ÔØŒÞÜŸ™×5Ñ5×CÑCÓEˆJØ$ŒØˆ�r    )r×   r—   rœ   r&   r¡   r£   rD   s   @r   rþ   rþ   ‹  s   ø† ÷÷ r    rþ   c                  ó   • \ rS rSrSrg)ÚUnsafeScriptObjectErrori•  r'   Nrp   r'   r    r   r  r  •  rq   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&   r–   r�   s      €r   r3   Ú%UncapturedHigherOrderOpError.__init__š  rŸ   r    r    r&   r¡   r£   rD   s   @r   r  r  ™  r¤   r    r  c                  ó   • \ rS rSrSrg)ÚFailOnRecompileLimitHiti§  r'   Nrp   r'   r    r   r  r  §  rq   r    r  c                  ó   • \ rS rSrSrg)ÚPackageErrori«  r'   Nrp   r'   r    r   r
  r
  «  rq   r    r
  c                  óB   ^ • \ rS rSrSS.       SU 4S jjjrSrU =r$ )ÚObservedExceptioni¯  N©rœ   c               ó–   >• [         TU ]  " U0 UD6  Ub  UU l        g [        R                  R                  R                  5       U l        g r&   )r2   r3   r˜   r™   rš   r›   rœ   ©r7   rœ   r)   r[   r9   s       €r   r3   ÚObservedException.__init__±  sJ   ø€ ô 	‰Ò˜$Ð) &Ò)ð Ñ%ð ð 	�ô —‘×-Ñ-×;Ñ;Ó=ð 	�r    ©r)   r   rœ   r¢   r[   r   r<   r=   r£   rD   s   @r   r  r  ¯  s3   ø† ð =Añ
Øð
Ø&9ð
ØLOð
à	÷
ö 
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$ )	ÚObservedUserStopIterationi¼  z
Any | NonerQ   Nr  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   )r2   r3   ÚlenrQ   r  s       €r   r3   Ú"ObservedUserStopIteration.__init__Â  s5   ø€ ô 	‰ÑÐ:ÀzÐÑRÜˆt‹9�q‹=Ø˜a™ˆD�JàˆD�Jr    ©rQ   r  r>   rD   s   @r   r  r  ¼  s9   ø‡ àÓð
 =AñØðØ&9ðØLOðà	÷ö r    r  c                  ó   • \ rS rSrSrg)ÚObservedLookupErroriÌ  r'   Nrp   r'   r    r   r  r  Ì  rç   r    r  c                  ó   • \ rS rSrSrg)ÚObservedIndexErroriÑ  r'   Nrp   r'   r    r   r  r  Ñ  rç   r    r  c                  ó   • \ rS rSrSrg)ÚObservedKeyErroriÖ  r'   Nrp   r'   r    r   r  r  Ö  rç   r    r  c                  ó   • \ rS rSrSrg)ÚObservedGeneratorExitiÛ  r'   Nrp   r'   r    r   r  r  Û  rq   r    r  c                  ó   • \ rS rSrSrg)ÚObservedAttributeErroriß  r'   Nrp   r'   r    r   r!  r!  ß  rç   r    r!  c                  ó   • \ rS rSrSrg)ÚObservedRuntimeErroriä  r'   Nrp   r'   r    r   r#  r#  ä  rç   r    r#  c                  ó   • \ rS rSrSrg)ÚObservedNotImplementedErrorié  r'   Nrp   r'   r    r   r%  r%  é  rq   r    r%  c                  ó   • \ rS rSrSrg)ÚObservedTypeErrorií  r'   Nrp   r'   r    r   r'  r'  í  rç   r    r'  c                  ó   • \ rS rSrSrg)ÚFakeTensorObservedExceptioniò  r'   Nrp   r'   r    r   r)  r)  ò  rq   r    r)  c                  ó   • \ rS rSrSrSrg)ÚUnhandledDescriptorErrori  ac  Raised by object_generic_getattr when a descriptor type is not
recognized by _resolve_descriptor_get.  Subclasses NotImplementedError
so callers that catch NotImplementedError (e.g., generic_getattr's
graph-break fallback) still work, but callers that want to
distinguish unhandled descriptors from other NotImplementedErrors can
catch this specifically.
r'   Nr‚   r'   r    r   r+  r+    s   † ôr    r+  c                  ó   • \ rS rSrSrSrg)ÚTritonUnavailableErrori  aŸ  
Raised by DeviceInterface.raise_if_triton_unavailable to signal that a
device cannot run Triton (e.g. no Triton backend was built for it).

Subclasses RuntimeError so existing callers that catch RuntimeError keep
working, while callers that only want to react to Triton unavailability -
such as has_triton() - can catch this specific type instead of swallowing
every RuntimeError, which would hide unrelated bugs.
r'   Nr‚   r'   r    r   r-  r-    s   † ôr    r-  c                óŽ   • U [         ;  a3  [        U S[        U 5      5      n[        SU S3[        40 5      [         U '   [         U    $ )Nr?   ÚObservedÚError)Úobserved_exception_maprÊ   r.   r4   r  )rV   rP   s     r   Úget_dynamo_observed_exceptionr2    sN   € ØÔ-Ó-Ü�x ¬S°«]Ó;ˆÜ+/Ø�t�f˜EÐ"Ô%6Ð$8¸"ó,
Ô˜xÑ(ô " (Ñ+Ð+r    )r)   r[   c               ó  • SSK Jn  U(       a9  U Vs/ s H+  n[        U[        5      (       a  UR	                  X5      OUPM-     nnO/ nUR	                  X5      R                  XU=(       d    0 5      nUR                  US 5        g s  snf )Nr   )ÚSourcelessBuilder)Úvariables.builderr4  rK   r.   ÚcreateÚcall_functionÚdo_raise)rV   Útxr)   r[   r4  ÚargÚargs_Úexception_vts           r   Úraise_observed_exceptionr=  #  s�   € õ 5æñ ó
â�ô 2<¸CÄ×1EÑ1EÐ×$Ñ$ RÔ-È3ÒNÙð 	ð 
ˆð
 (*ˆð %×+Ñ+¨BÓ9×GÑGØ
�6—<˜Ró€Lð ‡K�K�˜dÕ#ùò
s   ’2Bc                ó"   • [        [        X/S9  g)z:Raise a TypeError as an observed exception during tracing.r(   N)r=  Ú	TypeError©r9  r—   s     r   Úraise_type_errorrA  <  s   € äœY¨°Ó7r    c                ó"   • [        [        X/S9  g)z;Raise a ValueError as an observed exception during tracing.r(   N)r=  Ú
ValueErrorr@  s     r   Úraise_value_errorrD  A  s   € äœZ¨°%Ó8r    c                ó8   • U R                   R                  5         g r&   )Úexn_vt_stackÚclear_current_exception)r9  s    r   Úhandle_observed_exceptionrH  F  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)rP   Úencodingr'   r'   r    r   Ú<lambda>Ú,unimplemented_with_warning.<locals>.<lambda>  s   € Ø/Ø ò
r    c                 ó   >• T $ r&   r'   )Úgraph_break_msgs   €r   rO  rP  ƒ  s   ø€ ™?r    )Úmetadata_fnÚ
payload_fnz%sT)rÖ   ÚcontextÚexplanationÚhintsÚfrom_excÚlog_warning)Úformat_error_msg_verboser˜   Ú_loggingÚtrace_structuredÚgraph_breaks_logÚdebugrà   )ÚeÚcoderÖ   rU  rV  rW  Ú_unimplementedrR  s          @r   Úunimplemented_with_warningrb  l  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: rd  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³   rf  rg  rª   Úget_gbid_documentation_link)rÖ   rU  rV  rW  Ú	hints_strr—   Údocumentation_links          r   Úformat_graph_break_messagero  ’  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   r.   ÚopenÚjsonÚloadrÎ   ÚlogÚ	exceptionrI   )Ú
script_dirÚregistry_pathÚfÚregistryÚmappingÚkÚvÚentrys           r   Ú_load_gb_type_to_gb_id_maprƒ  ¬  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)rƒ  rg  )rÖ   ÚGRAPH_BREAK_SITE_URLÚgb_type_to_gb_id_maps      r   rl  rl  Ç  sJ   € ð 	Fð ô 6Ó7ÐàÓ&à#Ð$ BÐ';Ñ'D×'KÑ'KÈDÓ'QÐ&RÐRWÐXð	
ð r    F)rX  rY  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.
Nrœ   zJ

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

r  )	ro  ry  ÚwarningÚ_NOTHINGÚhasattrrœ   rK   rÐ   r—   )	rÖ   rU  rV  rW  rX  rY  rÓ   r—   Úpast_real_stacks	            r   rà   rà   â  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  )r7   rQ   s     r   r3   ÚKeyErrorMsg.__init__  s   € Ø�
r    c                ó,   • [        U R                  5      $ r&   )r.   rQ   r_   s    r   Ú__str__ÚKeyErrorMsg.__str__  s   € Ü�4—:‘:‹Ðr    c                ó"   • U R                  5       $ r&   )r“  r_   s    r   Ú__repr__ÚKeyErrorMsg.__repr__  s   € Ø�|‰|‹~Ðr    r  N)rQ   r   r<   r=   )r<   r.   )r?   r5   r6   r@   r3   r“  r–  rB   r'   r    r   r�  r�    s   † ôô÷r    r�  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   é   )rŒ  Ú	partitionr™  )r8   r—   Úliness      r   Ú!augment_exc_message_with_hop_namer�    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').
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"
rH   Ú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_enabledrŒ  r   r½   rH   r¡  r¢  r)   r.   r�  rK   ÚKeyErrorr�  )r8   r—   Úexportr£  rœ   Ú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)r_  r¯  r­  r®  s       r   Úget_exc_messager°  T  sJ   € ð €HØ€FØ×%Ñ%Ñ1Ø×1Ñ1×:Ñ:ˆØ×/Ñ/×6Ñ6ˆØ„LØÐÐr    c                 óö  • [        5       n [        R                  " S5      nUbÅ  UR                  n0 n[        R                  S:¼  aU  UR
                  S:¼  aE  [        UR                  5       5      nUR
                  S-  nU[        U5      :  a  XE   u    ocS'   US'   U R                  [        UR                  UR                  UR                  4SS0UD65        UR                  nUb  MÅ  U R                  5         U $ )	Nr   )é   é   r   rš  ÚcolnoÚ	end_colnoÚlookup_lineF)r   ÚsysÚ	_getframeÚf_codeÚversion_infoÚf_lastiÚlistÚco_positionsr  Úappendr
   Úco_filenameÚf_linenoÚco_nameÚf_backÚreverse)ÚstackÚframer`  r[   Ú	positionsÚidxr   s          r   Ú_extract_stack_with_positionsrÈ  `  sì   € ô ‹N€EÜ�MŠM˜!Ó€EØ
Ñ
Ø�|‰|ˆà!#ˆÜ×Ñ˜wÓ&¨5¯=©=¸AÓ+=Ü˜T×.Ñ.Ó0Ó1ˆIØ—-‘- 1Ñ$ˆCØ”S˜“^Ó#Ø=F¹^Ñ:��1˜W‘o v¨kÑ':Ø�‰ÜØ× Ñ Ø—‘Ø—‘ñð "ð	ð
 ñô	
ð —‘ˆð% Ó
ð& 
‡M�M„OØ€Lr    c                 ó(   • [        [        5       5      $ r&   )Úfilter_stackrÈ  r'   r    r   Úget_stack_above_dynamorË    s   € ÜÔ5Ó7Ó8Ð8r    c                ó„   • [        U SS 5      nUc  g Ub  [        5       nO
[        5       n[        R                  " X2-   5      $ )Nrœ   )rÊ   rË  r   Ú	from_list)r8   rÅ  rœ   Ú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­  Úliner¾  )rÄ  Ú
user_stackrÅ  s      r   rÊ  rÊ  ¤  sq   € Ü“€JÛˆØ�>‰>Ñ!ÙØ˜eŸn™nÓ,Øð Ðð ˜5Ÿ>™>Ó)Ø�J�JÐ4¸¿
¹
ÓBáØ×Ñ˜%Ö ñ ð Ðr    c                óv   • SSK Jn  [        R                  " U S3U 5      nU(       a  UR	                  S5      $ U $ )Nr   )ÚTORCH_DYNAMO_RESUME_IN_PREFIXz_(\w+)_at_\d+)Úresume_executionrÕ  ÚreÚmatchÚgroup)rP   rÕ  rØ  s      r   Úremove_resume_prefixrÚ  ´  s4   € Ý?ä�HŠHÐ5Ð6°oÐFÈÓM€EÞØ�{‰{˜1‹~ÐØ€Kr    c                óü   • [        5       nU  Hk  nUR                  c  M  [        UR                  5      nU(       a&  U(       a  US   R                  U:X  a  X!S'   X2l        MT  X2l        UR	                  U5        Mm     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>
rŸ  )r   r­  rÚ  rP   r¾  )rÄ  Ú	new_stackrÅ  rP   s       r   Úcollapse_resume_framesrÝ  ½  sm   € ô( “€IÛˆØ�>‰>Ñ!ÙÜ# E§J¡JÓ/ˆÞž )¨B¡-×"4Ñ"4¸Ó"<Ø!�b‰MØŽJàŒ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
==========)rÁ  r¿  Úco_firstlinenor   r¥  rª   r	   )r8   r`  r   rÅ  r—   rœ   s         r   rZ  rZ  à  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Ê   )r`  s    r   Úformat_frame_inforä  û  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ä  )r`  ÚreasonÚ
frame_infos      r   Úformat_skip_frame_messagerè    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½   rZ  rÁ  r¿  rá  r   )r8   r`  r   rÅ  s       r   Úformat_error_msgrê    sS   € ô ‡~‡~Ü'¨°?ÓJÐJØ˜DŸL™L˜>¨¨4×+;Ñ+;Ð*<ð =Ø×ÑÐ˜=¬«¨ð8ð 8r    )r   r.   r<   r.   )r)   ri   r<   ri   )r8   r;   r<   r,   )rN   rk   r<   rk   )rV   ztype[TorchDynamoException]r)   ri   r<   rS   )rV   útype[Exception]r<   ztype[ObservedException])
rV   rë  r9  r   r)   z(list[VariableTracker] | list[str] | Noner[   z!dict[str, VariableTracker] | Noner<   r   )r9  r   r—   r.   r<   r   )r9  r   r<   r=   )r_  rÎ   r`  útypes.CodeTyperÖ   r.   rU  r.   rV  r.   rW  ú	list[str]r<   r   )
rÖ   r.   rU  r.   rV  r.   rW  rí  r<   r.   rj   )rÖ   r.   r<   rx   )rÖ   r.   rU  r.   rV  r.   rW  rí  rX  r   rY  rß   rÓ   rß   r<   r   )r8   rÎ   r—   r.   r<   r.   )rø   F)r8   rÎ   r—   r.   r¨  rß   r<   r=   )r_  rÎ   r¯  r   r<   ztuple[str | None, int | None])r<   r   r&   )r8   rÎ   rÅ  úDynamoFrameType | Noner<   r¢   )rÄ  r   r<   r   )rP   r.   r<   r.   )rÄ  z!StackSummary | list[FrameSummary]r<   r   )NN)
r8   rÎ   r`  rì  r   rx   rÅ  rî  r<   r.   )r`  rì  r<   r.   )r`  ztypes.CodeType | Noneræ  r.   r<   r.   )�Ú
__future__r   rw  Úloggingr×  r·  r³   rL   ÚtypingÚenumr   r   Ú	functoolsr   Úpathlibr   r£  r   r	   r
   r   r   r   r   Útorch._guardsr˜   Útorch._utils_internalr   rÞ   r   Úutilsr   Útorch._dynamo.variablesr   r   Úoutput_graphr   Úsymbolic_convertr   r   r   r   Ú	getLoggerr?   ry  r[  ÚgetArtifactLoggerr]  Ú	frozensetrJ   r*   ÚRuntimeErrorr,   rF   rR   rW   rS   rn   rs   rv   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  r  r  r  r  r!  r#  r%  r'  r)  ÚStopIterationÚLookupErrorÚ
IndexErrorÚGeneratorExitr§  ÚAttributeErrorÚNotImplementedErrorr?  r1  r+  r-  r2  r=  rA  rD  rH  Ú_subclassesÚfake_tensorÚDataDependentOutputExceptionÚDynamicOutputShapeExceptionÚUnsupportedOperatorExceptionÚUnsupportedFakeTensorExceptionÚ$UnsupportedMutationAliasingExceptionÚ!exceptions_allowed_to_be_fallbackrb  ro  rƒ  rl  Úobjectr‹  rà   r�  r�  r«  r°  rÈ  rË  r¥  rÊ  rÚ  rÝ  rZ  rä  rè  rê  r'   r    r   Ú<module>r     s×  ðÝ "ð1óf Û Û 	Û 
Û Û Û ß Ý Ý ß IÓ Iß /Ñ /ã Ý 1å Ý ö Ý7Ý'å0Ý;ß9ôð ×Ò˜Ó!€Ø—>‘>×3Ñ3°H¸nÓMÐ ñ "+ðó"Ð ôô
˜<ô 
ô%ô	ðØ(ðØ0?ðàôô(˜<ô (ô@	Ð3ô 	ô	Ð!5ô 	ô Ð*ô  ô	 ô 	ô /ô ô /ô ô	 /ô 	ô	 ô 	ô	 _ô 	ô	Ð$ô 	ô
Ð,ô 
ô	Ð)ô 	ô	
Ð(ô 	
ô'Ð+ô 'ô$
EÐ,ô 
Eô$*Ð&ô *ôD	Ð+?ô 	ô	Ð)ô 	ô	Ð1ô 	ô
Ð2ô ô8�Dô 8ôÐ$ô ô<Ð*ô ô	Ð2ô 	ô
Ð#7ô 
ô	˜iô 	ô	Ð'ô 	ô

Ð,ô 

ôÐ 1ô ô 	Ð+ô 	ô
	Ð,ô 	ô
	Ð*ô 	ô
	Ð-ô 	ô	Ð.ô 	ô
	Ð,ô 	ô
	Ð"3ô 	ô	Ð)ô 	ô
	Ð"3ô 	ð
 Ð,ØÐ$ØÐ"ØÐ(ØÐØÐ*ØÐ&ØÐ4ØÐ ð
Ð ôÐ2ô ô	˜\ô 	ô,ð 6:Ø04ñ$Øð$à!ð$ð 3ð	$ð
 .ð$ð õ$ô28ô
9ô
.ð< 
×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×=Ñ=Ø	×Ñ×!Ñ!×>Ñ>Ø	×Ñ×!Ñ!×@Ñ@Ø	×Ñ×!Ñ!×FÑFð%Ð !ð#Øð#à
ð#ð ð	#ð
 ð#ð ð#ð ð#ð ô#ðLØðàðð ðð ð	ð
 	ôñ4 �1Ñóó ðô4ñ0 ‹8€ð ØØñ%0àð%0ð ð%0ð ð	%0ð
 ð%0ð ð%0ð ð%0ð ð%0ð õ%0÷Tñ ô	ö.-ðb	Øð	Ø'ð	à"ô	ôô>9ð
 59ðCØ	ðCØ1ðCàõCôBô ô ðL #'Ø$(ð	Ø	ðà
ðð  ðð "ð	ð
 	õô6ô
ð" #'Ø$(ð		8Ø	ð	8à
ð	8ð  ð	8ð "ð		8ð
 	ö	8r    