Ë
    ÃÓ^j†â ã                   óš*  — U d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	Z	d dl
Z	d dlmZ d dlmZmZmZmZ erd dlmZ d dlmZ e j,                  j/                  dd	«      d	k(  Zd
Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Zdedz  fd„Z defd„Z!defd„Z"e j,                  j/                  dd	«      d	k(  Z#d
Z$dZ%d
Z& e«       rdndZ' e(e j,                  j/                  dd«      «      Z)e(e*d<    edddd¬«      Z+ee*d<   d
Z,ee*d<    e«       Z-edz  e*d <    e«       Z.edz  e*d!<    ed"d#d¬$«      Z/ee*d%<   dZ0ee*d&<    e«       Z1edz  e*d'<    e«       Z2edz  e*d(<    ed)¬*«      Z3ee*d+<   d
Z4ee*d,<   i Z5e6e7e7f   e*d-<   dZ8e(dz  e*d.<   d/Z9ed0   e*d1<   e j,                  j/                  d2d3«      d	k(  Z:ee*d4<   e j,                  j/                  d5d3«      d	k(  Z;ee*d6<   e j,                  j/                  d7d3«      d	k(  Z<ee*d8<   e j,                  j/                  d9 e«       rd3nd	«      d	k(  Z=ee*d:<   e j,                  j/                  d;d	«      d	k(  Z>e j,                  j/                  d<d	«      d	k(  Z?d
Z@dZAe j,                  j/                  d=d	«      d	k(  ZBe j,                  j/                  d>«      d	k(  ZCe j,                  j/                  d?«      d	k(  ZDe j,                  j/                  d@d	«      d	k(  ZEe j,                  j/                  dA e«       rd3nd	«      d	k(  ZFdZGdZHdZIe j,                  j/                  dBd3«      d	k(  ZJe j,                  j/                  dC«      d	k(  ZKe j,                  j/                  dDdE«      ZLedF   e*dG<   dZMdZNd
ZO e"«       ZPd
ZQd
ZRdZSd
ZTdZUe	j¬                  j®                  j°                  e*dH<   dZYe	j¬                  j®                  j°                  e*dI<   dZZe	j¬                  j®                  j¶                  e*dJ<   dZ\e	j¬                  j®                  j°                  e*dK<   dZ]e	j¬                  j®                  j°                  e*dL<   dZ^e	j¬                  j®                  j°                  e*dM<   dZ_e	j¬                  j®                  jÀ                  dz  e*dN<   dZae	j¬                  j®                  jÀ                  dz  e*dO<   dZbd
Zcd
Zdd
ZedZfi Zge6e7e6e7ef   f   e*dP<   i Zhe6e7e6e7ef   f   e*dQ<   dZie j,                  j/                  dRd	«      d	k(  Zjd
ZkdZldZmd
dSdTddUœZne6e7ef   e*dV<   dWZoedX   e*dY<   d
Zpg Zqere7eerdZ   gerdZ   f   z     e*d[<   dZse(dz  e*d\<   dZtd
Zud Zve(e*d]<   d^Zwed_   e*d`<   dZxee(ge(f   dz  e*da<   dbZyedc   e*dd<   d
Zzee*de<   d^Z{edf   e*dg<   dZ|ee(ge(f   dz  e*dh<   dbZ}edc   e*di<   d^Z~edf   e*dj<   dZee(ge(f   dz  e*dk<   dbZ€d
Z�ee*dl<   dZ‚e(dz  e*dm<   dZƒe(dz  e*dn<   doZ„ eddpdq¬r«      Z…ee*ds<   e j,                  j/                  dt«      d	k(  Z†e j,                  j/                  du«      d	k(  Z‡ ed
dvdw¬r«      Zˆee*dx<   e j,                  j/                  dy«      d	k(  Z‰e j,                  j/                  dz«      d	k(  ZŠe j,                  j/                  d{«      d	k(  Z‹ ed|d
¬}«      ZŒedz  e*d~<    e( e �j                  dd€«      «      ZŽ e( e �j                  d�d‚«      «      Z�de(dz  fdƒ„Z� e�«       Z‘e(dz  e*d„<   e j,                  j/                  d…d	«      d	k(  Z’e j,                  j/                  d†d3«      d	k(  Z“e j,                  j/                  d‡d3«      d	k(  Z”e j,                  j/                  dˆ e«       sd	nd3«      d	k(  Z•ee*d‰<   dZ–dŠe*d‹<   g Z—ere7   e*dŒ<   g Z˜ere7   e*d�<   d
Z™ee*dŽ<   g Zšere(   e*d�<   e j,                  j/                  d�d‘«      �j7                  «       Zœde(dz  fd’„Z� e�«       Zže(dz  e*d“<   e j,                  j/                  d”d3«      d	k(  ZŸee*d•<   e	�j@                  �jB                  rd–nd—Z¢e j,                  j/                  d˜d–«      �j7                  «       Z£e j,                  j/                  d™e¢«      �j7                  «       Z¤e j,                  j/                  dše¢«      �j7                  «       Z¥e j,                  j/                  d›dœ«      �j7                  «       Z¦ed�   e*dž<   e j,                  j/                  dŸdœ«      �j7                  «       Z§ed�   e*d <   d
Z¨ee*d¡<   d
Z©ee*d¢<   dZªee*d£<   dZ«ee*d¤<   dbZ¬ed¥   e*d¦<   dZ­ee*d§<   dZ®ee*d¨<   e j,                  j/                  d©d3«      d	k(  Z¯ee*dª<   d
Z°d«Z±d
Z²e j,                  j/                  d¬«      d	k(  Z³e j,                  j/                  d­«      d	k(  Z´d®Zµd¯Z¶d¯Z·e j,                  j/                  d°«      d	k(  Z¸ e(e j,                  j/                  d±d²«      «      Z¹ eºe j,                  j/                  d³d´«      «      Z»e j,                  j/                  dµ«      d	k(  Z¼e j,                  j/                  d¶«      d	k(  Z½ e(e j,                  j/                  d·d	«      «      Z¾d¸„ Z¿d¹„ ZÀ G dº„ d»«      ZÁ G d¼„ d½«      ZÂe j,                  j/                  d¾d3«      d	k(  ZÃd¿e7defdÀ„ZÄd¿e7defdÁ„ZÅd¿e7defdÂ„ZÆe j,                  j/                  dÃdœ«      ZÇe	�j@                  �jB                  sd	nd3ZÈe j,                  j/                  dÄeÈ«      d	k(  ZÉe j,                  j/                  dÅd3«      d	k(  ZÊe j,                  j/                  dÆd3«      d	k(  ZËe j,                  j/                  dÇd	«      d	k(  ZÌe j,                  j/                  dÈ«      d	k(  ZÍdÉZÎdÊZÏdZÐe(dz  e*dË<   dÌZÑdÍZÒdZÓe(dz  e*dÎ<   dÏZÔdZÕe(dz  e*dÐ<    edÑd¬Ò«      ZÖee*dÓ<   d
Z×d
ZØd
ZÙdZÚe j,                  j/                  dÔ«      d	k(  ZÛdZÜeg dÕf   dz  e*dÖ<   d
ZÝe j,                  j/                  d×«      d	k(  ZÞee*dØ<   e j,                  j/                  dÙ«      d	k(  Zßee*dÚ<   e j,                  j/                  dÛdÜ«      Zàe j,                  j/                  dÝ e«       rd3nd	«      d	k(  Záee*dÞ<   e j,                  j/                  dßd	«      d	k(  Zâee*dà<   dZãee*dá<   dâZäe j,                  j/                  dãd	«      d	k(  ZådTZædäZçdåZèdäZédZêe(dz  e*dæ<   dÍZëdÍZìd
ZídÍZîd
Zïd
Zð e �j                  dçd	«      d	k(  Zñ e �j                  dè«      d	k(  Zò e �j                  dé«      d	k(  Zó e(e j,                  j/                  dêd «      «      Zôe j,                  j/                  dëd3«      d	k(  ZõdZöd
Z÷dZød
Zùd
Zúd
Zûd
ZüdTZýdTZþdZÿdì�Z dÍ�Zd
�Zd�Zd
�Zd�Zeºdz  e*dí<   dî�Zeºdz  e*dï<   dð�Ze(e*dñ<   d�Zd
�Z	dòe	�j                  v xs dóe	�j                  v �Z e«       xs �e�Ze j,                  j/                  dôd	«      d	k(  �Zd�Ze7dz  e*dõ<   d�Ze7dz  e*dö<    ed÷dÜ¬Ò«      �Ze7e*dø<   de7fdù„�Z �e«       �Ze7e*dú<   dû�Ze(e*dü<    edýdþd¬$«      �Zee*dÿ<    e�d d
¬Ò«      �Zee*�d<   d
�Zd€�Z�d�dg�Zere�d   e7z     e*�d<   d
�Zee*�d<   e j,                  j/                  �dd3«      d	k(  �Z�d�Ze(e*�d	<   �d
�Ze(e*�d<   �d�Zeºe*�d<    G �d„ �d«      �Z G �d„ �d«      �Zdef�d„�Z de(f�d„�Z! e«       rdn �e!«       �Z"e(dz  e*�d<    e�d�dd¬$«      �Z#ee*�d<    e�d¬}«      �Z$e(e*�d<    e!«       �Z%ee*�d<    e�d¬*«      �Z&ee*�d<    e�d�dd
¬$«      �Z'ee*�d<   e j,                  j/                  �d d3«      d	k(  �Z(ee*�d!<    e�d"¬*«      �Z)ee*�d#<   e j,                  j/                  �d$d3«      d	k(  �Z*ee*�d%<   e j,                  j/                  �d&d	«      d	k(  �Z+ee*�d'<   e j,                  j/                  �d(d	«      d	k(  �Z,ee*�d)<   e7dz  e*�d*<    e«       rv	 d �d+�l-�m.�Z. �e/rQ �e.�j`                  e �jb                  �je                  �e/�jg                  �d,e �jh                  «      �d-«      «      �Z5n �e.�j`                  �d-«      �Z5nd�Z5dâ�Z8e j,                  j/                  �d.d	«      d	k(  �Z9e j,                  j/                  �d/d	«      d	k(  �Z:d
�Z;d
�Z<d�Z=d
�Z>�d
�Z?�d0�Z@d
�ZAd�ZBd
�ZCee*�d1<   e j,                  j/                  �d2d3«      d	k(  �ZDd
�ZEd
�ZFd
�ZGd
�ZH e«        �ZIee*�d3<   e j,                  j/                  �d4dÜ«      �ZJ�eJdÜk7  �ZK�eJd	k(  rdÜn�eJ�ZLe j,                  j/                  �d5d«      �ZMe7dz  e*�d6<   e j,                  j/                  �d7«      d	k(  �ZNd
�ZOe j,                  j/                  �d8d3«      d	k(  �ZPee*�d9<   d
�ZQee*�d:<   d
�ZRee*�d;<   d
�ZSee*�d<<   d
�ZTee*�d=<   d
�ZUee*�d><   d
�ZVee*�d?<   d
�ZWee*�d@<   d
�ZXee*�dA<   e j,                  j/                  �dBd3«      d	k(  �ZYe j,                  j/                  �dCd3«      d	k(  �ZZee*�dD<   d�Z[ee*�dE<   i �Z\e6e7e6e7ef   f   e*�dF<    e(e j,                  j/                  �dG�dH«      «      �Z]e(e*�dI<    e(e j,                  j/                  �dJd3«      «      �Z^e(e*�dK<   d
�Z_ee*�dL<   de7dz  f�dM„�Z` e�dNdÜ¬Ò«      �Zae7e*�dO<    G �dP„ �dQ«      �Zb G �dR„ �dS«      �Zc G �dT„ �dU«      �Zd G �dV„ �dW«      �Ze G �dX„ �dY«      �Zf G �dZ„ �d[«      �Zg e�eg«       G �d\„ �d]�eg«      «       �Zh e�eg«       G �d^„ �d_�eg«      «       �Zi G �d`„ �da«      �Zj�dS�Zke�db   e*�dc<   �dU�Zle�dd   e*�de<   �df�Zme�df   e*�dg<   �dU�Zne�dU   e*�dh<    G �di„ �dj«      �Zo G �dk„ �dl«      �Zp�dme7�dne7de7f�do„�Zq G �dp„ �dq«      �Zrg �dr¢�Zsere7   e*�ds<   g �dt¢�Ztere7   e*�du<   dÖg�Zuere7   e*�dv<   g �Zveree	�jî                  e	�jî                  e	�jî                  gdf      e*�dw<    e �j                  �dxd	«      d	k(  �Zx G �dy„ �dz«      �Zy G �d{„ �d|«      �Zzerd �d}�l{­  G �d~„ �d«      �Z|e j,                  j/                  �d€d3«      d	k(  �Z}ee*�d�<   e j,                  j/                  �d‚d	«      d	k(  �Z~ee*�dƒ<    ee�jþ                  �e€   «       y# �e6�e7f$ r d�Z5Y �Œ‰w xY w(„  é    N)ÚCallable)ÚAnyÚcastÚLiteralÚTYPE_CHECKING)Ú	is_fbcode)ÚConfigÚget_tristate_envÚinherit_fields_fromÚinstall_config_module)ÚInductorChoices)ÚCUDAGraphPolicyÚTORCHINDUCTOR_INPLACE_PADDINGÚ1FÚreturnc                  ó   — t        d«      S )NÚ#TORCHINDUCTOR_FX_GRAPH_REMOTE_CACHE©r
   © ó    úa/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/config.pyÚfx_graph_remote_cache_defaultr      ó   € ÜÐAÓBÐBr   c                  ó�   — t         j                  j                  d«      dk(  ryt         j                  j                  d«      dk(  ryy )NÚTORCHINDUCTOR_VEC_ISA_OKr   TÚ0F©ÚosÚenvironÚgetr   r   r   Úvec_isa_ok_defaultr!      s7   € Ü	‡z�z‡~�~Ð0Ó1°SÒ8ØÜ	‡z�z‡~�~Ð0Ó1°SÒ8ØØr   c                  ó   — t        d«      S )NÚ#TORCHINDUCTOR_AUTOTUNE_REMOTE_CACHEr   r   r   r   Úautotune_remote_cache_defaultr$   %   r   r   c                  ó   — t        d«      S )NÚ+TORCHINDUCTOR_BUNDLED_AUTOTUNE_REMOTE_CACHEr   r   r   r   Ú%bundled_autotune_remote_cache_defaultr'   )   s   € ÜÐIÓJÐJr   c                  ó:   — t        dt        «       sd«      S d «      S )NÚ/TORCHINDUCTOR_BUNDLE_TRITON_INTO_FX_GRAPH_CACHET)r
   r   r   r   r   Ú)bundle_triton_into_fx_graph_cache_defaultr*   -   s&   € ÜØ9Ü”Kˆóð à%)óð r   c                  ó   — t        d«      S )NÚ&TORCHINDUCTOR_AUTOTUNE_AT_COMPILE_TIMEr   r   r   r   Ú autotune_at_compile_time_defaultr-   4   s   € ÜÐDÓEÐEr   c                  óÌ   — d} dt         j                  v r"t         j                  j                  d«      dk(  S t        «       r$t        j
                  j                  d«      }|| k  S y)Né   Ú&TORCHINDUCTOR_USE_STATIC_CUDA_LAUNCHERr   z-pytorch/inductor:static_cuda_launcher_versionT©r   r   r    r   ÚtorchÚ_utils_internalÚjustknobs_getval_int)ÚSTATIC_CUDA_LAUNCHER_VERSIONÚversions     r   Ústatic_cuda_launcher_defaultr7   8   s^   € Ø#$Ð à/´2·:±:Ñ=Ü�z‰z�~‰~ÐFÓGÈ3ÑNÐNÜ	ŒÜ×'Ñ'×<Ñ<Ø;ó
ˆð Ð6Ñ6Ð6ð r   c                  óÐ   — d} dt         j                  v r"t         j                  j                  d«      dk(  S t        «       r&d}t        j
                  j                  |«      }|| k  S y)Nr   ÚTORCHINDUCTOR_PROLOGUE_FUSIONr   z(pytorch/inductor:prologue_fusion_versionTr1   )ÚENABLE_PROLOGUE_FUSION_VERSIONÚjk_namer6   s      r   Úprologue_fusion_enabledr<   G   s\   € Ø%&Ð"à&¬"¯*©*Ñ4Ü�z‰z�~‰~Ð=Ó>À#ÑEÐEÜ	ŒØ<ˆÜ×'Ñ'×<Ñ<¸WÓEˆØÐ8Ñ8Ð8àr   Ú"TORCHDYNAMO_AUTO_FUNCTIONALIZED_V2Tú-/logs/dedicated_log_torch_compile_worker_rankÚ,TORCHINDUCTOR_PRECOMPILATION_TIMEOUT_SECONDSi,  Úprecompilation_timeout_secondsz0pytorch/remote_cache:enable_local_fx_graph_cacheÚ$TORCHINDUCTOR_FX_GRAPH_CACHE_DEFAULTÚTORCHINDUCTOR_FX_GRAPH_CACHE)ÚjustknobÚenv_name_defaultÚenv_name_forceÚdefaultÚfx_graph_cacheÚremote_gemm_autotune_cacheÚfx_graph_remote_cacheÚ!bundle_triton_into_fx_graph_cachez>pytorch/remote_cache:enable_non_blocking_remote_cache_write_v2Ú-TORCHINDUCTOR_NON_BLOCKING_REMOTE_CACHE_WRITE)rC   rE   rF   Únon_blocking_remote_cache_writeÚautotune_local_cacheÚautotune_remote_cacheÚbundled_autotune_remote_cachez*torch.compiler.config.force_disable_caches)ÚaliasÚforce_disable_cachesÚ&unsafe_skip_cache_dynamic_shape_guardsÚ!unsafe_marked_cacheable_functionsÚsleep_sec_TESTING_ONLYÚneeds_fixed_stride_order)rU   Úflexible_layoutÚ'triton_kernel_default_layout_constraintÚTORCHINDUCTOR_CPP_WRAPPERr   Úcpp_wrapperÚ(TORCHINDUCTOR_CPP_WRAPPER_BUILD_SEPARATEÚcpp_wrapper_build_separateÚTORCHINDUCTOR_FX_WRAPPERÚ
fx_wrapperÚ*TORCHINDUCTOR_CPP_CACHE_PRECOMPILE_HEADERSÚcpp_cache_precompile_headersÚTORCHINDUCTOR_ONLINE_SOFTMAXÚ$TORCHINDUCTOR_APPLY_GUMBEL_MAX_TRICKÚTORCHINDUCTOR_SIZE_ASSERTSÚTORCHINDUCTOR_NAN_ASSERTSÚ(TORCHINDUCTOR_RUNTIME_TRITON_NAN_ASSERTSÚTORCHINDUCTOR_SCALAR_ASSERTSÚTORCHINDUCTOR_ALIGNMENT_ASSERTSÚTORCHINDUCTOR_MEMORY_PLANNINGÚTORCHINDUCTOR_USE_FAST_MATHÚTORCHINDUCTOR_MEMORY_POOLÚintermediates)Únonerj   ÚoutputsÚcombinedÚmemory_poolÚpost_grad_custom_pre_passÚpost_grad_custom_post_passÚcustom_partitioner_fnÚjoint_custom_pre_passÚjoint_custom_post_passÚpre_grad_custom_passÚ_pre_fusion_custom_passÚ_post_fusion_custom_passÚpre_grad_fusion_optionsÚpost_grad_fusion_optionsÚ"TORCHINDUCTOR_DYNAMIC_SCALE_RBLOCKg-Cëâ6?é   )Úpre_gradÚ	precisionÚnum_iterationsÚrequires_optimizerÚfx_passes_numeric_checkÚ	heuristic)rF   ÚtritonÚatenr€   Úmixed_mm_choicez+torch._inductor.scheduler.BaseSchedulerNodeÚ'reorder_for_compute_comm_overlap_passesÚreorder_prefetch_limitÚ&size_threshold_for_succ_based_strategyrk   )rk   ÚallÚ	only_fsdpÚbucket_all_gathers_fxÚ.bucket_all_gathers_fx_bucket_size_determinatorrF   )rF   Ú
custom_opsÚcustom_ops_multidtypeÚbucket_all_gathers_bucket_modeÚdedup_reduce_scatters©rk   r‡   Úbucket_reduce_scatters_fxÚ2bucket_reduce_scatters_fx_bucket_size_determinatorÚ"bucket_reduce_scatters_bucket_modeÚbucket_all_reduces_fxÚ.bucket_all_reduces_fx_bucket_size_determinatorÚ!runtime_estimations_mms_benchmarkÚintra_node_bwÚinter_node_bwg      I@Ú*TORCHINDUCTOR_USE_EXPERIMENTAL_BENCHMARKERz-pytorch/inductor:use_experimental_benchmarker)rF   rE   rC   Úuse_experimental_benchmarkerÚ+TORCHINDUCTOR_DISTRIBUTED_MAX_AUTOTUNE_GEMMÚ&TORCHINDUCTOR_PIPELINE_GEMM_AUTOTUNINGÚ,TORCHINDUCTOR_USE_TORCH_PROFILER_BENCHMARKERz/pytorch/inductor:use_torch_profiler_benchmarkerÚuse_torch_profiler_benchmarkerÚTORCHINDUCTOR_MAX_AUTOTUNEÚ$TORCHINDUCTOR_MAX_AUTOTUNE_POINTWISEÚTORCHINDUCTOR_MAX_AUTOTUNE_GEMMÚ"TORCHINDUCTOR_INCREMENTAL_AUTOTUNE)rF   Úincremental_autotuneÚ%TORCHINDUCTOR_DEFAULT_AUTOTUNE_WARMUPé   Ú"TORCHINDUCTOR_DEFAULT_AUTOTUNE_REPéd   c                  ó‚   — t         j                  j                  d«      } | €y| j                  «       dv ry t	        | «      S )NÚ,TORCHINDUCTOR_AUTOTUNE_NUM_CHOICES_DISPLAYEDé
   r�   ©r   r   r    ÚlowerÚint©Úenv_vals    r   Ú'_autotune_num_choices_displayed_defaultr¯     s8   € Ü�j‰j�n‰nÐKÓL€GØ€ØØ‡}�}ƒ˜/Ñ)ØÜˆw‹<Ðr   Úautotune_num_choices_displayedÚ/TORCHINDUCTOR_MAX_AUTOTUNE_REPORT_CHOICES_STATSÚ<TORCHINDUCTOR_MAX_AUTOTUNE_PRUNE_CHOICES_BASED_ON_SHARED_MEMÚ-TORCHINDUCTOR_TRITON_DISABLE_DEVICE_DETECTIONÚTORCHINDUCTOR_GRAPH_PARTITIONÚgraph_partitionzCUDAGraphPolicy | NoneÚcudagraph_policyÚcustom_should_partition_opsÚcudagraph_unsafe_unbacked_opsÚ#max_autotune_allow_flexible_layoutsÚmulti_kernel_hintsÚ(TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDSzATEN,TRITON,CPPc                  ó~   — t         j                  j                  dd«      } | j                  «       dv ry t	        | «      S )NÚ*TORCHINDUCTOR_NVGEMM_MAX_PROFILING_CONFIGSÚ5r�   rª   r­   s    r   Ú%_nvgemm_max_profiling_configs_defaultr¿   r  s2   € Ü�j‰j�n‰nÐIÈ3ÓO€GØ‡}�}ƒ˜/Ñ)ØÜˆw‹<Ðr   Únvgemm_max_profiling_configsÚ'TORCHINDUCTOR_NVGEMM_SUPPLEMENT_CONFIGSÚnvgemm_supplement_configszATEN,TRITONÚATENÚ(TORCHINDUCTOR_MAX_AUTOTUNE_CONV_BACKENDSÚ3TORCHINDUCTOR_MAX_AUTOTUNE_BWD_WEIGHT_CONV_BACKENDSÚ2TORCHINDUCTOR_MAX_AUTOTUNE_BWD_INPUT_CONV_BACKENDSÚ,TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_SEARCH_SPACEÚDEFAULT)rÈ   Ú
EXHAUSTIVEÚmax_autotune_gemm_search_spaceÚ,TORCHINDUCTOR_MAX_AUTOTUNE_FLEX_SEARCH_SPACEÚmax_autotune_flex_search_spaceÚfallback_by_defaultÚselective_decomposeÚuse_dceÚuse_pre_grad_passes)ÚearlyÚlaterF   Úpre_grad_pass_timingÚuse_joint_graph_passesÚuse_post_grad_passesÚCUTEDSL_ENABLE_AUTOTUNINGÚcutedsl_enable_autotuningi    ÚTORCHINDUCTOR_SAVE_ARGSÚ!TORCHINDUCTOR_AUTOTUNE_IN_SUBPROCg      N@g        Ú#TORCHINDUCTOR_AUTOTUNE_MULTI_DEVICEÚ(TORCHINDUCTOR_COLLECTIVE_BENCHMARK_NRUNSÚ50Ú*TORCHINDUCTOR_COLLECTIVE_BENCHMARK_TIMEOUTÚ30Ú'TORCHINDUCTOR_COORDINATE_DESCENT_TUNINGÚ5TORCHINDUCTOR_COORDINATE_DESCENT_CHECK_ALL_DIRECTIONSÚ'TORCHINDUCTOR_COORDINATE_DESCENT_RADIUSc                  ód   — t         j                  j                  dd«      j                  d«      } | S )NÚ#TORCHINDUCTOR_AUTOHEURISTIC_COLLECTÚ ú,©r   r   r    Úsplit)Úcollect_envs    r   Ú _parse_autoheuristic_collect_envré     s)   € Ü—*‘*—.‘.Ð!FÈÓK×QÑQÐRUÓV€KØÐr   c                  ód   — t         j                  j                  dd«      j                  d«      } | S )NÚTORCHINDUCTOR_AUTOHEURISTIC_USEÚmixed_mmrå   ræ   )Úuse_envs    r   Ú_parse_autoheuristic_use_envrî     s(   € Ü�j‰j�n‰nÐ>À
ÓK×QÑQÐRUÓV€GØ€Nr   c                   ó4   — e Zd ZdZd e«       v Zd e«       v Zy)Úautoheuristic_collectzT
    Config for which autoheuristic optimizations should collect training data.
    Úpad_mmrì   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ré   rñ   rì   r   r   r   rð   rð     s%   „ ñð Ñ9Ó;Ð;€FØÑ=Ó?Ð?�Hr   rð   c                   óF   — e Zd ZdZd e«       v rdndZd e«       v rdZydZy)Úautoheuristic_usezU
    Config for which autoheuristic optimizations should use learned heuristics.
    rñ   TNrì   )rò   ró   rô   rõ   rî   rñ   rì   r   r   r   r÷   r÷     s/   „ ñð Ñ!=Ó!?Ñ?‰TÀT€FØ!Ñ%AÓ%CÑCˆt�HÈ�Hr   r÷   Ú'TORCHINDUCTOR_RUN_JIT_POST_COMPILE_HOOKÚnamec                 ó2   — t        | «      xs t        | «      S ©N)Úcollect_autoheuristicÚuse_autoheuristic©rù   s    r   Úrun_autoheuristicrÿ   $  s   € Ü  Ó&ÒAÔ*;¸DÓ*AÐAr   c                 óZ   — t        t        | «      rt        t        | «      S | t        «       v S rû   )Úhasattrrð   Úgetattrré   rþ   s    r   rü   rü   (  s,   € ÜÔ$ dÔ+ÜÔ,¨dÓ3Ð3ð Ô7Ó9Ð9Ð9r   c                 óª   — t        t        | «      r8t        t        | «      }|€$t        j                  j
                  j                  S |S | t        «       v S rû   )r  r÷   r  r2   Ú	_inductorÚconfigÚdeterministicrî   )rù   Úattrs     r   rý   rý   0  sK   € ÜÔ  $Ô'ÜÔ(¨$Ó/ˆØˆ<Ü—?‘?×)Ñ)×7Ñ7Ð7Øˆð Ô3Ó5Ð5Ð5r   Ú$TORCHINDUCTOR_AUTOHEURISTIC_LOG_PATHÚ!TORCHINDUCTOR_LAYOUT_OPTIMIZATIONÚTORCHINDUCTOR_FORCE_LAYOUT_OPTÚ#TORCHINDUCTOR_CACHE_SDPA_CONSTRAINTÚ TORCHINDUCTOR_KEEP_OUTPUT_STRIDEÚTORCHINDUCTOR_WARN_MIX_LAYOUTé   é   Úrealize_opcount_thresholdé2   é   Úrealize_acc_reads_thresholdé   Ú realize_acc_reads_size_thresholdÚ)TORCHINDUCTOR_DELAY_REALIZE_CHEAP_OUTPUTS©rE   rF   Údelay_realize_cheap_outputsÚ.TORCHINDUCTOR_ASSUME_UNALIGNED_FALLBACK_OUTPUTr   Úinductor_choices_classÚTORCHINDUCTOR_DEBUG_FUSIONÚdebug_fusionÚTORCHINDUCTOR_BENCHMARK_FUSIONÚbenchmark_fusionÚ#TORCHINDUCTOR_ENABLED_METRIC_TABLESrä   Ú(TORCHINDUCTOR_LOOP_ORDERING_AFTER_FUSIONÚloop_ordering_after_fusionÚ*TORCHINDUCTOR_LOOP_REINDEXING_AFTER_FUSIONÚloop_reindexing_after_fusionÚloop_index_inversion_in_fusionr©   Ú'TORCHINDUCTOR_BENCHMARK_EPILOGUE_FUSIONé@   çš™™™™™ñ?Úmax_fusion_unique_io_buffersÚTORCHINDUCTOR_SPLIT_REDUCTIONSÚTORCHINDUCTOR_DETERMINISTICÚTORCHINDUCTOR_BATCH_INVARIANTÚTORCHINDUCTOR_MIN_NUM_SPLITÚTORCHINDUCTOR_BENCHMARK_KERNELéú   Ú$combo_kernel_peak_memory_increase_gbgš™™™™™©?Ú&combo_kernel_peak_memory_pct_thresholdéÿÿÿÿÚcombo_kernel_max_distanceÚdevÚgitÚ0TORCHINDUCTOR_OPTIMIZE_SCATTER_UPON_CONST_TENSORÚadd_pre_grad_passesÚremove_pre_grad_passesÚTORCHINDUCTOR_DISABLED_PASSESÚdisabled_passesc                  ór   — dt         j                  v rt         j                  d   } nd} | dv s
J d| › �«       ‚| S )NÚTORCHINDUCTOR_WORKER_STARTÚ
subprocess)r<  ÚforkÚspawnzInvalid start method: )r   r   )Ústart_methods    r   Údecide_worker_start_methodr@  Y  sR   € Ø#¤r§z¡zÑ1Ü—z‘zÐ">Ñ?‰à#ˆØð ñ ð /ð 
  ˜~Ð.ó	/ð ð
 Ðr   Úworker_start_methodé   Úsmall_memory_access_thresholdz(pytorch/compiler:worker_suppress_loggingÚ%TORCHINDUCTOR_WORKER_SUPPRESS_LOGGINGÚworker_suppress_loggingÚLOG_TLPARSEÚlog_tlparseÚfuse_ddp_with_concat_opÚschedule_comm_wait).NÚ_fuse_ddp_communication_passesÚ_micro_pipeline_tpÚ)TORCHINDUCTOR_PARTITIONED_SCATTER_ENABLEDr/   Ú"partitioned_scatter_min_partitionsé€   Ú"partitioned_scatter_max_partitionsgš™™™™™¹?Ú!partitioned_scatter_memory_budgetc                   ó*   — e Zd ZU dZeed<   dZeed<   y)Ú_collectiveFÚauto_selecti   Ú#one_shot_all_reduce_threshold_bytesN)rò   ró   rô   rS  ÚboolÚ__annotations__rT  r¬   r   r   r   rR  rR  £  s   … Ø€K�ÓØ/9Ð'¨Ô9r   rR  c                   ór  — e Zd ZU dZdZeed<   dZedz  ed<   dZedz  ed<   dZ	e
dz  ed<   dZedz  ed<   dZeej                   j"                  gedz  f   dz  ed	<   d
Zed   ed<   dZed   ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZe
dz  ed<   dZeed<   dZedz  ed<   dZeed<   dZeed<   dZed   dz  ed<   dZ eed<   dZ!eed<   dZ"ed   ed<   dZ#eed <   dZ$eed!<   dZ%eed"<   d#Z&e
ed$<   dZ'eed%<   dZ(edz  ed&<   d'Z)eed(<   d)Z*eed*<   dZ+eed+<   d,Z,eed-<   dZ-eed.<   y)/Úaten_distributed_optimizationszDConfiguration for distributed optimization passes on ATen FX graphs.FÚenable_overlap_schedulingNÚcollective_bucketingÚinsert_overlap_depsÚmax_compute_pre_fetchÚcompute_overlap_multiplerÚcustom_runtime_estimationÚ
analytical)r_  Ú	benchmarkÚcollective_estimatorr`  Úcompute_estimatorÚ'profile_guided_estimations_profile_pathÚmax_memory_increase_gbÚmax_memory_increase_ratioÚmax_in_flight_gbÚmax_coll_distanceÚ!log_final_collectives_estimationsÚbucket_exposed_firstÚbucket_only_internode_commsTÚenable_fusion_regions)rF   r‹   rŒ   Ú	coalescedÚbucket_modeÚ&prioritize_bucketing_during_schedulingÚ
spmd_checkÚwarn)rp  ÚerrorÚspmd_mismatchÚ!overlap_scheduling_autofix_cyclesÚ!enable_low_contention_collectivesÚ!low_contention_skip_overlap_checkrB  Ú!low_contention_min_bytes_per_rankÚpre_bucketing_fsdp_collectivesÚ,pre_bucketing_fsdp_collectives_bucket_cap_mbg      $@Ú0pre_bucketing_fsdp_collectives_min_bucket_cap_mbg     @@Ú0pre_bucketing_fsdp_collectives_max_bucket_cap_mbÚ&pre_bucketing_fsdp_collectives_verboseg      ð?Ú@pre_bucketing_fsdp_collectives_saturation_calibration_multiplierÚallow_comms_decompositions).rò   ró   rô   rõ   rY  rU  rV  rZ  r[  r\  r¬   r]  Úfloatr^  r   r2   ÚfxÚNodera  r   rb  rc  Ústrrd  re  rf  rg  rh  ri  rj  rk  rm  rn  ro  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r   r   r   rX  rX  ¨  s  … ÙNð ',Ð˜tÓ+ð )-Ð˜$ ™+Ó,ð (,Ð˜ ™Ó+ð )-Ð˜3 ™:Ó,à.2Ð˜u t™|Ó2ð QUÐ˜x¨¯©¯©¨¸À¹Ð(EÑFÈÑMÓTð @LÐ˜'Ð";Ñ<ÓKð =HÐ�wÐ8Ñ9ÓGð ;?Ð+¨S°4©ZÓ>ð ,0Ð˜E D™LÓ/Ø.2Ð˜u t™|Ó2ð &*Ð�e˜d‘lÓ)ð %)Ð�s˜T‘zÓ(Ø.3Ð% tÓ3ð )-Ð˜$ ™+Ó,ð ).Ð Ó-ð
 #'Ð˜4Ó&ð 	ð ØÐMÑNÐQUÑUóð
 48Ð*¨DÓ7ð €J�Óð
 /5€M�7˜?Ñ+Ó4ð
 /4Ð% tÓ3ð /4Ð% tÓ3ð /4Ð% tÓ3ð .>Ð% sÓ=ð
 ,0Ð" DÓ/ð BFÐ0°%¸$±,ÓEð ?CÐ4°eÓBð ?DÐ4°eÓCð 49Ð*¨DÓ8ð ORÐDÀeÓQð (-Ð Ô,r   rX  c                  óR   — d} d}t         j                  j                  |«      }| |k\  S )a   
    TODO: Remove when parallel compiled is fully enabled internally. For rollout, use a
    knob to enable / disable. The justknob should not be performed at import, however.
    So for fbcode, we assign compile_threads to 'None' below and initialize lazily in
    async_compile.py.
    rz   z0pytorch/inductor:enable_parallel_compile_version)r2   r3   r4   )ÚENABLE_PARALLEL_COMPILE_VERSIONr;   r6   s      r   Ú#parallel_compile_enabled_internallyr„  .  s0   € ð '(Ð#à@€GÜ×#Ñ#×8Ñ8¸ÓA€GØ*¨gÑ5Ð5r   c                  óÞ  — ddl } | j                  t        «      }dt        j                  v r0t        t        j                  d   «      }|j                  d|«       |S t        j                  dk(  rd}|j                  d«       |S t        «       rt        «       sd}|j                  d«       |S t        j                  j                  «       }|sJ ‚t        d	|«      }|j                  d
|«       |S )a!  
    Here are the precedence to decide compile_threads
    1. User can override it by TORCHINDUCTOR_COMPILE_THREADS.  One may want to disable async compiling by
       setting this to 1 to make pdb happy.
    2. Set to 1 if it's win32 platform
    3. decide by the number of CPU cores
    r   NÚTORCHINDUCTOR_COMPILE_THREADSz!compile_threads set to %d via envÚwin32rz   z"compile_threads set to 1 for win32z"compile_threads set to 1 in fbcodeé    zcompile_threads set to %d)ÚloggingÚ	getLoggerrò   r   r   r¬   ÚinfoÚsysÚplatformr   r„  r2   Ú_utilsÚ	cpu_countÚmin)r‰  ÚlogÚcompile_threadsr�  s       r   Údecide_compile_threadsr“  <  sÜ   € ó ð ×
Ñ
œHÓ
%€Cà&¬"¯*©*Ñ4ÜœbŸj™jÐ)HÑIÓJˆØ�‰Ð4°oÔFð Ðô 
�‰˜Ò	 ØˆØ�‰Ð5Ô6ð Ðô 
ŒÔ@ÔBØˆØ�‰Ð5Ô6ð Ðô —L‘L×*Ñ*Ó,ˆ	ÙÐˆyÜ˜b )Ó,ˆØ�‰Ð,¨oÔ>àÐr   r’  z+pytorch/inductor:quiesce_async_compile_poolÚ(TORCHINDUCTOR_QUIESCE_ASYNC_COMPILE_POOLÚquiesce_async_compile_poolé<   Úquiesce_async_compile_timeÚuse_static_cuda_launcherz/torch._inductor.config.use_static_cuda_launcherÚuse_static_triton_launcherz:pytorch/inductor:static_launch_user_defined_triton_kernelsÚ7TORCHINDUCTOR_STATIC_LAUNCH_USER_DEFINED_TRITON_KERNELSÚ)static_launch_user_defined_triton_kernelsÚ)TORCHINDUCTOR_STRICT_STATIC_CUDA_LAUNCHERÚstrict_static_cuda_launcherz2torch._inductor.config.strict_static_cuda_launcherÚstrict_static_triton_launcherÚ#TORCHINDUCTOR_KEEP_STATIC_CUBIN_RAWÚkeep_static_cubin_rawÚ&TORCHINDUCTOR_USE_FAST_TRITON_LAUNCHERÚuse_fast_triton_launcherÚ(TORCHINDUCTOR_USE_LAUNCH_METADATA_SCHEMAÚuse_launch_metadata_schemaÚglobal_cache_dir)Úparutilú.zfb/cacheÚTORCHINDUCTOR_SHAPE_PADDINGÚ#TORCHINDUCTOR_COMPREHENSIVE_PADDINGé   Úforce_shape_padÚTORCHINDUCTOR_PERMUTE_FUSIONÚ_use_fp64_for_unbacked_floatsÚTORCHINDUCTOR_PROFILEÚTORCHINDUCTOR_PROFILE_OUTPUTÚprofile_bandwidth_outputÚ3TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILINGÚTORCHINDUCTOR_FREEZINGÚfreezingÚfreezing_discard_parametersÚdecompose_mem_bound_mmÚwrap_inductor_compiled_regionsÚassume_aligned_inputsÚassume_32bit_indexingÚ.unsafe_ignore_unsupported_triton_autotune_argsÚ"check_stack_no_cycles_TESTING_ONLYÚ$force_disable_cudagraph_TESTING_ONLYÚ*TORCHINDUCTOR_ENABLE_LINEAR_BINARY_FOLDINGÚTORCHINDUCTOR_ANNOTATE_TRAININGÚannotate_trainingÚ)enable_caching_generated_triton_templatesÚautotune_lookup_tableÚTORCHINDUCTOR_FILE_LOCK_TIMEOUTÚ600Úfile_lock_timeoutÚ)TORCHINDUCTOR_COMPILE_WORKER_WAIT_TIMEOUTÚcompile_worker_wait_timeoutÚenable_autograd_for_aotc                  ó¬   — d } t        «       rGt        j                  j                  dd «      }t        j                  j                  dd«      }|�d|› �} | S )NÚMAST_HPC_JOB_NAMEÚ	ROLE_RANKr   r>   )r   r   r   r    )Úlog_locÚmast_job_nameÚglobal_ranks      r   Úget_worker_log_pathrÍ  _  sL   € Ø€GÜ„{ÜŸ
™
Ÿ™Ð':¸DÓAˆÜ—j‘j—n‘n [°#Ó6ˆàÐ$ØEÀkÀ]ÐSˆGà€Nr   ÚTORCHINDUCTOR_WORKER_LOGPATHÚtorchinductor_worker_logpathc                   óü   — e Zd ZU ej                  j                  d«      dk(  Zeed<   dZ	e
ed<   dZe
ed<   ej                  j                  d«      �! e
ej                  j                  d«      «      nd	Ze
d	z  ed
<   y	)Úauto_chunkerÚTORCHINDUCTOR_AUTO_CHUNKERr   Úenablei   Úoutput_size_thresholdr  Úamplify_ratio_thresholdÚ TORCHINDUCTOR_CHUNKER_NUM_CHUNKSNÚ	num_chunk)rò   ró   rô   r   r   r    rÓ  rU  rV  rÔ  r¬   rÕ  r×  r   r   r   rÑ  rÑ  q  sz   … Ø—:‘:—>‘>Ð">Ó?À3ÑF€FˆDÓFð "-Ð˜3Ó,ð $%Ð˜SÓ$ð �:‰:�>‰>Ð<Ó=ÐIñ 	ˆB�J‰J�N‰NÐ=Ó>Ô?àð ˆs�T‰zô r   rÑ  c                   ó2  — e Zd ZU dZdZej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  Z	dZ
edz  ed<    eej                  j                  d	d
«      «      Zdej                  j                  dej                  dk(  rdnd«      fZedef   ed<   ej                  j                  d«      Zedz  ed<   ej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  ZdZedz  ed<   dZedz  ed<    ed«      Zedz  ed<   dZed   ed<    eej                  j                  dd«      «      Zej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  Zej                  j                  dd «      Z ej                  j                  d!d«      dk(  Z!d"Z" eej                  j                  d#d«      «      Z#ej                  j                  d$d«      Z$ej                  j                  d%d«      Z%d&Z&d"Z'ej                  j                  d'd«      dk(  Z(d"Z)ej                  j                  d(d«      dk(  Z*ej                  j                  d)d«      dk(  Z+d*Z,y)+Úcppzu
    Settings for cpp backend.
    This class provides a centralized location for managing cpp backend settings.
    r1  Ú$TORCHINDUCTOR_CPP_NO_REDUNDANT_LOOPSr   Ú!TORCHINDUCTOR_CPP_DYNAMIC_THREADSr   NÚsimdlenÚ TORCHINDUCTOR_CPP_MIN_CHUNK_SIZEÚ512ÚCXXÚdarwinzclang++zg++ÚcxxÚTORCHINDUCTOR_CPP_MARCHÚmarchÚ'TORCHINDUCTOR_CPP_ENABLE_KERNEL_PROFILEÚ TORCHINDUCTOR_CPP_WEIGHT_PREPACKÚinject_relu_bug_TESTING_ONLYÚinject_log1p_bug_TESTING_ONLYr   Ú
vec_isa_okÚoriginal_aten©r2   ré  Úinductor_nodeÚdescriptive_namesÚ,TORCHINDUCTOR_CPP_MAX_HORIZONTAL_FUSION_SIZEÚ16Ú-TORCHINDUCTOR_CPP_FALLBACK_SCATTER_REDUCE_SUMÚ-TORCHINDUCTOR_CPP_ENABLE_UNSAFE_MATH_OPT_FLAGÚ5TORCHINDUCTOR_CPP_ENABLE_FLOATING_POINT_CONTRACT_FLAGÚoffÚ)TORCHINDUCTOR_CPP_ENABLE_TILING_HEURISTICFÚ#TORCHINDUCTOR_CPP_GEMM_MAX_K_SLICESÚ%TORCHINDUCTOR_CPP_GEMM_CACHE_BLOCKINGÚ%TORCHINDUCTOR_CPP_GEMM_THREAD_FACTORSTÚ$TORCHINDUCTOR_CPP_USE_DECOMPOSE_TANHÚ%TORCHINDUCTOR_CPP_FORCE_INLINE_KERNELÚ-TORCHINDUCTOR_CPP_USE_CONSTEXPR_FOR_INT_ARRAYrª  )-rò   ró   rô   rõ   Úthreadsr   r   r    Úno_redundant_loopsÚdynamic_threadsrÜ  r¬   rV  Úmin_chunk_sizerŒ  r�  rá  Útupler�  rã  Úenable_kernel_profileÚweight_prepackræ  rç  r
   rè  rU  rì  r   Úmax_horizontal_fusion_sizeÚfallback_scatter_reduce_sumÚenable_unsafe_math_opt_flagÚ#enable_floating_point_contract_flagÚenable_tiling_heuristicsÚenable_grouped_gemm_templateÚgemm_max_k_slicesÚgemm_cache_blockingÚgemm_thread_factorsÚenable_loop_tail_vecÚenable_concat_linearÚuse_decompose_tanhÚuse_small_dequant_bufferÚforce_inline_kernelÚuse_constexpr_for_int_arrayÚuse_two_step_variance_thresholdr   r   r   rÙ  rÙ  ‚  sÃ  … ñð €Gð
 	�
‰
�‰Ð=¸sÓCÀsÑJð ð —j‘j—n‘nÐ%HÈ#ÓNÐRUÑU€Oà€GˆS�4‰ZÓÙ˜Ÿ™Ÿ™Ð(JÈEÓRÓS€Nð 	Ø
�
‰
�‰�u¨3¯<©<¸8Ò+C™iÈÓOð€Cˆˆt�SˆyÑ	ó ð Ÿ
™
Ÿ™Ð'@ÓA€Eˆ3�‰:ÓAð 	�
‰
�‰Ð@À#ÓFÈ#ÑMð ð
 —Z‘Z—^‘^Ð$FÈÓLÐPSÑS€Nð
 04Ð  #¨¡*Ó3Ø04Ð! 3¨¡:Ó4ñ /Ð/IÓJ€J��t‘ÓJð 	ð �wÐHÑIó ñ
 "%Ø
�
‰
�‰ÐEÀtÓLó"Ðð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð +-¯*©*¯.©.Ø?Àó+Ð'ð 	�
‰
�‰ÐBÀCÓHÈCÑOð ð
 $)Ð ñ ˜BŸJ™JŸN™NÐ+PÐRUÓVÓWÐð Ÿ*™*Ÿ.™.Ð)PÐRVÓWÐð Ÿ*™*Ÿ.™.Ð)PÐRVÓWÐð  Ðð !Ðð
 	�
‰
�‰Ð=¸sÓCÀsÑJð ð
  %Ðð 	�
‰
�‰Ð>ÀÓDÈÑKð ð 	�
‰
�‰ÐFÈÓLÐPSÑSð  ð
 '+Ñ#r   rÙ  c                   óF	  — e Zd ZU dZej
                  j                  d«      dk(  ZdZdZ	dZ
eeeedf   z     dz  ed<   d	ZdZdZdZ e«        Zd
ZdZedz  ed<   dZdZ edd¬«      Zeed<   dZeed<   dZeed<   dZdZdZ dZ!dZ"ej
                  j                  d e«       sdnd«      dk(  Z#eed<   dZ$edz  ed<   dZ%eed<   dZ&dZ' e(«       Z)edz  ed<   dZ*eed<   dZ+eed<    ejX                  dd«      dk(  Z-eed<   dZ.dZ/ej
                  j                  dd«      dk(  Z0ej
                  j                  dd«      dk(  Z1dZ2e3d    ed!<   ej
                  j                  d"d«      dk(  Z4ej
                  j                  d#d«      dk(  Z5eed$<   ej
                  j                  d%d«      dk(  Z6dZ7d&Z8d'Z9 eej
                  j                  d(d«      «      Z:e3d)   ed*<   ej
                  j                  d+d«      dk(  Z;ej
                  j                  d,d«      dk(  Z<d-Z=dZ>e?j€                  j‚                  rd.nd/ZBeed0<   dZCdZDdZEdZFeGdz  ed1<   dZHej
                  j                  d2d«      dk(  ZIej
                  j                  d3d«      dk(  ZJej
                  j                  d4d«      dk(  ZKej
                  j                  d5d«      dk(  ZLdZM eej
                  j                  d6e?j€                  j‚                  rdnd7«      «      ZN eej
                  j                  d8d9«      «      ZOej
                  j                  d:d«      dk(  ZPej
                  j                  d; e«       rdnd«      dk(  ZQd<ZRdZSedz  ed=<   ej
                  j                  d>d«      dk(  ZTdZUd?ZVej
                  j                  d@d«      dk(  ZWej
                  j                  dAd«      dk(  ZXi ZYeZeGef   edB<   dCZ[ej
                  j                  dDd«      dk(  Z\eedE<   ej
                  j                  dF«      Z]eGdz  edG<   ej
                  j                  dHd«      dk(  Z^eedI<   ej
                  j                  dJd«      dk(  Z_eedK<   ej
                  j                  dLd«      dk(  Z`eedM<   dZay)Nr�   z.
    Config specific to codegen/triton.py
    ÚTORCHINDUCTOR_CUDAGRAPHSr   TFN.Úcudagraph_capture_sizesr   rN  r  Ú"cudagraph_dynamic_shape_warn_limitÚ TORCHINDUCTOR_CUDAGRAPH_OR_ERRORr  Úcudagraph_or_errorÚ%reorder_for_reducing_graph_partitionsr'  Ú!cudagraph_partition_memory_budgetÚ&TORCHINDUCTOR_COALESCE_TILING_ANALYSISr   Úcoalesce_tiling_analysisÚ	max_tilesÚprefer_nd_tilingÚautotune_at_compile_timeÚautotune_with_sample_inputsÚtile_reductionsÚTORCHINDUCTOR_NATIVE_MATMULÚnative_matmulÚ!TORCHINDUCTOR_UNIQUE_KERNEL_NAMESÚ&TORCHINDUCTOR_UNIQUE_USER_KERNEL_NAMESré  rê  rì  Ú#TORCHINDUCTOR_PERSISTENT_REDUCTIONSÚ TORCHINDUCTOR_DECOMPOSE_SORT_OPSÚdecompose_sort_opsÚ$TORCHINDUCTOR_COOPERATIVE_REDUCTIONSrª  i €  ÚTORCHINDUCTOR_MULTI_KERNEL)r   rz   r/   é   Úmulti_kernelÚTORCHINDUCTOR_DIVISIBLE_BY_16Ú#TORCHINDUCTOR_EMIT_POINTER_RANGE_32é   rˆ  é   Úspill_thresholdræ  ÚENABLE_PERSISTENT_TMA_MATMULÚENABLE_TEMPLATE_TMA_STOREÚ%ENABLE_TMA_LOAD_FOR_TEMPLATE_EPILOGUEÚTORCHINDUCTOR_SKIP_L1Ú$TORCHINDUCTOR_NUM_DECOMPOSE_K_SPLITSÚ10Ú#TORCHINDUCTOR_DECOMPOSE_K_THRESHOLDÚ32ÚTORCHINDUCTOR_ENABLE_PDLÚ!TORCHINDUCTOR_MIX_ORDER_REDUCTIONrz   Úmix_order_reduction_split_sizeÚ5TORCHINDUCTOR_MIX_ORDER_REDUCTION_AUTOTUNE_SPLIT_SIZEr©   Ú4TORCHINDUCTOR_MIX_ORDER_REDUCTION_ALLOW_MULTI_STAGESÚTORCHINDUCTOR_NESTED_REDUCTIONÚdebug_dump_kernel_inputsr)  Ú%TORCHINDUCTOR_TRITON_PROTON_PROFILINGÚproton_profilingÚ&TORCHINDUCTOR_TRITON_PROTON_OUTPUT_DIRÚproton_output_dirÚ'TORCHINDUCTOR_TRITON_PROTON_GROUP_BY_SMÚproton_group_by_smÚ-TORCHINDUCTOR_TRITON_PROTON_SPLIT_INVOCATIONSÚproton_split_invocationsÚ-TORCHINDUCTOR_TRITON_PROTON_PER_CTA_OCCUPANCYÚproton_per_cta_occupancy)brò   ró   rô   rõ   r   r   r    Ú
cudagraphsÚcudagraph_treesÚcudagraph_skip_dynamic_graphsr  rþ  r¬   rV  Úcudagraph_min_partition_sizeÚslow_path_cudagraph_assertsÚ!cudagraph_trees_history_recordingÚcudagraph_trees_objgraphr   Ú cudagraph_support_input_mutationÚ#cudagraph_unexpected_rerecord_limitr  Úforce_cudagraph_syncÚforce_cudagraphs_warmupr	   r  rU  r  r  r~  Úfast_path_cudagraph_assertsÚskip_cudagraph_warmupÚdebug_sync_graphÚdebug_sync_kernelÚdense_indexingr  r  r  Úautotune_pointwiseÚautotune_cublasLtr-   r  r  r  Úgetenvr!  Ú tiling_prevents_pointwise_fusionÚ tiling_prevents_reduction_fusionÚunique_kernel_namesÚunique_user_kernel_namesrì  r   Úpersistent_reductionsr&  Úcooperative_reductionsÚforce_cooperative_reductionsÚuse_two_step_variance_min_numelr  r*  Údivisible_by_16Úemit_pointer_range_32Úmin_split_scan_rblockÚstore_cubinr2   r6   Úhipr/  Úuse_block_ptrÚuse_tensor_descriptorÚ)transpose_discontiguous_tensor_descriptorræ  r�  Úcodegen_upcast_to_fp32Úenable_persistent_tma_matmulÚenable_template_tma_storeÚ%enable_tma_load_for_template_epilogueÚskip_l1_cacheÚ.disallow_failing_autotune_kernels_TESTING_ONLYÚnum_decompose_k_splitsÚdecompose_k_thresholdÚ
enable_pdlÚmix_order_reductionÚ"mix_order_reduction_initial_xblockr:  Ú'mix_order_reduction_autotune_split_sizeÚ#mix_order_reduction_non_strict_modeÚmix_order_reduction_max_readsÚ&mix_order_reduction_allow_multi_stagesÚnested_reductionr>  ÚdictÚmax_kernel_dump_occurrencesr@  rB  rD  rF  rH  Údynamic_disable_pipeliningr   r   r   r�   r�     sÐ  … ñð
 —‘—‘Ð :Ó;¸sÑB€Jð €Oð %*Ð!ð DHÐ˜U 3¨¨s°C¨x©Ñ#8Ñ9¸DÑ@ÓGð $%Ð ð #'Ðð ).Ð%ð  %Ðñ ,5«; Ð$ð +.Ð'ð 67Ð&¨¨d©
Ó6ð !Ðð $Ðñ  &Ø9Øô Ð˜ó ð 37Ð)¨4Ó6ð
 03Ð% uÓ2ð #(Ðð "Ðð Ðð Ðð €Nð 	�
‰
�‰Ø4ÁÄ±cÐRUó	
ð ñ	ð ˜dó ð !€Iˆs�T‰zÓ ð #Ð�dÓ"ð Ðð Ðñ -MÓ,NÐ˜d T™kÓNð
 ).Ð Ó-ð "€O�TÓ!ð$ $˜"Ÿ)™)Ð$AÀ3ÓGÈ3ÑN€M�4ÓNð (,Ð$Ø'+Ð$ð 	�
‰
�‰Ð:¸CÓ@ÀCÑGð ð 	�
‰
�‰Ð?ÀÓEÈÑLð ð 	ð �wÐHÑIó ð 	�
‰
�‰Ð<¸cÓBÀcÑIð ð 	�
‰
�‰Ð9¸3Ó?À3ÑFð ˜ó ð 	�
‰
�‰Ð=¸sÓCÀsÑJð ð
 $)Ð ð '+Ð#Ø&+Ð#ñ ),Ø
�
‰
�‰Ð3°SÓ9ó)€L�'˜*Ñ%ó ð
 —j‘j—n‘nÐ%DÀcÓJÈcÑQ€Oð 	�
‰
�‰Ð<¸cÓBÀcÑIð ð  Ðð €Kð "'§¡×!2Ò!2™2¸€O�SÓ:ð €Mð "Ðð
 15Ð-ð
 04Ð  #¨¡*Ó3ð "Ðð 	�
‰
�‰Ð5°sÓ;¸sÑBð !ð
 !#§
¡
§¡Ð/JÈCÓ PÐTWÑ WÐð 	�
‰
�‰Ð>ÀÓDÈÑKð *ð —J‘J—N‘NÐ#:¸CÓ@ÀCÑG€Mð 6;Ð2ñ !Ø
�
‰
�‰Ø2¸5¿=¹=×;LÒ;L±CÐRVó	
óÐñ  Ø
�
‰
�‰Ð<¸dÓCóÐð —‘—‘Ð :¸CÓ@ÀCÑG€Jð 	�
‰
�‰Ð:Á9Ä;¹CÐTWÓXØñ	ð ð *+Ð&à15Ð" C¨$¡JÓ5à
�
‰
�‰ÐNÐPSÓTØñ	ð ,ð +0Ð'ð %'Ð!ð 	�
‰
�‰ÐMÈsÓSØñ	ð +ð —z‘z—~‘~Ð&FÈÓLÐPSÑSÐð 02Ð˜d 3¨ 8™nÓ1ð
 #$Ðð 	�
‰
�‰Ð>ÀÓDÈÑKð �dó ð %'§J¡J§N¡NØ0ó%Ð�s˜T‘zó ð
 	�
‰
�‰Ð@À#ÓFÈ#ÑMð ˜ó ð
 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜dó ð 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜dó ð "&Ñr   r�   c                   ó  — e Zd ZU dZdZeed<   dZej                  j                  dd«      dk(  Zej                  j                  dd«      dk(  Zej                  j                  d	d«      dk(  Zej                  j                  d
d«      dk(  Zej                  j                  dd«      Zej                  j                  dd«      Zed   ed<   ej                  j                  dd«      ZdZdZdZeed<   dZeed<   dZdZeed<   dZedz  ed<   dZeed<   i Zeeef   ed<   ej                  j                  dd«      dk(  Zeed<   dZeed<   ej                  j                  dd«      dk(  Z eed<    e!ej                  j                  dd«      «      Z"e!ed <   i Z#eee$f   ed!<   dZ%eed"<   dZ&eed#<   ej                  j                  d$d«      dk(  Z'eed%<   dZ(eed&<   dZ)edz  ed'<    e*«        Z+eed(<   dZ,edz  ed)<   dZ-edz  ed*<   dZ.edz  ed+<   i Z/ee0jb                  jd                  e3e   f   ed,<   dZ4e3e   dz  ed-<   ej                  j                  d.d«      dk(  Z5dZ6eed/<   dZ7edz  ed0<   dZ8ee3e   z  dz  ed1<   dZ9edz  ed2<   y)3Úaot_inductorz9
    Settings for Ahead-Of-Time Inductor Compilation
    FÚautotune_per_kernel_allocrä   ÚAOT_INDUCTOR_DEBUG_COMPILEr   r   ÚAOT_INDUCTOR_DEBUG_SYMBOLSÚ!AOT_INDUCTOR_ENABLE_FRAME_POINTERÚAOT_INDUCTOR_ENABLE_LINE_TABLESÚ&AOT_INDUCTOR_COMPILE_WRAPPER_OPT_LEVELÚO1Ú-AOT_INDUCTOR_DEBUG_INTERMEDIATE_VALUE_PRINTER)r   r   Ú2Ú3Ú debug_intermediate_value_printerÚ&AOT_INDUCTOR_FILTERED_KERNELS_TO_PRINTNÚuse_runtime_constant_foldingÚforce_mmap_weightsTÚpackageÚpackage_cpp_onlyÚdynamic_linkageÚmetadataÚ/AOTINDUCTOR_RAISE_ERROR_ON_IGNORED_OPTIMIZATIONÚ#raise_error_on_ignored_optimizationÚcheck_lowerboundÚDUMP_AOTI_MINIFIERÚdump_aoti_minifierÚAOTINDUCTOR_REPRO_LEVELr/   Úrepro_levelÚpresetsÚallow_stack_allocationÚuse_minimal_arrayref_interfaceÚ)AOT_INDUCTOR_WEIGHT_USE_CACHING_ALLOCATORÚweight_use_caching_allocatorÚpackage_constants_in_soÚ package_constants_on_disk_formatÚprecompile_headersÚembed_kernel_binaryÚemit_multi_arch_kernelÚmodel_name_for_generated_filesÚcustom_ops_to_c_shimsÚcustom_op_libsÚAOT_INDUCTOR_ENABLE_LTOÚlink_libtorchÚcross_target_platformÚaoti_shim_libraryÚaoti_shim_library_path):rò   ró   rô   rõ   r�  rU  rV  Úoutput_pathr   r   r    Údebug_compileÚdebug_symbolsÚenable_frame_pointerÚenable_line_tablesÚcompile_wrapper_opt_levelr‹  r   Úfiltered_kernel_namesÚserialized_in_specÚserialized_out_specr�  rŽ  Úuse_consts_asm_buildr�  r�  r‘  r’  r|  r�  r”  r•  r—  r¬   r™  rš  r   r›  rœ  rž  rŸ  r   r   r¡  r¢  r£  r¤  r¥  r2   Ú_opsÚ
OpOverloadÚlistr¦  Ú
enable_ltor¨  r©  rª  r«  r   r   r   r€  r€  ‡  s  … ñð ',Ð˜tÓ+ð €Kà—J‘J—N‘NÐ#?ÀÓEÈÑL€MØ—J‘J—N‘NÐ#?ÀÓEÈÑL€Mð 	�
‰
�‰Ð:¸CÓ@ÀCÑGð ð
 Ÿ™Ÿ™Ð(IÈ3ÓOÐSVÑVÐð !#§
¡
§¡Ø0°$ó!Ðð EGÇJÁJÇNÁNØ7¸óEÐ$ gÐ.@Ñ&Aó ð
 ŸJ™JŸN™NØ0°$óÐð Ðð Ðð */Ð  $Ó.ð  %Ð˜Ó$ð  Ðà€GˆTÓØ$(Ð�d˜T‘kÓ(ð !€O�TÓ ð  "€Hˆd�3˜�8‰nÓ!ð 	�
‰
�‰ÐHÈ#ÓNÐRUÑUð (¨ó ð "Ð�dÓ!ð  "Ÿz™zŸ~™~Ð.BÀCÓHÈCÑOÐ˜ÓOñ ˜2Ÿ:™:Ÿ>™>Ð*CÀQÓGÓH€K�ÓHð !€GˆT�#�s�(‰^Ó ð $)Ð˜DÓ(ð ,1Ð" DÓ0ð 	�
‰
�‰ÐBÀCÓHÈCÑOð ! $ó ð %)Ð˜TÓ(ð 48Ð$ c¨D¡jÓ7ñ $-£;˜Ð˜Ó.ð (,Ð˜ ™Ó+ð +/Ð˜D 4™KÓ.ð 26Ð" C¨$¡JÓ5ð EGÐ˜4 §
¡
× 5Ñ 5°t¸C±yÐ @ÑAÓFà'+€N�D˜‘I Ñ$Ó+ð —‘—‘Ð 9¸3Ó?À3ÑF€Jð €M�4Óð )-Ð˜3 ™:Ó,ð 15Ð�s˜T #™Y‘¨Ñ-Ó4Ø)-Ð˜C $™JÔ-r   r€  c                   ó   — e Zd ZU dZeed<   y)Úaot_inductor_modeFÚcompile_standaloneN)rò   ró   rô   r¼  rU  rV  r   r   r   r»  r»  L	  s   … ð  %Ð˜Ô$r   r»  c                   ó  — e Zd ZU dZdZed   ed<   dZdZe	j                  j                  e	j                  j                  de	j                  j                  e	j                  j                  ej"                  «      d«      «      «      ZdZedz  ed	<   g d
¢Zee   ed<    eeeeef    ed„ e	j                  j                  dd«      j3                  d«      D «       «      «      Zeeeef   ed<    eeeeef    ed„ e	j                  j                  ddj                  d„ eD «       «      «      j3                  d«      D «       «      «      Zeeeef   ed<   e	j                  j                  dd«      dk(  ZdZdZeed<   e	j                  j                  dd«      dk(  Ze ed<   e	j                  j                  d«      Z!e"dz  ed<   e	j                  j                  d«      Z#e"dz  ed<   e	j                  j                  d d«      Z$e"ed!<   e	j                  j                  d"d«      dk(  Z%e ed#<   e	j                  j                  d$d«      dk(  Z&e ed%<   e	j                  j                  d&d'«      Z'e"ed(<   d)Z(e ed*<   dZ)e ed+<   dZ*e ed,<   d)Z+e ed-<   y).Úcutlassz-
    Config specific to cutlass backend.
    ú-O1)ú-O0r¿  ú-O2ú-O3z-OSÚcompile_opt_levelFÚTORCHINDUCTOR_CUTLASS_DIRz../third_party/cutlass/NÚcutlass_max_profiling_configs)rz   r/   r  r  Ú%cutlass_max_profiling_swizzle_optionsc              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrû   ©r¬   ©Ú.0Úxs     r   ú	<genexpr>zcutlass.<genexpr>x	  s   è ø€ ò 
àô ��Fñ
ùó   ‚Ú+TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_SHAPEz2,1,1rå   Úcutlass_dynamic_cluster_shapec              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrû   rÈ  rÉ  s     r   rÌ  zcutlass.<genexpr>�	  s   è ø€ ò 
àô ��Fñ
ùrÍ  Ú.TORCHINDUCTOR_CUTLASS_DYNAMIC_CLUSTER_FALLBACKc              #   ó2   K  — | ]  }t        |«      –— Œ y ­wrû   )r�  )rÊ  Úvs     r   rÌ  zcutlass.<genexpr>…	  s   è ø€ ÒG Aœ˜QŸÑGùrÍ  Ú cutlass_dynamic_cluster_fallbackÚCUTLASS_EPILOGUE_FUSIONr   r   rz   Úcutlass_backend_min_gemm_sizeÚ/INDUCTOR_CUDA_BACKEND_GENERATE_TEST_RUNNER_CODEÚgenerate_test_runnerÚTORCHINDUCTOR_CUTLASS_ALLOWLISTÚcutlass_op_allowlist_regexÚTORCHINDUCTOR_CUTLASS_DENYLISTÚcutlass_op_denylist_regexÚ)TORCHINDUCTOR_CUTLASS_INSTANTIATION_LEVELÚcutlass_instantiation_levelÚ+TORCHINDUCTOR_CUTLASS_HASH_WITH_COMPILE_CMDÚcutlass_hash_with_compile_cmdÚ"TORCHINDUCTOR_CUTLASS_PRESCREENINGÚcutlass_prescreeningÚ!TORCHINDUCTOR_CUTLASS_ENABLED_OPSr‡   Úcutlass_enabled_opsTÚuse_binary_remote_cacheÚupload_to_binary_remote_cacheÚbinary_remote_cache_force_writeÚenable_caching_codegen),rò   ró   rô   rõ   rÃ  r   rV  Úenable_debug_infoÚuse_fast_mathr   ÚpathÚrealpathr   r    ÚjoinÚdirnamer2   Ú__file__Úcutlass_dirrÅ  r¬   rÆ  r¸  r   rþ  rç   rÏ  rÔ  Úcutlass_epilogue_fusion_enabledÚcutlass_tma_onlyrÖ  rØ  rU  rÚ  r�  rÜ  rÞ  rà  râ  rä  rå  ræ  rç  rè  r   r   r   r¾  r¾  U	  sÍ  … ñð EJÐ�wÐ@ÑAÓIð Ðð €Mð —'‘'×"Ñ"Ø
�
‰
�‰Ø'Ø�G‰G�L‰LØ—‘—‘ §¡Ó/Ø)óó	
ó€Kð 15Ð! 3¨¡:Ó4ò 8DÐ)¨4°©9ÓCá:>Øˆc�3˜ˆmÑÙñ 
à—Z‘Z—^‘^Ø=¸wóç‰e�C‹jô	
ó 	
ó;Ð! 5¨¨c°3¨Ñ#7ó ñ >BØˆc�3˜ˆmÑÙñ 
à—Z‘Z—^‘^Ø@Ø—‘ÑGÐ)FÔGÓGó÷ ‰e�C‹jô
ó 	
ó	>Ð$ e¨C°°c¨MÑ&:ó 	ð 	�
‰
�‰Ð0°#Ó6¸#Ñ=ð $ð
 Ðð *+Ð! 3Ó*ð
 	�
‰
�‰ÐHÈ#ÓNÐRUÑUð ˜$ó ð .0¯Z©Z¯^©^Ø)ó.Ð  d¡
ó ð -/¯J©J¯N©NØ(ó-Ð˜s T™zó ð (*§z¡z§~¡~Ø3°Só(Ð ó ð 	�
‰
�‰ÐDÀcÓJÈcÑQð " 4ó ð 	�
‰
�‰Ð;¸SÓAÀSÑHð ˜$ó ð  "Ÿz™zŸ~™~Ø+¨Uó Ð˜ó ð
 %)Ð˜TÓ(ð +0Ð! 4Ó/ð -2Ð# TÓ1ð $(Ð˜DÔ'r   r¾  c                   óf   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   dZdZ	dZ
edz  ed<   y)ÚcudaNÚarchr6   Úcuda_cxxFé   rÀ   )rò   ró   rô   rõ  r�  rV  r6   rö  Úenable_cuda_ltoÚenable_ptxas_inforÀ   r¬   r   r   r   rô  rô  ×	  sR   … ð
 €Dˆ#�‰*Óð
 €GˆS�4‰ZÓð  €Hˆc�D‰jÓð €Oð Ðð 01Ð  #¨¡*Ô0r   rô  c                   ó´   — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   ej                  j                  ej                  j                  dd«      «      Zy)ÚxpuNrõ  r6   Úoneapi_rootrÄ  rä   )rò   ró   rô   rõ  r�  rV  r6   rü  r   rë  rì  r   r    rð  r   r   r   rû  rû  ö	  sV   … ð €Dˆ#�‰*Óð €GˆS�4‰ZÓð #€K��t‘Ó"à—'‘'×"Ñ" 2§:¡:§>¡>Ð2MÈrÓ#RÓS�Kr   rû  c                   ó  — e Zd ZU g Zee   ed<   g d¢Zeed      ed<   dZ	ed   ed<   dZ
dZdZdZdZd	Zed	z  ed
<   ej"                  j%                  d«      Zej"                  j%                  dd«      dk(  Zeed<   d	Zed	z  ed<   d	Zed	z  ed<   d	Zed	z  ed<   dZeed<   d	Zee   d	z  ed<   dZeed<   dZeed<   ej"                  j%                  d«      dk(  Zeed<    eej"                  j%                  dd«      «      Zeed<   y	)Úrocmrõ  )Úgfx90aÚgfx942Úgfx950Úck_supported_archrÁ  )	rÀ  r¿  rÁ  rÂ  z-Osz-Ozz-Ominz-Ofastz-OmaxrÃ  FTNÚ	rocm_homeÚTORCHINDUCTOR_CK_DIRÚ-INDUCTOR_CK_BACKEND_GENERATE_TEST_RUNNER_CODEr   r   rØ  Ún_max_profiling_configsÚck_max_profiling_configsÚck_tile_max_profiling_configsÚuse_preselected_instancesÚkBatch_sweepr.  Úsplit_k_thresholdÚcontiguous_thresholdÚTORCHINDUCTOR_ORIGAMIÚorigamiÚTORCHINDUCTOR_ORIGAMI_TOPKÚ6Úorigami_topk) rò   ró   rô   rõ  r¸  r�  rV  r  r   rÃ  Úis_debugÚ
save_tempsrê  Úflush_denormalsÚprint_kernel_resource_usager  r   r   r    Úck_dirrØ  rU  r  r¬   r  r  r	  r
  r  r  r  r  r   r   r   rþ  rþ  
  se  … ð €Dˆ$ˆs‰)ÓòFÐ�t˜GÐ$@ÑAÑBó ð 	ð �wØLñó ð
 €Hð €Jð €Mð €Oð #(Ðð !€Iˆs�T‰zÓ ð �Z‰Z�^‰^Ð2Ó3€Fð 	�
‰
�‰ÐFÈÓLÐPSÑSð ˜$ó ð
 +/Ð˜S 4™ZÓ.ð ,0Ð˜c D™jÓ/ð 15Ð! 3¨¡:Ó4ð ',Ð˜tÓ+ð &*€L�$�s‘)˜dÑ"Ó)ð  Ð�sÓð !#Ð˜#Ó"ð, —J‘J—N‘NÐ#:Ó;¸sÑB€GˆTÓBñ
 ˜BŸJ™JŸN™NÐ+GÈÓMÓN€L�#ÔNr   rþ  )rÙ  r�   ÚhalideÚpallasÚcpu_backend)r�   r  r  Úcuda_backendr  Útpu_backendÚxpu_backendc                   ó   — e Zd ZdZy)ÚmtiaFN)rò   ró   rô   Údisable_welford_reductionr   r   r   r  r  w
  s   „ à %Ñr   r  c                   óJ   — e Zd ZU dZdZdZed   ed<   dZed   ed<   dZ	dZ
dZy	)
r  Úhostz	host-cudaÚAnderson2021)r"  ÚLi2018Ú	Adams2019ÚMullapudi2016Úscheduler_cudar$  Úscheduler_cpuFN)rò   ró   rô   Ú
cpu_targetÚ
gpu_targetr&  r   rV  r'  ÚassertsÚdebugÚscan_kernelsr   r   r   r  r  |
  sQ   … à€Jð €Jð
 	ð �GÐRÑSó ð 	ð �7ÐQÑRó ð
 €Gð €Eð �Lr   r  Úformat_env_nameÚlegacy_svg_env_namec                 óÔ   — | t         j                  v rt         j                  |    S t         j                  j                  |d«      dk(  ryt         j                  j                  dd«      S )Nr   r   ÚsvgÚTORCH_COMPILE_GRAPH_FORMATr   )r-  r.  s     r   Ú_get_debug_graph_formatr2  ˜
  sN   € Øœ"Ÿ*™*Ñ$Ü�z‰z˜/Ñ*Ð*Ü	‡z�z‡~�~Ð)¨3Ó/°3Ò6ØÜ�:‰:�>‰>Ð6¸Ó>Ð>r   c            	       ó6  — e Zd ZU dZej
                  j                  dd«      dk(  Zej
                  j                  dd«      dk(  ZdZ	e
dz  ed<   dZdZd	Zd	Zd	Zd	Zd	Zej
                  j                  d
d«      dk(  xs ej
                  j                  dd«      dk(  Z edd
«      Zej
                  j                  dd«      dk(  xs ej
                  j                  dd«      dk(  Z edd«      Zej
                  j                  dd«      Zej
                  j                  dd«      ZdZdZee
gdf   dz  ed<   ej
                  j                  dd«      dk(  Z eej
                  j                  dej
                  j                  dd«      «      «      Zeed<   y)Útracez6Configuration for torch.compile debug trace artifacts.ÚTORCH_COMPILE_DEBUGr   r   ÚTORCH_COMPILE_DEBUG_SAVE_REALNÚ	debug_dirFTÚINDUCTOR_POST_FUSION_SVGÚINDUCTOR_POST_FUSION_GRAPHÚ!INDUCTOR_POST_FUSION_GRAPH_FORMATÚINDUCTOR_ORIG_FX_SVGÚINDUCTOR_ORIG_FX_GRAPHÚINDUCTOR_ORIG_FX_GRAPH_FORMATÚINDUCTOR_DOT_GRAPH_SHAPE_SVGÚ INDUCTOR_LOG_URL_FOR_GRAPH_XFORMÚ
upload_tarÚLOG_AUTOTUNE_RESULTSÚINDUCTOR_PROVENANCEÚprovenance_tracking_level) rò   ró   rô   rõ   r   r   r    ÚenabledÚsave_real_tensorsr7  r�  rV  Ú	debug_logÚinfo_logÚfx_graphÚfx_graph_transformedÚir_pre_fusionÚir_post_fusionÚoutput_codeÚgraph_diagramr2  Úgraph_diagram_formatÚdraw_orig_fx_graphÚorig_fx_graph_diagram_formatÚdot_graph_shapeÚlog_url_for_graph_xformÚcompile_profiler@  r   Úlog_autotuning_resultsr¬   rC  r   r   r   r4  r4   
  sÈ  … Ù@ð �j‰j�n‰nÐ2°CÓ8¸CÑ?€Gð Ÿ
™
Ÿ™Ð'FÈÓLÐPSÑSÐð !€Iˆs�T‰zÓ ð €Ið €Hð €Hð  Ðð €Mð €Nð €Kð 	�
‰
�‰Ð1°3Ó7¸3Ñ>ò 	DØ�:‰:�>‰>Ð6¸Ó<ÀÑCð ñ 3Ø+Ø"óÐð 	�
‰
�‰Ð-¨sÓ3°sÑ:ò 	@Ø�:‰:�>‰>Ð2°CÓ8¸CÑ?ð ñ $;Ø'Øó$Ð ð —j‘j—n‘nÐ%CÀTÓJ€Oð !Ÿj™jŸn™nÐ-OÐQUÓVÐð €Oð 04€J�˜#˜ ˜Ñ%¨Ñ,Ó3àŸZ™ZŸ^™^Ð,BÀCÓHÈCÑOÐñ &)Ø
�
‰
�‰Ø! 2§:¡:§>¡>Ð2GÈÓ#Mó	
ó&Ð˜sô r   r4  )ztrace.upload_tarrr   rs   rt   zaot_inductor.repro_levelzaot_inductor.dump_aoti_minifierro   rp   rJ  ru   r¶   Ú_save_config_ignore)r4  zcuda.cutlass_dirzcutlass.cutlass_dirzxpu.cutlass_dirrA  r’  rp   ro   rr   rs   rt   rJ  ru   r¶   r»  rÓ   rG   rI   rM   rN   Ú_cache_config_ignore_prefixÚ_cache_config_factory_keysÚexternal_matmulÚ8TORCHINDUCTOR_WRITE_ARE_DETERMINISTIC_ALGORITHMS_ENABLEDc                   óJ   — e Zd ZU dZeeeeeef      f   dz  ed<   dZ	e
ed<   y)Úlookup_tableNÚtableTÚcheck_src_hash)rò   ró   rô   r\  r|  r�  r¸  r   rV  r]  rU  r   r   r   r[  r[  J  s4   … à48€Eˆ4��T˜$˜s C˜x™.Ñ)Ð)Ñ*¨TÑ1Ó8ð  €N�DÔr   r[  c                   ó†  — e Zd ZU dZeed<   dZedz  ed<   dZeed<   dZe	dz  ed<   dZ
e	dz  ed<   dZdZdZej                  j!                  d«      Zedz  ed	<   ej                  j!                  d
«      Zedz  ed<   dZdZed   dz  ed<   dZdZeed<    ej2                  d«      dk(  Z ej2                  dd«      ZdZdZy)Útest_configsFÚ%force_extern_kernel_in_multi_templateNÚforce_custom_op_decompositionÚforce_no_impl_groupingÚmax_mm_configsÚmax_flex_configsÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_NAME_REGEXÚautotune_choice_name_regexÚ(TORCHINDUCTOR_AUTOTUNE_CHOICE_DESC_REGEXÚautotune_choice_desc_regex)Úassertr‘  Útrack_memory_lifecycleTÚ assume_bucketing_reduces_latencyÚ,TORCHINDUCTOR_FORCE_FILTER_REDUCTION_CONFIGSr   Ú)TORCHINDUCTOR_DISTORT_BENCHMARKING_RESULTrä   )rò   ró   rô   r`  rU  rV  ra  rb  rc  r¬   rd  Úruntime_triton_dtype_assertÚruntime_triton_shape_assertÚstatic_cpp_dtype_assertr   r   r    rf  r�  rh  Ú*graphsafe_rng_func_ignores_fallback_randomrj  r   Úuse_libtorchrk  r[  Úforce_filter_reduction_configsÚdistort_benchmarking_resultÚbisect_pre_grad_graphÚ'bisect_keep_custom_backend_for_inductorr   r   r   r_  r_  U  s  … Ø27Ð)¨4Ó7ð 26Ð! 4¨$¡;Ó5ð $)Ð˜DÓ(à!%€N�C˜$‘JÓ%Ø#'Ð�c˜D‘jÓ'à"'ÐØ"'ÐØ#Ðð .0¯Z©Z¯^©^Ø2ó.Ð  d¡
ó ð .0¯Z©Z¯^©^Ø2ó.Ð  d¡
ó ð 27Ð.à>BÐ˜G OÑ4°tÑ;ÓBð €Lð .2Ð$ dÓ1ð 	ˆ�	‰	Ð@ÓAÀSÑHð #ð #, "§)¡)Ø3°Ró#Ðð "ÐØ.3Ñ+r   r_  )Ú*c                   ór   — e Zd ZU ej                  j                  dd«      dk(  Zeed<   dZ	eed<   dZ
eed<   y)	Úeager_numericsÚ'TORCHINDUCTOR_EMULATE_DIVISION_ROUNDINGr   r   Údivision_roundingFÚdisable_ftzÚuse_pytorch_libdeviceN)rò   ró   rô   r   r   r    r{  rU  rV  r|  r}  r   r   r   ry  ry  •  sA   … ð
 	�
‰
�‰Ð@À#ÓFÈ#ÑMð �tó ð €K�Óð #(Ð˜4Ô'r   ry  Ú%TORCHINDUCTOR_EMULATE_PRECISION_CASTSÚemulate_precision_castsÚ6TORCHINDUCTOR_EMULATE_PRECISION_CASTS_ON_SAVED_TENSORSÚ(emulate_precision_casts_on_saved_tensors(�  r   rŒ  Úcollections.abcr   Útypingr   r   r   r   r2   Ú!torch._inductor.custom_graph_passÚtorch._environmentr   Útorch.utils._config_moduler	   r
   r   r   Útorch._inductor.choicesr   Útorch._inductor.cudagraph_utilsr   r   r    Úinplace_paddingÚcan_inplace_pad_graph_inputrU  r   r!   r$   r'   r*   r-   r7   r<   Úenable_auto_functionalized_v2r+  Údisable_progressÚverbose_progressÚworker_log_pathr¬   r@   rV  rG   rH   rI   rJ   rL   rM   rN   rO   rQ   rR   rS   r|  r�  rT   rW   rY   r[   r]   r_   Úonline_softmaxÚapply_gumbel_max_trickÚdceÚstatic_weight_shapesÚsize_assertsÚnan_assertsÚruntime_triton_nan_assertsÚscalar_assertsÚalignment_assertsÚpick_loop_ordersÚinplace_buffersÚallow_buffer_reuseÚmemory_planningrê  rn   Úbenchmark_harnessÚepilogue_fusionÚepilogue_fusion_with_atomic_addÚprologue_fusionÚepilogue_fusion_firstÚ*epilogue_fusion_user_defined_triton_kernelÚpattern_matcherÚb2b_gemm_passro   r  Úcustom_graph_passÚCustomGraphPassTyperp   rq   ÚCustomPartitionerFnTyperr   rs   rt   ru   ÚCustomSchedulerPassCallablerv   Úsplit_cat_fx_passesÚ efficient_conv_bn_eval_fx_passesÚis_predispatchÚgroup_fusionÚbatch_fusionrw   rx   Úreorder_for_localityÚdynamic_scale_rblockÚforce_fuse_int_mm_with_mulÚ keep_addmm_fused_for_half_dtypesÚuse_mixed_mmr   rƒ   Ú reorder_for_compute_comm_overlapr„   r¸  r…   Úreorder_for_peak_memoryÚreorder_for_peak_memory_debugr†   r‰   rŠ   r�   rŽ   r�   r‘   r’   r“   r”   Úestimate_op_runtimer•   r–   r—   Ú
cpu_gpu_bwr™   Údistributed_max_autotune_gemmÚpipeline_max_autotune_gemmr�   Úmax_autotuneÚmax_autotune_pointwiseÚmax_autotune_gemmr¢   r[  Ú inductor_default_autotune_warmupÚinductor_default_autotune_repr¯   r°   Ú!max_autotune_report_choices_statsÚ.max_autotune_prune_choices_based_on_shared_memÚtriton_disable_device_detectionrµ   r¶   r·   r¸   r¹   rº   ÚupperÚmax_autotune_gemm_backendsr¿   rÀ   rÂ   r6   rh  Ú_conv_default_backendsÚmax_autotune_conv_backendsÚ%max_autotune_conv_bwd_weight_backendsÚ$max_autotune_conv_bwd_input_backendsrÊ   rÌ   rÍ   rÎ   rÏ   rÐ   rÓ   rÔ   rÕ   r×   Úautotune_fallback_to_atenÚunbacked_symint_fallbackÚsearch_autotune_cacheÚ	save_argsÚautotune_in_subprocÚ+max_autotune_subproc_result_timeout_secondsÚ-max_autotune_subproc_graceful_timeout_secondsÚ.max_autotune_subproc_terminate_timeout_secondsÚautotune_multi_deviceÚcollective_benchmark_nrunsr~  Úcollective_benchmark_timeoutÚcoordinate_descent_tuningÚ'coordinate_descent_check_all_directionsÚ coordinate_descent_search_radiusré   rî   rð   r÷   Úrun_jit_post_compile_hookrÿ   rü   rý   Úautoheuristic_log_pathÚlayout_opt_defaultÚlayout_optimizationÚforce_layout_optimizationÚcache_sdpa_constraintÚkeep_output_strideÚwarn_mix_layoutÚrealize_reads_thresholdÚ"_realize_opcount_threshold_defaultr  Úrealize_cpu_opcount_thresholdÚ$_realize_acc_reads_threshold_defaultr  Úrealize_cpu_acc_reads_thresholdr  r  Úfallback_randomÚalign_random_eagerÚ"fallback_embedding_bag_byte_unpackÚimplicit_fallbacksÚ assume_unaligned_fallback_outputr  Úaggressive_fusionr  r  Úenabled_metric_tablesr!  r#  r$  Úscore_fusion_memory_thresholdÚbenchmark_epilogue_fusionÚ max_epilogue_benchmarked_choicesÚmax_fusion_sizeÚmin_overlap_ratioÚ)max_fusion_buffer_group_pairwise_attemptsr(  Ú max_complex_pointwise_cat_inputsÚmax_pointwise_cat_inputsÚforce_pointwise_catÚunroll_reductions_thresholdÚcomment_originÚconv_1x1_as_mmÚsplit_reductionsr  Úbatch_invariantÚmin_num_splitÚbenchmark_kernelÚconstant_and_index_propagationÚalways_keep_tensor_constantsÚassert_indirect_indexingÚdo_not_emit_runtime_assertionsÚcompute_all_boundsÚcombo_kernelsÚbenchmark_combo_kernelÚcombo_kernels_autotuneÚcombo_kernel_allow_mixed_sizesÚ#combo_kernel_foreach_dynamic_shapesÚcombo_kernel_max_num_argsÚcombo_kernel_max_num_nodesÚ!combo_kernel_per_subkernel_blocksÚcombo_kernel_autotune_groupingÚcombo_kernels_pointwise_onlyr/  r0  r2  Újoint_graph_constant_foldingÚdebug_index_assertsÚ__version__Úis_nightly_or_sourceÚdeveloper_warningsÚ"optimize_scatter_upon_const_tensorr6  r7  r9  r@  rA  rC  rE  rG  Ú_fuse_ddp_communicationÚ_fuse_ddp_bucket_sizerJ  rK  Úpartitioned_scatter_enabledrM  rO  rP  rR  rX  r„  r“  r’  r•  r—  r˜  r™  r›  r�  rž  r   r¢  r¤  Úlibfb.pyr¦  Ú__package__Úget_dir_pathrë  rí  ÚreplaceÚsepr¥  Ú
ValueErrorÚImportErrorÚkernel_name_max_opsÚshape_paddingÚcomprehensive_paddingÚpad_channels_lastÚpad_dynamic_shapesÚdisable_padding_cpuÚ$expand_dimension_for_pointwise_nodesÚpadding_alignment_bytesÚpadding_stride_thresholdÚpad_outputsÚbw_outputs_user_visibler«  Úpermute_fusionÚprofiler_mark_wrapper_callÚgenerate_intermediate_hooksÚdebug_ir_tracebackÚ_raise_error_for_testingr­  Ú_profile_varÚprofile_bandwidthÚprofile_bandwidth_regexr°  Ú/profile_bandwidth_with_do_bench_using_profilingÚdisable_cpp_codegenr³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  Úenable_linear_binary_foldingr¾  r¿  rÀ  rÃ  rÅ  rÆ  rÍ  rÏ  rÑ  rÙ  r�   r€  r»  r¾  rô  rû  rþ  r  r  r  r  r  r  r2  r4  rU  rV  rW  rX  ÚTensorÚ*write_are_deterministic_algorithms_enabledr[  r_  Útorch.utils._config_typingry  r  r�  Úmodulesrò   r   r   r   ú<module>r2     s¼  ðÜ 	Û 
Ý $ß 4Ó 4ã Û (Ý (÷ó ñ Ý7Ý?à—*‘*—.‘.Ð!@À#ÓFÈ#ÑM€Ø#Ð ðC t¨d¡{ó Cð˜D 4™Kó ðC t¨d¡{ó CðK¨t°d©{ó Kð°4¸$±;ó ðF¨$°©+ó Fð dó ð
 ó 
ð ‡J�J‡N�NÐ7¸Ó=ÀÑDð ð
 	€ð Ð ð Ð ñ 8A´{Ñ3Èð ñ
 '*Ø‡J�J‡N�NÐAÀ6ÓJó'Ð  ó ñ
 Ø?Ø;Ø1Øô	€�ó ð $)Ð ˜DÓ (ñ &CÓ%DÐ �t˜d‘{Ó Dñ .Ó/ð " 4¨$¡;ó ñ )/ØMØBØô)Ð  ó ð "Ð �dÓ !ñ &CÓ%DÐ �t˜d‘{Ó Dñ .SÓ-TÐ ˜t d™{Ó Tñ $Ð*VÔWÐ �dÓ Wð 05Ð &¨Ó 4ð 57Ð ! 4¨¨S¨¡>Ó 6ð &*Ð ˜˜d™
Ó )ð ð (¨Ø1ñ*ó ð —J‘J—N‘NÐ#>ÀÓDÈÑK€ˆTÓ Kð ‡J�J‡N�NÐ=¸sÓCÀsÑJð ˜Dó ð —:‘:—>‘>Ð"<¸cÓBÀcÑI€
ˆDÓ Ið ‡J�J‡N�NØ4¹Y¼[±cÈcóð ñð ˜dó ð —‘—‘Ð >ÀÓDÈÑK€ð ‡J�J‡N�NÐ9¸3Ó?À3ÑFð ð
 €ð Ð ð �z‰z�~‰~Ð:¸CÓ@ÀCÑG€Ø�j‰j�n‰nÐ8Ó9¸SÑ@€à‡J�J‡N�NÐ=Ó>À#ÑEð ð —‘—‘Ð >ÀÓDÈÑK€ð ‡J�J‡N�NÐ4¹Y¼[±cÈcÓRØ
ñð ð Ð ð €ð Ð ð —*‘*—.‘.Ð!@À#ÓFÈ#ÑM€ð —
‘
—‘Ð<Ó=ÀÑD€ð HJÇzÁzÇ~Á~Ø óH€ˆWÐCÑDó ð
 Ð ð €ð #(Ð ñ *Ó+€ð Ð ð .3Ð *ð €ð €ð TXÐ ˜5Ÿ?™?×<Ñ<×PÑPÓ WØTXÐ ˜EŸO™O×=Ñ=×QÑQÓ Xð TXÐ �u—‘×8Ñ8×PÑPÓ Wð PTÐ �u—‘×8Ñ8×LÑLÓ SØPTÐ ˜Ÿ™×9Ñ9×MÑMÓ Tð
 OSÐ �e—o‘o×7Ñ7×KÑKÓ Rð 	ð Ø	‡O�O×%Ñ%×AÑAÀDÑHó	ð 	ð Ø	‡O�O×%Ñ%×AÑAÀDÑHó	ð
 Ð ð $)Ð  ð €ð €ð €ð( 68Ð ˜˜c 4¨¨S¨¡>Ð1Ñ2Ó 7ð 79Ð ˜$˜s D¨¨c¨¡NÐ2Ñ3Ó 8ð Ð ð —z‘z—~‘~Ð&JÈCÓPÐTWÑWÐ ð #Ð ð
 $(Ð  ð €ð ØØØñ	+Ð ˜˜c 3˜h™ó ð FQ€�ÐAÑBÓ Pð $)Ð  ð* ð (¨ØØØ	Ð;Ñ	<Ð=ØÐ:Ñ;ð	=ñññ*ó ð &*Ð ˜˜d™
Ó )ð Ð Ø %Ð ð /0Ð &¨Ó /ð >DÐ �wÐ9Ñ:Ó CàNRÐ .°¸#¸À¸Ñ0DÀtÑ0KÓ Rð ð  Ø4ñ!ó ð
 $Ð �tÓ #à4:Ð ˜7 =Ñ1Ó :àRVÐ 2°H¸c¸UÀC¸ZÑ4HÈ4Ñ4OÓ Vð ð # GØ4ñ%ó ð
 17Ð �w˜}Ñ-Ó 6àNRÐ .°¸#¸À¸Ñ0DÀtÑ0KÓ Rð  Ð à*/Ð ! 4Ó /ð !€ˆs�T‰zÓ  ð !€ˆs�T‰zÓ  ð €
ñ &,ØØ?Ø<ô&Ð ˜dó ð ‡J�J‡N�NÐ@ÓAÀSÑHð ð ‡J�J‡N�NÐ;Ó<ÀÑCð ñ (.ØØAØ>ô(Ð  ó ð �z‰z�~‰~Ð:Ó;¸sÑB€ð Ÿ™Ÿ™Ð(NÓOÐSVÑVÐ ð —J‘J—N‘NÐ#DÓEÈÑLÐ ñ %5Ø(°%ô%Ð �d˜T‘kó ñ $'Ø€B‡I‚IÐ5°rÓ:ó$Ð  ñ !$Ø€B‡I‚IÐ2°CÓ8ó!Ð ð°°t±ó ñ .UÓ-VÐ   d¡
Ó Vð ‡J�J‡N�NÐDÀcÓJÈcÑQð "ð ‡J�J‡N�NÐQÐSVÓWØ
ñð /ð ‡J�J‡N�NÐBÀCÓHÈCÑOð  ð ‡J�J‡N�NÐ2¹y¼{±CÐPSÓTØ
ñð �ó ð .2Ð Ð*Ó 1ð
 *,Ð ˜T #™YÓ +ð ,.Ð ˜t C™yÓ -ð -2Ð # TÓ 1ð !#Ð �D˜‘IÓ "ð  ŸZ™ZŸ^™^Ø.Ð0Aóç‚%ƒ'ð ð¨s°T©zó ñ ,QÓ+RÐ ˜c D™jÓ Rð ‡J�J‡N�NÐ<¸cÓBÀcÑIð ˜4ó ð +0¯-ª-×*;Ó*;™ÀÐ ð
  ŸZ™ZŸ^™^Ø.°óç‚%ƒ'ð ð
 )+¯
©
¯©Ø9Ð;Qó)ç‚%ƒ'ð &ð
 (*§z¡z§~¡~Ø8Ð:Pó(ç‚%ƒ'ð %ð DFÇ:Á:Ç>Á>Ø2°IóDç‚%ƒ'ð  Ð(?Ñ @ó 
ð DFÇ:Á:Ç>Á>Ø2°IóDç‚%ƒ'ð  Ð(?Ñ @ó 
ð "Ð �TÓ !ð "Ð �TÓ !ð €ˆÓ ð !Ð �TÓ  ð =FÐ �gÐ8Ñ9Ó Eð  $Ð ˜Ó #Ø!Ð �dÓ !ð ‡J�J‡N�NÐ.°Ó4¸Ñ;ð ˜4ó ð
 "Ð ð  Ð ð Ð à�J‰J�N‰NÐ4Ó5¸Ñ<€	ð —j‘j—n‘nÐ%HÓIÈSÑPÐ ð
 /3Ð +à03Ð -à14Ð .ð Ÿ
™
Ÿ™Ð'LÓMÐQTÑTÐ ñ !Ø‡J�J‡N�NÐ=¸tÓDóÐ ñ
  %Ø‡J�J‡N�NÐ?ÀÓFó Ð ð
 ‡J�J‡N�NÐ<Ó=ÀÑDð ð ‡J�J‡N�NÐJÓKÈsÑRð (ñ $'Ø‡J�J‡N�NÐ<¸cÓBó$Ð  òò
÷
@ñ @÷Nñ Nð ‡J�J‡N�NÐ<¸cÓBÀcÑIð ð
B˜Cð B Dó Bð: ð :¨ó :ð6˜Cð 6 Dó 6ð Ÿ™Ÿ™Ø*¨IóÐ ð
 !&§¢× 1Ó 1‘S°sÐ à‡J�J‡N�NÐ6Ð8JÓKÈsÑRð ð ŸJ™JŸN™NÐ+KÈSÓQÐUXÑXÐ ð ‡J�J‡N�NÐ8¸#Ó>À#ÑEð ð —Z‘Z—^‘^Ð$FÈÓLÐPSÑSÐ ð —*‘*—.‘.Ð!@ÓAÀSÑH€ð
 Ð Ø%'Ð "Ø(,Ð ˜3 ™:Ó ,ð !#Ð ð ()Ð $Ø*.Ð ˜S 4™ZÓ .Ø"$Ð àð ! #¨¡*ó ñ %+Ø>Øô%Ð ˜Tó ð €ð Ð ð &+Ð "ð Ð à‡J�J‡N�NÐCÓDÈÑKð !ð BFÐ ˜ Ð%6Ð!6Ñ7¸$Ñ>Ó Eð Ð ð —Z‘Z—^‘^Ð$@ÓAÀSÑH€ˆdÓ HØŸ™Ÿ™Ð(HÓIÈSÑPÐ �$Ó PØŸ
™
Ÿ™Ð'LÈbÓQÐ à‡J�J‡N�NØ2¹9¼;±CÈCóð ñð ˜Dó ð ‡J�J‡N�NÐ?ÀÓEÈÑLð ˜dó ð (,Ð  Ó +ð !#Ð ð ‡J�J‡N�NÐ<¸cÓBÀcÑIð ð
 $%Ð  ð €ð Ð ð -/Ð )ð ,0Ð ˜c D™jÓ /ð
 $%Ð  ð
 Ð ð Ð ð  Ð ð €ð €ð �2—9’9Ð=¸sÓCÀsÑJÐ ð �—	’	Ð7Ó8¸CÑ?€ð �"—)’)Ð;Ó<ÀÑC€ñ �B—J‘J—N‘NÐ#@À!ÓDÓE€à—:‘:—>‘>Ð"BÀCÓHÈCÑOÐ ð "&Ð ð  %Ð ð  Ð ð "'Ð ð Ð ð €àÐ ð Ð ð "#Ð à&*Ð #àÑ àÑ ð %*Ñ !ð "&Ñ à$Ñ ð 6:Ñ $ e¨d¡lÓ 9Ø7;Ñ &¨°©Ó ;ð
 "$Ñ ˜3Ó #ð  $Ñ ð Ñ ð  × 1Ò 1Ð1ÒO°U¸e×>OÒ>OÐ5OÑ Ù“[Ò8Ñ$8Ñ ð ‡J�J‡N�NÐEÀsÓKÈsÑRñ #ð
 #'Ñ �S˜4‘ZÓ &Ø%)Ñ ˜˜d™
Ó )ñ Ø2Øô��ó ð
 Cô 
ò 6Ó7Ñ �SÓ 7ð &.Ñ ˜sÓ -ñ !'Ø7Ø:Øô!Ñ ˜ó ñ Ù Øô�ˆTô ð  Ñ ØÑ ñ  ÙðCÑ   X©iÑ%8¸3Ñ%>Ñ ?ô ð
 !Ñ �DÔ  ð ‡J�J‡N�NÑ>ÀÓDÈÑKñ ñ
 +,Ñ " CÔ +ñ +.Ñ " CÔ -ñ ,0Ñ ! 5Ô /÷:ô :÷
C-ô C-ðL6¨Tõ 6ð õ ñB '0¤k™dÒ7MÓ7O���t‘Ô Oñ $*Ù:Ù=Øô$Ñ ˜Dô ñ #)Ùô#Ñ ˜Cô ñ ">Ó!?Ñ ˜$Ô ?ñ $*Ù
;ô$Ñ ˜Dô ñ 39ÙIÙLØô3Ñ )¨4ô ð ‡J�J‡N�NÑ>ÀÓDÈÑKñ ˜Tô ñ
 '-Ù
>ô'Ñ ˜tô ð ‡J�J‡N�NÑ8¸#Ó>À#ÑEñ �tô ð ‡J�J‡N�NÑ;¸SÓAÀSÑHñ ˜$ô ð ‡J�J‡N�NÑ=¸sÓCÀsÑJñ ˜Dô ð
 ˜‘*Ô Ù„;ð
 ß$Ñ$âØ3™w×3Ò3Ø—’—’™[×0Ò0±°b·f²fÓ=¹zÓJó Òð  4™w×3Ò3±JÓ?Ñøð
 Ñð Ñ ð —
‘
—‘Ñ<¸cÓBÀcÑI�ð ‡J�J‡N�NÑ8¸#Ó>À#ÑEñ ð Ñ ð Ñ ð Ñ ð (-Ñ $ñ Ñ ñ(  Ñ ð �ð Ñ ð ��Ô ð —‘—‘Ñ >ÀÓDÈÑK�ð #Ñ ð
 $Ñ ð Ñ ð !Ñ ñ +4«+ oÑ ˜tÔ 5à�z‰z�~‰~Ñ5°rÓ:�Ù  BÑ&Ñ Ù ,°Ò 3™"¹Ñ ð (*§z¡z§~¡~Ù" Dó(Ñ ˜# ™*ô ð
 ‡J�J‡N�NÑHÓIÈSÑPñ 0ð Ñ ð —‘—‘Ñ 8¸#Ó>À#ÑE�ˆ$Ô Eð %*Ñ ˜TÔ )ð  %Ñ ˜Ô $ð (-Ñ  Ô ,ð
 $Ñ �tÔ #ð $Ñ �tÔ #ð 8=Ñ .°Ô <ð ,1Ñ " DÔ 0ð .3Ñ $ dÔ 2ð ‡J�J‡N�NÑ?ÀÓEÈÑLñ ð Ÿ*™*Ÿ.™.Ñ)JÈCÓPÐTWÑWÑ �4Ô Wð 37Ñ )¨4Ô 6ð 46Ñ �t˜C  c¨3 h¡Ð/Ñ0Ô 5á˜RŸZ™ZŸ^™^Ñ,MÉuÓUÓVÑ �3Ô Vñ $'Ø‡J�J‡N�NÑ>ÀÓDó$Ñ ˜Sô ð !&Ñ ˜Ô %ð	˜S 4™Zõ 	ñ %+Ù1Øô%Ñ ˜cô ÷ô ÷"G+ô G+÷Tx&ô x&÷v.ô .÷J%ô %÷(ô (ñD ‘WÓö1‰7ó 1ó ñ1ñ< ‘WÓöT‰'ó Tó ñT÷aOô aOñJ =B�ˆWÑ8Ñ9Ô Añ 7?�ˆgÑ2Ñ3Ô >ñ "*�ˆW‘XÑÔ )ñ "*�ˆW‘XÑÔ )÷&ô &÷
ô ñ8?¨Sñ ?Àsð ?Èsõ ?÷iô ióX"Ñ �T˜#‘Yô ó"*Ñ ˜T #™Yô ðD ð)Ñ ˜D ™Iô ð
 UW���h §¢¨e¯lªl¸E¿LºLÐIÈ4ÐOÑPÑQÔ Vð €B‡I‚IÑHÈ#ÓNÐRUÑUñ +÷
 ô  ÷94ô 94ñx Þ,÷(ô (ð@ ‡J�J‡N�NÑ:¸CÓ@ÀCÑGñ ˜ô ð ‡J�J‡N�NÑKÈSÓQÐUXÑXñ )¨$ô ñ
 �c—k’k¡(Ñ+Õ ,øñg0 ™Ð$ò  ØÔð ús   ÁAA4AT: ÁT:AU
ÁU	AU
