+
    –°³j;D  ã                   óN  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHtHt ]P.                  ! ]4      t]P4                  ! R	R
7       ! R R4      4       t]P4                  ! R	R
7       ! R R4      4       t]P4                  ! R	R
7       ! R R4      4       t]P4                  ! R	R
7       ! R R4      4       t]P4                  ! R	R
7       ! R R4      4       t]P4                  ! R	R
7       ! R R4      4       t  ! R R4      t!R# )é    N)ÚPath)ÚcountersÚdynamo_timedÚset_feature_use)Újustknobs_check)ÚFileLock)Ú
OrderedSet)Útriton_cache_dir)Ú_IS_WINDOWSÚGPU_KERNEL_BIN_EXTST)Úfrozenc                   ó0   a € ] tR t^t o RtV 3R ltRtV tR# )ÚTritonBundleEntryzë
When we have compiled a triton kernel, we take note of that kernel by
its triton generated hash, its device, and where this kernel is located.
This is the minimum information we can use to later retrieve this kernel
from file system.
c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[ ;R&   # )é   Úkernel_hashÚdeviceÚ	directory©ÚstrÚint)ÚformatÚ__classdict__s   "€Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/triton_bundler.pyÚ__annotate__ÚTritonBundleEntry.__annotate__   s*   ø‡ ‚ ñ Ññ ñ �Kñ ñ �Nò ó    © N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s   ø‡ € ñ÷ ƒ r   r   c                   óV   a € ] tR t^#t o Rt]P                  ! RR7      tV 3R ltRt	V t
R# )ÚTritonKernelArtifactze
Artifact for an individual kernel converted to bytes.
Bytes could be a cubin, json, ttir, or ttgir.
F)Úreprc                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r   ÚfilenameÚpayload)r   Úbytes)r   r   s   "€r   r   Ú!TritonKernelArtifact.__annotate__#   s   ø‡ ‚ ñ �Mñ ñ Ñ2ò r   r   N)r    r!   r"   r#   r$   ÚdataclassesÚfieldr.   r%   r&   r'   r(   s   @r   r*   r*   #   s#   ø‡ € ñð !×&Ò&¨EÔ2€G÷ ƒ r   r*   c                   ó0   a € ] tR t^.t o RtV 3R ltRtV tR# )ÚStaticallyLaunchedAutotunera=  
Represents a statically compiled CachingAutotuner object that we can
save directly in the cache. A CachingAutotuner is made up of a list of
StaticTritonCompileResults, each of which uses the cubin from a TritonKernelArtifact.

Statically saved here have their cubin files saved by a corresponding TritonBundleEntry.
c                ó<   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   R;R&   # )r   Ú	cache_keyÚkernel_nameÚCachingAutotunerÚkernel©r   )r   r   s   "€r   r   Ú(StaticallyLaunchedAutotuner.__annotate__.   s+   ø‡ ‚ ñ �Nñ ñ Ññ ð Ñò r   r   Nr   r(   s   @r   r4   r4   .   s   ø‡ € ñ÷ ƒ r   r4   c                   ó0   a € ] tR t^=t o RtV 3R ltRtV tR# )ÚTritonKernelArtifactsz2
Collection of artifacts for a particular kernel.
c                óN   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[,          ;R&   # )r   r   r   Ú	artifacts)r   r   Úlistr*   )r   r   s   "€r   r   Ú"TritonKernelArtifacts.__annotate__=   s1   ø‡ ‚ ñ Ññ ñ �Kñ ñ Ñ(Õ)Ñ)ò r   r   Nr   r(   s   @r   r=   r=   =   ó   ø‡ € ñ÷ ƒ r   r=   c                   ó0   a € ] tR t^Ht o RtV 3R ltRtV tR# )ÚTritonBundlerMetadataz#
Metadata used for instrumentation
c                óR   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   # )r   Úcached_kernel_namesÚ statically_launched_kernel_names)r@   r   )r   r   s   "€r   r   Ú"TritonBundlerMetadata.__annotate__H   s'   ø‡ ‚ ñ ™c�Ñ"ñ ñ '+©3¥iÑ/ò r   r   Nr   r(   s   @r   rD   rD   H   rB   r   rD   c                   ó0   a € ] tR t^Rt o RtV 3R ltRtV tR# )ÚTritonBundlez/
Serializable bundle to save into FXGraphCache
c                óR   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   # )r   Úkernel_artifactsÚstatic_autotuners)r@   r=   r4   )r   r   s   "€r   r   ÚTritonBundle.__annotate__R   s+   ø‡ ‚ ñ Ñ0Õ1Ñ1ñ ñ Ñ7Õ8Ñ8ò r   r   Nr   r(   s   @r   rJ   rJ   R   rB   r   rJ   c                   óX  a € ] tR t^\t o RtRtRtRtRt]	V 3R lR l4       t
]V 3R lR l4       t]V 3R lR	 l4       t]V 3R
 lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]	V 3R lR l4       tV 3R ltRtV tR# )ÚTritonBundleraÃ  
Lightweight Triton Kernel bundler that notes each time we compile a triton
kernel. When collect is called, converts all the previously noted kernels and
their artifacts into a structured bytes blob, and later when write is called
it writes this structured blob back to file system.

Intended Life cycle:
- TritonBundler.begin_compile is called when we start compiling in Inductor
- TritonBundler.put is called each time a Triton Kernel is compiled
- TritonBundler.collect is called when a cache entry is being generated
- TritonBundler.end_compile is called to indicate bundling is completed,
  collect will execute this function as well.
- TritonBundler.read_and_emit is called when a cache entry is read
Ns	   [REPLACE]c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úreturn)Úbool)r   r   s   "€r   r   ÚTritonBundler.__annotate__u   s   ø€ ÷ 
ñ 
™ñ 
r   c                 ó    € ^ RI Hp  V P                  '       d   R# V P                  ;pe   V# V P	                  4       '       g   R# \        R4      # )r   ©ÚconfigFz9pytorch/remote_cache:bundle_triton_into_fx_graph_cache_v2)Útorch._inductorrX   Úforce_disable_cachesÚ!bundle_triton_into_fx_graph_cacheÚ	is_fbcoder   )rX   Úbs     r   Ú
is_enabledÚTritonBundler.is_enabledt   sL   € å*à×&×&Ð&Ùà×9Ñ9Ð9ˆAÒFØˆHà×Ñ×!Ò!ÙäØGó
ð 	
r   c                ó   <€ V ^8„  d   QhRR/# ©r   rS   Nr   )r   r   s   "€r   r   rU   †   s   ø€ ÷ $ñ $˜dñ $r   c                óÔ   € \         P                  4       '       g   R# \        P                  R4       V P                  e   \        R4      h. V n        . V n        \        4       V n        R# )zh
Initializes the TritonBundler.
The current TritonBundler bundle is finalized by TritonBundler.collect.
Nz%TritonBundler.begin_compile is calledzXTritonBundler.begin_compile called with active entries; expected cls._entries to be None)	rP   r^   ÚlogÚdebugÚ_entriesÚAssertionErrorÚ_static_autotunersr	   Ú_winners©Úclss   &r   Úbegin_compileÚTritonBundler.begin_compile…   sY   € ô ×'Ñ'×)Ò)ÙÜ�	‰	Ð9Ô:Ø�<‰<Ò#Ü ð3óð ð ˆŒØ!#ˆÔÜ!“|ˆŽr   c                ó   <€ V ^8„  d   QhRR/# ra   r   )r   r   s   "€r   r   rU   ˜   s   ø€ ÷ ñ ˜Dñ r   c                óZ   € \         P                  R4       RV n        RV n        RV n        R# )z\
Finalizes the TritonBundler. If collect is not yet called, it
discards the current bundle.
z#TritonBundler.end_compile is calledN)rc   rd   re   rg   rh   ri   s   &r   Úend_compileÚTritonBundler.end_compile—   s'   € ô 	�	‰	Ð7Ô8ØˆŒØ!%ˆÔØˆŽr   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r   r   r   rS   Nr   )r   r   s   "€r   r   rU   £   s"   ø€ ÷ ñ ™cð ©3ð °4ñ r   c           	     ór   € V P                   ;pe'   VP                  \        W\        V4      4      4       R# R# )zo
Lazily observes that we have seen a Triton kernel compilation. Remembers
it for when collect is later called.
N)re   Úappendr   r
   )rj   r   r   Úentriess   &&& r   ÚputÚTritonBundler.put¢   s4   € ð —|‘|Ð#ˆGÒ0Ø�N‰NÜ! +Ô7GÈÓ7OÓPöñ 1r   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r   rS   Nr:   )r   r   s   "€r   r   rU   ®   s   ø€ ÷ *ñ *¡Sð *¨Tñ *r   c                ó\   € V P                   e   V P                   P                  V4       R# R# )zÚ
Marks a kernel hash as a winning autotuning config. Only winning
kernels are included in the bundle by collect(). If no winners are
recorded (e.g. single-config kernels that skip autotuning), all
entries are bundled.
N)rh   Úadd)rj   r   s   &&r   Ú
put_winnerÚTritonBundler.put_winner­   s%   € ð �<‰<Ò#Ø�L‰L×Ñ˜[Ö)ñ $r   c                ó(   <€ V ^8„  d   QhRS[ RRRR/# )r   Úkeyr9   r8   rS   Nr:   )r   r   s   "€r   r   rU   ¹   s#   ø€ ÷ 6ñ 6¡sð 6Ð4Fð 6È4ñ 6r   c           	     óx  € ^ RI Hp VP                  '       g   \        R4      hV P                  ;pe‡   VP                  4       p\        P                  ! V4      pVP                  4        RVn	        VP                  \        VVP                  P                  RR4      V4      4       VP                  V4       R# R# )r   rW   z4expected config.use_static_triton_launcher to be setNr7   Úunknown_kernel)rY   rX   Úuse_static_triton_launcherrf   rg   Úprepare_for_pickleÚcopyÚdeepcopyÚprepare_for_cachingÚ_reload_kernelrs   r4   Úinductor_metaÚgetÚrestore_after_unpickle)rj   r}   r9   rX   rt   Ú
old_valuesÚ
new_kernels   &&&    r   Úput_static_autotunerÚ"TritonBundler.put_static_autotuner¸   s¦   € å*à×0×0Ð0Ü Ð!WÓXÐXØ×-Ñ-Ð-ˆGÒ:ð  ×2Ñ2Ó4ˆJÜŸš vÓ.ˆJØ×*Ñ*Ô,Ø(,ˆJÔ%à�N‰NÜ+ØØ×,Ñ,×0Ñ0°Ð@PÓQØóôð ×)Ñ)¨*Ö5ñ# ;r   c                óV   <€ V ^8„  d   QhRS[ S[S[,          S[S[,          3,          /# rR   )Útupler@   r4   r   )r   r   s   "€r   r   rU   Ò   s,   ø€ ÷ Bñ Bá	‰tÑ/Õ0±$±sµ)Ð;Õ	<ñBr   c                ó.  € V P                   '       g   . . 3# \        P                  R \        V P                   4      4       V P                    Uu. uF  qP                  NK  	  pp\
        R,          R;;,          ^,          uu&   V P                   V3# u upi )z1Saving %d statically launchable CachingAutotunersÚinductorÚ$triton_bundler_save_static_autotuner)rg   rc   ÚinfoÚlenr7   r   )rj   ÚiÚstatic_autotuner_namess   &  r   Úcollect_static_autotunersÚ'TritonBundler.collect_static_autotunersÑ   s†   € ð ×%×%Ð%Ø�r�6ˆMä�H‰HØCÜ�C×*Ñ*Ó+ôð >A×=SÒ=SÓ%TÑ=S¸§m¤mÑ=SÐ"Ð%TÜ�ZÕ Ð!G×HÈAÕMÓHØ×)Ñ)Ð+AÐAÐAùò &Us   ÁBc                óT   <€ V ^8„  d   QhRS[ S[,          R,          RS[ S[,          /# )r   rM   NrS   )r@   r4   r   )r   r   s   "€r   r   rU   á   s,   ø€ ÷ %ñ %Ù $Ñ%@Õ AÀDÕ Hð%á	‰c�ñ%r   c           
     ór  € V'       g   . # ^ RI Hp ^ RIHp \        P                  R\        V4      4       . p\        R4      ;_uu_ 4        V F•  p VP                  P                   F  pVP                  4        K  	  T! TP                  4      TP                  TP                  &   \         R,          R	;;,          ^,          uu&   TP#                  TP                  4       K—  	  R
R
R
4       V#   \         d'    \        P                  RTP                  RR7        KÓ  i ; i  + '       g   i     T# ; i)z^
Load statically launchable CachingAutotuners into async_compile.CompiledTritonKernels
cache.
)ÚCompiledTritonKernels)ÚStaticAutotunerFuturez+Loading %d statically launchable autotunersz+TritonBundler.load_cached_static_autotunersz>Failed to reload cubin file statically launchable autotuner %sT©Úexc_infor�   Ú$triton_bundler_load_static_autotunerN)Útorch._inductor.async_compilerš   Útorch._inductor.codecacher›   rc   r’   r“   r   r9   Úcompile_resultsÚreload_cubin_pathÚRuntimeErrorÚwarningr7   Ú_cacher6   r   rs   )rj   rM   rš   r›   Úkernel_namesÚresultÚcompile_results   &&     r   Úload_autotunersÚTritonBundler.load_autotunersà   s  € ÷ !ØˆIåGÝCä�‰Ð>ÄÐDUÓ@VÔWØˆÜÐG×HÕHÛ+�ð
à*0¯-©-×*GÔ*G˜Ø&×8Ñ8Ö:ñ +Hñ BWØ—M‘MóBÐ%×,Ñ,¨V×-=Ñ-=Ñ>ô ˜Õ$Ð%K×LÐPQÕQÓLØ×#Ñ# F×$6Ñ$6Ö7ñ) ,÷ Ið, Ðøô! $ô Ü—K‘KØXØ×*Ñ*Ø!%ð  ô ò
 ðú÷ IÖHð, Ðús1   ÁD%Á-C1Á?A(D%Ã1-D"	ÄD%Ä!D"	Ä"D%Ä%D6	c                óD   <€ V ^8„  d   QhRS[ S[S[R,          3,          /# ra   )rŽ   rJ   rD   )r   r   s   "€r   r   rU   	  s(   ø€ ÷ Y.ñ Y.á	‰|Ñ2°TÕ9Ð9Õ	:ñY.r   c                óú  € ^ RI Hp \        P                  4       '       g+   V P	                  4        \        RR4       \        . . 4      R3# \        RR4       \        RRR7      ;_uu_ 4        V P                  pVEe   V P                  p. p. pV EF¦  pV'       d4   VP                  V9  d#   \        P                  RVP                  4       K?  . p\        P                  P                  VP                   VP                  4      p\        P                  P#                  V4      '       g   Kœ  \        P$                  ! V4       EF´  p	\        P                  P                  W‰4      p
 \        P                  P'                  V
4      '       g   \)        R	V
 24      h\+        V
R
4      ;_uu_ 4       pVP-                  4       pV
P/                  R4      '       dy   \        P0                  V9   d1   \        P3                  R\        P0                  V4       \)        R4      hVP5                  \6        P9                  V4      \        P0                  4      pVP;                  \=        Wœ4      4       RRR4       \>        R,          R;;,          ^,          uu&   \        P                  PC                  V	4      ^,          pV\D        PF                  ! 4       9   g   EK�  VP;                  \I        V	4      PJ                  4       EK·  	  V'       g   EKv  VP;                  \M        VP                  VPN                  V4      4       EK©  	  VPP                  '       d   V PS                  4       w  rïM. p. pV P	                  4        \        WN4      \U        W_4      3uuRRR4       # \        . . 4      R3uuRRR4       #   + '       g   i     ELN; i  \@         d    \        P                  RRR7        ELVi ; i  + '       g   i     R# ; i)zî
This is the main function called when a cache write happens. This function
converts all the previously remembered kernels into bundled format so that
it can be written into a cache entry.
This function also finalizes the current bundle.
rW   Útriton_bundlingFNTzTritonBundler.collect©r}   Úlog_pt2_compile_eventzSkipping non-winning kernel %szexpected a regular file, got Úrbú.jsonz'Bundle contains illegal %s, payload: %szBundle contains illegal bytesr�   Útriton_bundler_save_kernelzfailed to collect triton kernelrœ   )+rY   rX   rP   r^   ro   r   rJ   r   re   rh   r   rc   rd   ÚosÚpathÚjoinr   ÚexistsÚlistdirÚisfilerf   ÚopenÚreadÚendswithÚ_REPLACE_BYTESr¤   Úreplacer   Úencoders   r*   r   Ú	ExceptionÚsplitextr   Úvaluesr   Ústemr=   r   r€   r–   rD   )rj   rX   rt   Úwinnersr§   r¦   Úentryr?   r´   r-   ÚfilepathÚfiler.   Ú	extensionrM   Ústatic_kernel_namess   &               r   ÚcollectÚTritonBundler.collect  s/  € õ 	+ä×'Ñ'×)Ò)Ø�O‰OÔÜÐ-¨uÔ5Ü  BÓ'¨Ð-Ð-ÜÐ)¨4Ô0äÐ5ÈT×RÖRØ—l‘lˆGØÓ"ð
 Ÿ,™,�Ø68�Ø*,�Ü$�Eß 5×#4Ñ#4¸GÔ#CÜŸ	™	Ð"BÀE×DUÑDUÔVÙ Ø<>�IÜŸ7™7Ÿ<™<¨¯©¸×9JÑ9JÓK�DÜŸ7™7Ÿ>™>¨$×/Ò/Ù Ü$&§J¢J¨t×$4˜Ü#%§7¡7§<¡<°Ó#?˜ðXÜ#%§7¡7§>¡>°(×#;Ò#;Ü&4Ø&CÀHÀ:Ð$Nó'"ð !"ô "& h°×!5Ô!5¸Ø*.¯)©)«+ Ø#+×#4Ñ#4°W×#=Ò#=ä'4×'CÑ'CÀwÔ'NÜ(+¯©Ø,UÜ,9×,HÑ,HØ,3ô)*ô
 /=Ø,Kó/*ð )*ð /6¯o©oÜ(+¯
©
°4Ó(8¼-×:VÑ:Vó/& Gð !*× 0Ñ 0Ü$8¸Ó$Kô!"÷# "6ô( % ZÕ0Ð1M×NÐRSÕSÓNô %'§G¡G×$4Ñ$4°XÓ$>¸qÕ$A˜	Ø$Ô(;×(BÒ(BÓ(D×Dð )×/Ñ/´°X³×0CÑ0C×DñE %5÷F !’yØŸ™Ü1Ø %× 1Ñ 1Ø %§¡Ø )ó÷ñY %ðf ×4×4Ð4à×5Ñ5Ó7ñ ;Ð%Ð':ð )+Ð%Ø*,Ð'Ø—‘Ô!Ü# FÓ>Ô@UØ óAð ÷K SÒRôP    BÓ'¨Ð-÷Q SÒR÷2 "6×!5Ð!5ûô*  )ô XÜŸI™IÐ&GÐRV˜I×WðXú÷] S×RÐRúsj   Á,B=O)Ä*;O)Å&AO Æ-B:N,É'(O Ê=O)Ë.O)ÌAO)Í<O)ÎO)Î,N=Î7	O Ï "O&Ï"O)Ï%O&Ï&O)Ï)O:	c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r   ÚbundlerS   N)rJ   rD   )r   r   s   "€r   r   rU   e  s)   ø€ ÷ MLñ ML™lð MLÑ/DÀtÕ/Kñ MLr   c                ó$  € ^ RI Hp \        P                  4       '       g   R# \	        RRR7      ;_uu_ 4        . pV P
                   EF  p\        VP                  4      p\        P                  P                  WCP                  4      p\        P                  P                  V4      '       d=   \        \        P                  ! V4      4      ^ 8w  d   \        P!                  RV4       K£  \#        V4      P%                  RRR7       \'        \(        P*                  ! 4       4      p\        P                  P                  VRV 24      p\        P,                  ! V4       VP.                   EFV  p\        P                  P                  WxP0                  4      p	\3        V	R	4      ;_uu_ 4       p
VP4                  pVP0                  P7                  R
4      '       d4   VP9                  \        P:                  \&        P=                  V4      4      pV
P?                  V4       RRR4       \@        R,          R;;,          ^,          uu&   \        P                  PC                  VP0                  4      ^,          pV\D        PF                  ! 4       9   g   EK(  VPI                  \#        VP0                  4      PJ                  4       EKY  	  \L        '       dx   \O        VR,           4      ;_uu_ 4        \        P                  P                  V4      '       d   \P        PR                  ! V4       \        P8                  ! Wu4       RRR4       EK    \        P8                  ! Wu4       EK  	  VPX                  '       d!   \        P[                  V P\                  4      pM. p\_        W-4      uuRRR4       #   + '       g   i     EL™; i  + '       g   i     EK‹  ; i  \T         d    \        PW                  RT4        EK³  i ; i  + '       g   i     R# ; i)aÂ  
This is the main function called when a cache read happens. This function
converts the bundled format back into individual files and writes them
to the filesystem.

NOTE: When we are writing to the filesystem, we assume exclusive access
to the target directory.
This means that if the target folder already exists and is non-empty,
we bail out.
Exclusive access means that no other process should be writing to
or reading from the target directory.
rW   NzTritonBundler.read_and_emitTr®   z8Bailing out TritonBundler.read_and_emit, %s is non empty)ÚparentsÚexist_okztmp.Úwbr±   r�   Ú#triton_bundler_read_and_emit_kernelz.lockz%Directory %s is not empty - skipping!)0rY   rX   rP   r^   r   rL   r
   r   r³   r´   rµ   r   r¶   r“   r·   rc   rd   r   Úmkdirr   ÚuuidÚuuid4Úmakedirsr?   r-   r¹   r.   r»   r½   r¼   r¾   Úwriter   rÀ   r   rÁ   rs   rÂ   r   r   ÚshutilÚrmtreeÚOSErrorr¤   r€   r©   rM   rD   )rÌ   rX   r¦   r?   Úbasedirr   Úrnd_idÚtmp_dirÚartifactrÅ   rÆ   r.   rÇ   rÈ   s   &             r   Úread_and_emitÚTritonBundler.read_and_emitd  sá  € õ 	+ä×'Ñ'×)Ò)ÙäØ-ÀT÷
ö 
ð ')ˆLà#×4Õ4�	Ü*¨9×+;Ñ+;Ó<�ÜŸG™GŸL™L¨×2GÑ2GÓH�	ä—7‘7—>‘> )×,Ò,´´R·Z²ZÀ	Ó5JÓ1KÈqÔ1Pô —I‘IØRØ!ôñ ä�W“×#Ñ#¨D¸4Ð#Ô@ô œTŸZšZ›\Ó*�ÜŸ'™'Ÿ,™, w°$°v°h°Ó@�Ü—’˜GÔ$à )× 3Õ 3�HÜ!Ÿw™wŸ|™|¨G×5FÑ5FÓG�HÜ˜h¨×-Ô-°Ø"*×"2Ñ"2˜Ø#×,Ñ,×5Ñ5°g×>Ò>Ø&-§o¡oÜ -× <Ñ <¼c¿j¹jÈÓ>Só'˜Gð Ÿ
™
 7Ô+÷ .ô ˜ZÕ(Ð)N×OÐSTÕTÓOÜ "§¡× 0Ñ 0°×1BÑ1BÓ CÀAÕ F�IØ Ô$7×$>Ò$>Ó$@×@ð %×+Ñ+¬D°×1BÑ1BÓ,C×,HÑ,H×Iñ !4÷  “;Ü! )¨gÕ"5×6Õ6ÜŸ7™7Ÿ>™>¨)×4Ò4Ü"ŸMšM¨)Ô4ÜŸ
š
 7Ô6÷ 7Ò6ðVÜŸ
š
 7×6ñY 5ð` ×0×0Ð0Ü&3×&CÑ&CØ×,Ñ,ó'Ñ#ð ')Ð#Ü(¨ÓK÷w
ò 
÷6 .×-Ð-ú÷ 7×6Ñ6ûô #ô VÜŸ™Ð$KÈW×UÐUðVú÷e
÷ 
ð 
úsu   ¸E2O>Æ*A2N,ÈA/O>Ê>O>ËO>Ë*AO Ì<O>ÍOÍO>Í5,O>Î,N=Î7	O>Ï OÏ
O>Ï!O;	Ï6O>Ï:O;	Ï;O>Ï>P	c                ó¤   <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   S[ S[,          R,          ;R&   S[S[,          R,          ;R&   S[;R&   # )r   Nre   rg   rh   r¼   )r@   r   r4   r	   r   r/   )r   r   s   "€r   r   rU   \   sX   ø‡ ‚ ñ  Ñ$Õ%¨Õ,Ñ3ñ! ñ" Ñ8Õ9¸DÕ@ÑGñ# ñ$ ™�o Õ$Ñ+ñ% ñ, Ñ(ò- r   r   )r    r!   r"   r#   r$   re   rg   rh   r¼   Ústaticmethodr^   Úclassmethodrk   ro   ru   rz   r‹   r–   r©   rÉ   rÞ   r%   r&   r'   r(   s   @r   rP   rP   \   sû   ø‡ € ñð 04€HØCGÐØ'+€Hð )€Nà÷
ó ð
ð  ÷$ó ð$ð" ÷ó ðð ÷ó ðð ÷*ó ð*ð ÷6ó ð6ð0 ÷Bó ðBð ÷%ó ð%ðN ÷Y.ó ðY.ðv ÷MLó ðML÷S ƒ r   rP   )"r‚   r1   Úloggingr³   r×   rÓ   Úpathlibr   Útorch._dynamo.utilsr   r   r   Útorch._utils_internalr   Útorch.utils._filelockr   Útorch.utils._ordered_setr	   Úruntime.runtime_utilsr
   Úutilsr   r   Ú	getLoggerr    rc   Ú	dataclassr   r*   r4   r=   rD   rJ   rP   r   r   r   Ú<module>rí      s'  ðÛ Û Û Û 	Û Û Ý ç GÑ GÝ 1Ý *Ý /å 3ß 3ð ×Ò˜Ó!€ð ×Ò˜dÔ#÷
ð 
ó $ð
ð ×Ò˜dÔ#÷3ð 3ó $ð3ð ×Ò˜dÔ#÷ð ó $ðð ×Ò˜dÔ#÷*ð *ó $ð*ð ×Ò˜dÔ#÷0ð 0ó $ð0ð ×Ò˜dÔ#÷9ð 9ó $ð9÷VLó VLr   