+
    –°³jô€  ã                   óÄ  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHtHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIHt ^R	IHtHt ^R
IHt ^RIHt ^RI H!t!H"t"H#t#H$t$H%t% ^RI&H't'H(t( ]! R4      t)]PT                  ! ]+4      t,]PZ                  ! R4      P\                  t/ ! R R] P`                  4      t1]Pd                  ! RR7       ! R R]14      4       t3]Pd                  ! RR7       ! R R]14      4       t4]Pd                  ! RR7       ! R R]14      4       t5]Pd                  ! RR7       ! R R4      4       t6]Pd                   ! R R4      4       t7 ! R R](Pp                  4      t9 ! R  R!](Pt                  4      t;R" R# lt<R$ R% lt=R&R'/R( R) llt>R*R+R&R'R,R;/R- R. llt?R<R/ R0 llt@R1 R2 ltAR3 R4 ltB ! R5 R6]4      tCR=R7 R8 lltD ! R9 R:]4      tER# )>é    N)ÚCallableÚIterableÚSequence)ÚAnyÚTypeVar)ÚSelf)Úpatch)Úget_free_symbols)Úfree_symbolsÚfree_unbacked_symbols©Ú
OrderedSet)Úmake_symbolÚSymT)Úindex_prevent_reordering)ÚDefaultHandler)Úget_dtype_sizeÚreduction_num_outputsÚsympy_index_symbolÚ
sympy_subsÚ	VarRanges)ÚReductionTypeÚVÚTzindirect|tmpc                   ó–  a € ] tR t^%t o ]P
                  RV 3R lR ll4       t]P
                  V 3R lR l4       t]P
                  V 3R lR l4       t]P
                  V 3R lR l4       t	]P
                  V 3R	 lR
 l4       t
]P
                  V 3R lR l4       t]P
                  V 3R lR l4       tRV 3R lR lltV 3R ltRtV tR# )ÚDepc                óJ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          /# ©é   Úunbacked_onlyÚreturn©Úboolr   ÚsympyÚSymbol)ÚformatÚ__classdict__s   "€Ú]/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_inductor/dependencies.pyÚ__annotate__ÚDep.__annotate__*   s&   ø€ ÷ ñ Ù!ðá	‘E—L‘LÕ	!ñó    c                ó   € R # ©N© ©Úselfr    s   &&r(   Úget_free_symbol_usesÚDep.get_free_symbol_uses)   s   € ñ 	r+   c                ó<   <€ V ^8„  d   QhRS[ S[S[3,          RS[/# )r   Úrenamesr!   )ÚdictÚstrr   )r&   r'   s   "€r(   r)   r*   0   s#   ø€ ÷ ñ ™d¡3© 8�nð ±ñ r+   c                ó   € R # r-   r.   ©r0   r4   s   &&r(   ÚrenameÚ
Dep.rename/   ó   € ár+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   r!   ©r$   ÚExpr)r&   r'   s   "€r(   r)   r*   4   s   ø€ ÷ ñ ™5Ÿ:™:ñ r+   c                ó   € R # r-   r.   ©r0   s   &r(   Ú	get_numelÚDep.get_numel3   r;   r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   ©Úint)r&   r'   s   "€r(   r)   r*   8   s   ø€ ÷ ñ ™sñ r+   c                ó   € R # r-   r.   rA   s   &r(   Únumbytes_hintÚDep.numbytes_hint7   r;   r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   r*   <   s   ø€ ÷ ñ ™Cñ r+   c                ó   € R # r-   r.   rA   s   &r(   Ú
numel_hintÚDep.numel_hint;   r;   r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   ©r#   )r&   r'   s   "€r(   r)   r*   @   s   ø€ ÷ ñ ¡dñ r+   c                ó   € R # r-   r.   rA   s   &r(   Úhas_unbacked_symbolsÚDep.has_unbacked_symbols?   r;   r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   r*   D   s   ø€ ÷ ñ ™tñ r+   c                ó   € R # r-   r.   rA   s   &r(   Úis_contiguousÚDep.is_contiguousC   r;   r+   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r   Úprefixr!   )r6   r   )r&   r'   s   "€r(   r)   r*   G   s   ø€ ÷ ñ ±#ð Áñ r+   c                ó   € V # r-   r.   )r0   rY   s   &&r(   Únormalize_with_stride_orderÚDep.normalize_with_stride_orderG   s   € Øˆr+   c                óF   <€ V ^8„  d   Qh/ S[ ;R&   S[P                  ;R&   # )r   ÚnameÚindex©r6   r$   r?   )r&   r'   s   "€r(   r)   r*   %   s   ø‡ ‚ Ù
�Iñ á�:‰:Ñò r+   r.   N©F©Út)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚabcÚabstractmethodr1   r9   rB   rH   rL   rQ   rU   r[   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r'   s   @r(   r   r   %   sÒ   ø‡ € ð 	×Ñ÷ñ ó ðð
 	×Ñ÷ó ðð 	×Ñ÷ó ðð 	×Ñ÷ó ðð 	×Ñ÷ó ðð 	×Ñ÷ó ðð 	×Ñ÷ó ð÷ò ÷E ƒ r+   r   T)Úfrozenc                   ó”  a € ] tR t^Kt o RtR(V 3R lR lltV 3R lR lt]V 3R lR l4       tV 3R lR	 lt	V 3R
 lR lt
V 3R lR ltR)V 3R lR llt]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltR*V 3R  lR! lltV 3R" lR# ltV 3R$ lR% ltV 3R& ltR'tV tR# )+Ú	MemoryDepNc                óJ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          /# r   r"   )r&   r'   s   "€r(   r)   ÚMemoryDep.__annotate__U   s&   ø€ ÷ 
ñ 
Ù!ð
á	‘E—L‘LÕ	!ñ
r+   c                óš   € \        V P                  V4      \        V P                  V4      ,          \        V P                  V4      ,          # r-   )r
   r_   ÚsizeÚ	var_namesr/   s   &&r(   r1   ÚMemoryDep.get_free_symbol_usesU   s=   € ô ˜TŸZ™Z¨Ó7Ü˜tŸy™y¨-Ó8õ9ä˜tŸ~™~¨}Ó=õ>ð	
r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   ©r6   )r&   r'   s   "€r(   r)   rr   ^   s   ø€ ÷ Tñ T™#ñ Tr+   c                óš   € R pV P                   e   RV P                    2pRV P                  : RV P                   RV P                   V R2# )Ú z, z
MemoryDep(Ú))Úmoder^   r_   Úranges)r0   Ú
maybe_modes   & r(   Ú__repr__ÚMemoryDep.__repr__^   sM   € Øˆ
Ø�9‰9Ò Ø˜dŸi™i˜[Ð)ˆJØ˜DŸI™I™=¨¨4¯:©:¨,°b¸¿¹¸ÀjÀ\ÐQRÐSÐSr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   rr   e   s   ø€ ÷ #ñ #™#ñ #r+   c                ó,   € \        V P                  4      # r-   )Úlenru   rA   s   &r(   Únum_varsÚMemoryDep.num_varsd   s   € ä�4—>‘>Ó"Ð"r+   c                óB   <€ V ^8„  d   QhRRRS[ S[,          R,          /# )r   Úotherrp   r!   N)ÚlistrF   )r&   r'   s   "€r(   r)   rr   h   s$   ø€ ÷ =ñ =°ð =ÁÁSÅ	ÈDÕ@Pñ =r+   c                ó\  € V P                   VP                   8w  d&   \        RV P                    RVP                    24      hV P                   \        V P                  P                  4      8w  d   R# VP                   \        VP                  P                  4      8w  d   R# \
        ;QJ dE    R \        P                  ! V P                  VP                  4       4       F  '       g   K   RM:	  RM6! R \        P                  ! V P                  VP                  4       4       4      '       d   R# \        P                  P                  P                  V P                  V P                  4      p\        P                  P                  P                  VP                  VP                  4      p\        \        V4      4      \        V4      8w  g#   \        \        V4      4      \        V4      8w  d   \        P!                  RV VVV4       R# \        V4      \        V4      8w  d   R# \#        V4       UUu/ uF  w  rEWTbK	  	  pppV Uu. uF  qVV,          NK  	  pp\        V4      \        \%        V P                   4      4      8w  d   \        RV P                    R	V 24      hV# u uppi u upi )
z4
Can return None if not able to decide loop orders.
z expected num_vars to match, got z and Nc              3   óD   "  € T F  q^ 8H  ;'       g    V^8H  x € K  	  R# 5i)r   Nr.   )Ú.0Úss   & r(   Ú	<genexpr>Ú7MemoryDep.decide_loop_order_to_match.<locals>.<genexpr>€   s#   é € ÐPÑ)O A�A‰v×Ð˜˜a™ÔÓ)Oùs   ‚ ’ TFzaunable to decide loop order. self_dep=%s v.s. other_dep=%s, self_strides=%s v.s. other_strides=%sz,expected order to be a permutation of range(z), got )r„   ÚAssertionErrorrƒ   r_   r   ÚanyÚ	itertoolsÚchainrt   r   ÚgraphÚsizevarsÚstride_hintsru   r   ÚlogÚdebugÚ	enumerateÚrange)r0   r‡   Úself_stridesÚother_stridesÚirŒ   Ústride_to_indexÚorders   &&      r(   Údecide_loop_order_to_matchÚ$MemoryDep.decide_loop_order_to_matchh   s  € ð �=‰=˜EŸN™NÔ*Ü Ø2°4·=±=°/ÀÀuÇ~Á~ÐFVÐWóð ð �=‰=œC §
¡
× 7Ñ 7Ó8Ô8ÙØ�>‰>œS §¡×!9Ñ!9Ó:Ô:Ù÷ ‹3ÑP¬¯ª¸¿¹ÀEÇJÁJÔ)OÓP�3�3Š3ÑP¬¯ª¸¿¹ÀEÇJÁJÔ)OÓP×PÒPÙô —w‘w×'Ñ'×4Ñ4°T·Z±ZÀÇÁÓPˆÜŸ™×(Ñ(×5Ñ5°e·k±kÀ5Ç?Á?ÓSˆô Œz˜,Ó'Ó(¬C°Ó,=Ô=ÄÜ�}Ó%óB
ä�ÓôB ô �I‰IØsØØØØôñ ô
 �lÓ#¤z°-Ó'@Ô@Ùä,5°lÔ,CÔDÑ,C¡D A˜1š4Ñ,CˆÑDÙ-:Ó;©]¨ ×#Ð#©]ˆÐ;ä�eÓ¤
¬5°·±Ó+?Ó @Ô@Ü Ø>¸t¿}¹}¸oÈWÐUZÐT[Ð\óð ð ˆùó EùÚ;s   È3J#ÉJ)c                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   rr   §   s   ø€ ÷ Hñ H™EŸJ™Jñ Hr+   c                ój   € \        V P                  \        P                  V P                  ^ 4      4      # )z6
Return the offset by setting every variable to be 0.
)r   r_   r5   Úfromkeysru   rA   s   &r(   Ú
get_offsetÚMemoryDep.get_offset§   s$   € ô ˜$Ÿ*™*¤d§m¡m°D·N±NÀAÓ&FÓGÐGr+   c                ó   <€ V ^8„  d   QhRR/# ©r   r!   rp   r.   )r&   r'   s   "€r(   r)   rr   ­   s   ø€ ÷ 

ñ 

˜;ñ 

r+   c                ó˜   € \        V P                  .\        P                  V P                  V P
                  4      OV P                  N5!  # )z¼
Normalize by merging loops. The difference from normalize_with_stride_order is,
this method does not reorder loops while normalize_with_stride_order reorders
loops based on stride order.
)rp   r^   Ú_RecordLoadStoreInnerÚ
_normalizer_   r}   r|   rA   s   &r(   Ú	normalizeÚMemoryDep.normalize­   sC   € ô Ø�I‰Ið
ä"×-Ñ-¨d¯j©j¸$¿+¹+ÓFð
ð �I‰Ió
ð 	
r+   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   rY   r!   rp   rx   )r&   r'   s   "€r(   r)   rr   ¹   s   ø€ ÷ *ñ *±#ð *Àñ *r+   c                ó>  € ^ RI Hp \        P                  P                  P                  V P                  V P                  4      p\        \        \        V4      4      VP                  RR7      pVP                  V4      pV P                  pV P                  pV! V4      pV! V4      p	\        P                  P                  P                  V	V\        V P                  .W˜4      4      w  r«p\!        V4      w  rÞ\#        \%        T	T! V
 Uu. uF
  qþ! V4      NK  	  up4      4      4      p\'        \(        P*                  ! V P                  4      V4      p\-        V P.                  V\1        VP3                  4       4      \1        VP5                  4       4      4      pV# u upi )zÿ
Used to decide if two MemoryDep does not equal due to different loop orders.
More specifically, when dep1 and dep2 are not equal, we can normalize
both and check if they are equal after that. If yes, then the mismatch is
caused by different loop orders.
)ÚirT)ÚkeyÚreverse)Útorch._inductorr¯   r   r“   r”   r•   r_   ru   Úsortedr™   rƒ   Ú__getitem__Úsame_reorderrt   Ú_simplify_loopsr   Úvar_builderr5   Úzipr   r$   Úexpandrp   r^   ÚtupleÚkeysÚvalues)r0   rY   r¯   Ústridesrž   Ústride_reorderÚsizesru   Únew_reordered_sizesÚnew_reordered_var_namesÚnew_simplified_sizesÚreindexÚ_pruneÚ
var_rangesÚadd_varÚxÚreplacementÚ	new_indexÚouts   &&                 r(   r[   Ú%MemoryDep.normalize_with_stride_order¹   sU  € õ 	'ä—'‘'×"Ñ"×/Ñ/°·
±
¸D¿N¹NÓKˆô ”uœS ›\Ó*°×0CÑ0CÈTÔRˆØŸ™¨Ó/ˆØ—	‘	ˆØ—N‘Nˆ	á,¨UÓ3ÐÙ"0°Ó";Ðä01·±×0@Ñ0@×0PÑ0PØ#ØÜ$Ø—‘�Ð5óó1
Ñ-Ð vô *¨&Ó1Ñˆ
ÜÜØ'ÙÑ-AÓBÑ-A¨˜ žÑ-AÑBÓCóó
ˆô œuŸ|š|¨D¯J©JÓ7¸ÓEˆ	äØ�I‰I�y¤%¨
¯©Ó(9Ó":¼EÀ*×BSÑBSÓBUÓ<Vó
ˆð ˆ
ùò Cs   Ä	Fc                ó^   <€ V ^8„  d   QhRS[ S[P                  S[P                  3,          /# r=   )r5   r$   r%   r?   )r&   r'   s   "€r(   r)   rr   æ   s&   ø€ ÷ 4ñ 4™™UŸ\™\©5¯:©:Ð5Õ6ñ 4r+   c                óT   € \        \        V P                  V P                  4      4      # )z{c0: 128, c1: 512, ...})r5   r¸   ru   rt   rA   s   &r(   r}   ÚMemoryDep.rangeså   s   € ô ”C˜Ÿ™¨¯	©	Ó2Ó3Ð3r+   c                ó   <€ V ^8„  d   QhRR/# r§   r.   )r&   r'   s   "€r(   r)   rr   ê   s   ø€ ÷ 
ñ 
 kñ 
r+   c                óê   € \        V P                  \        P                  P                  P                  V P                  V P                  4      V P                  V P                  V P                  R 7      # ))r^   r_   ru   rt   r|   )rp   r^   r   r“   r”   Úsimplify_with_rangesr_   r}   ru   rt   r|   rA   s   &r(   rÑ   ÚMemoryDep.simplify_with_rangesê   sM   € ÜØ—‘Ü—'‘'×"Ñ"×7Ñ7¸¿
¹
ÀDÇKÁKÓPØ—n‘nØ—‘Ø—‘ô
ð 	
r+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   rr   ó   s   ø€ ÷ 	ñ 	™5Ÿ:™:ñ 	r+   c                ól  € V P                  4       '       d,   \        P                  P                  V P                  4      pV# \        V P                  P                  4      p\        P                  P                  p\        V P                  V P                  4       F  w  r4W29   g   K  W,          pK  	  V# r-   )Úis_indirectr   r“   rB   r^   r   r_   r   r$   ÚSÚOner¸   ru   rt   )r0   ÚnumelÚvarsÚvarrt   s   &    r(   rB   ÚMemoryDep.get_numeló   s�   € Ø×Ñ×ÒÜ—G‘G×%Ñ% d§i¡iÓ0ˆEð ˆô -7°t·z±z×7NÑ7NÓ,OˆDÜ—G‘G—K‘KˆEÜ  §¡°·±Ö;‘	�Ø–;Ø!�L’Eñ <ð ˆr+   c                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   r4   r!   rp   ©r5   r6   )r&   r'   s   "€r(   r)   rr   þ   s#   ø€ ÷ 	ñ 	™d¡3© 8�nð 	°ñ 	r+   c                ó¸   € V P                   V9   dI   \        WP                   ,          V P                  V P                  V P                  V P
                  R 7      # V # ))ru   rt   r|   )r^   rp   r_   ru   rt   r|   r8   s   &&r(   r9   ÚMemoryDep.renameþ   sH   € Ø�9‰9˜ÔÜØŸ	™	Õ"Ø—
‘
ØŸ.™.Ø—Y‘YØ—Y‘Yôð ð ˆr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   rr   	  ó   ø€ ÷ ñ ™sñ r+   c                ó  €  \         P                  P                  P                  V P	                  4       ^ R7      \        \         P                  P                  V P                  4      4      ,          #   \         d     ^ # i ; i©r   )Úfallback©	r   r“   r”   Úoptimization_hintrB   r   Ú	get_dtyper^   ÚNotImplementedErrorrA   s   &r(   rH   ÚMemoryDep.numbytes_hint	  ói   € ð	Ü—7‘7×#Ñ#×5Ñ5Ø—‘Ó ¨1ð 6ó äœqŸw™w×0Ñ0°·±Ó;Ó<õ=ð =øô #ô 	Úð	úó   ‚A/A2 Á2BÂ Bc                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   rr     ó   ø€ ÷ ñ ™Cñ r+   c                óš   €  \         P                  P                  P                  V P	                  4       ^ R7      #   \
         d     ^ # i ; irã   ©r   r“   r”   ræ   rB   rè   rA   s   &r(   rL   ÚMemoryDep.numel_hint  óA   € ð	Ü—7‘7×#Ñ#×5Ñ5°d·n±nÓ6FÐQRÐ5ÓSÐSøÜ"ô 	Úð	úó   ‚8; »A
Á	A
c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rr     ó   ø€ ÷ @ñ @¡dñ @r+   c                óL   € \        \        V P                  4       4      4      ^ 8„  # ©r   ©rƒ   r   rB   rA   s   &r(   rQ   ÚMemoryDep.has_unbacked_symbols  ó   € ÜÔ(¨¯©Ó)9Ó:Ó;¸aÑ?Ð?r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rr     s   ø€ ÷ Uñ U™tñ Ur+   c                óä   € \        V P                  \        P                  4      '       d   R # \        V P                  \        P                  4      ;'       d    V P                  V P
                  9   # ©T)Ú
isinstancer_   r$   ÚIntegerr%   ru   rA   s   &r(   rU   ÚMemoryDep.is_contiguous  sD   € Ü�d—j‘j¤%§-¡-×0Ò0ÙÜ˜$Ÿ*™*¤e§l¡lÓ3×TÐT¸¿
¹
ÀdÇnÁnÑ8TÐTr+   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   Úresult_for_complex_expressionr!   rO   )r&   r'   s   "€r(   r)   rr     s   ø€ ÷ -ñ -Á$ð -ÑRVñ -r+   c                óz  € \        V P                  4      ^ 8X  d   R# \        V P                  \        P
                  4      '       d   V P                  P                  MV P                  .pV P                  R,          pV F¸  pWC8X  d    R# \        V\        P                  4      '       g   K.  \        VP                  4      ^8X  g   KJ  VP                  ^,          V8X  g   Kd  \        VP                  ^ ,          \        \        P                  34      '       g   K�  VP                  ^ ,          ^8”  g   K·   R# 	  V# )z1
Whether the stride for the last dimension is 1.
TFéÿÿÿÿ)
rƒ   ru   rý   r_   r$   ÚAddÚargsÚMulrF   rþ   )r0   r  ÚtermsÚlast_symÚterms   &&   r(   Ústride1_for_last_dimÚMemoryDep.stride1_for_last_dim  sÎ   € ô ˆt�~‰~Ó !Ô#Ùä#-¨d¯j©j¼%¿)¹)×#DÒ#D�—
‘
—’È4Ï:É:È,ˆà—>‘> "Õ%ˆÛˆDØÔÚô
 ˜4¤§¡×+Ô+Ü˜Ÿ	™	“N aÖ'Ø—I‘I˜a•L HÖ,Ü˜tŸy™y¨�|¬c´5·=±=Ð-A×BÔBØ—I‘I˜a•L 1Ö$âñ ð -Ð,r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rr   <  s   ø€ ÷ <ñ <™4ñ <r+   c                ó  € \        V P                  \        P                  4      '       d7   V P                  V P                  9  ;'       d    V P                  4       '       * # \        V P                  \        \        P                  34      # r-   )rý   r_   r$   r%   ru   rÕ   rF   rþ   rA   s   &r(   Ú	is_scalarÚMemoryDep.is_scalar<  sX   € Ü�d—j‘j¤%§,¡,×/Ò/Ø—:‘: T§^¡^Ñ3×NÐN¸D×<LÑ<LÓ<NÔ8NÐNÜ˜$Ÿ*™*¤s¬E¯M©MÐ&:Ó;Ð;r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rr   A  s   ø€ ÷ Iñ I™Tñ Ir+   c                óº   € \         ;QJ d0    R  V P                  P                   4       F  '       g   K   R# 	  R# ! R  V P                  P                   4       4      # )c              3   óL   "  € T F  p\        VP                  4      x € K  	  R # 5ir-   )rÕ   r^   )r‹   Úvs   & r(   r�   Ú(MemoryDep.is_indirect.<locals>.<genexpr>B  s   é € ÐHÑ0G¨1”;˜qŸv™v×&Ð&Ó0Gùs   ‚"$TF)r�   r_   r   rA   s   &r(   rÕ   ÚMemoryDep.is_indirectA  s?   € ß‹sÑH°·
±
×0GÒ0GÓH�sŒsÐHŠsÐHˆsÑH°·
±
×0GÒ0GÓHÓHÐHr+   c                óÈ   <€ V ^8„  d   Qh/ S[ ;R&   S[P                  ;R&   S[S[P                  R3,          ;R&   S[S[P                  R3,          ;R&   S[ R,          ;R&   # )r   r^   r_   .ru   rt   Nr|   )r6   r$   r?   rº   r%   )r&   r'   s   "€r(   r)   rr   K   sh   ø‡ ‚ ñ �Iñ ñ
 �:‰:Ññ ñ ‘U—\‘\ 3Ð&Õ'Ñ'ñ ñ ‘—
‘
˜C�Õ
 Ñ ñ ñ ��*Ñò r+   r.   ra   rb   rü   )rd   re   rf   rg   r|   r1   r   Úpropertyr„   rŸ   r¤   r«   r[   r}   rÑ   rB   r9   rH   rL   rQ   rU   r
  r  rÕ   rj   rk   rl   rm   s   @r(   rp   rp   K   sè   ø‡ € ð €D÷
ò 
÷Tð Tð ÷#ó ð#÷=ð =÷~Hð H÷

ð 

÷*ò *ðX ÷4ó ð4÷
ð 
÷	ð 	÷	ð 	÷ð ÷ð ÷@ð @÷Uð U÷
-ò -÷:<ð <÷
Ið I÷m ƒ r+   rp   c                   óò   a € ] tR tRt o Rt]V 3R lR l4       tV 3R lR ltV 3R lR ltRV 3R	 lR
 llt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )ÚStarDepiE  Nc                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   ÚStarDep.__annotate__N  ó   ø€ ÷ Dñ D‘u—z‘zñ Dr+   c                ó   € \        R 4      h)zStarDep does not have an index©rè   rA   s   &r(   r_   ÚStarDep.indexL  ó   € ô "Ð"BÓCÐCr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   r  Q  s   ø€ ÷ ,ñ ,™5Ÿ:™:ñ ,r+   c                óT   € \         P                  P                  V P                  4      # r-   )r   r“   rB   r^   rA   s   &r(   rB   ÚStarDep.get_numelQ  s   € Ü�w‰w× Ñ  §¡Ó+Ð+r+   c                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   r4   r!   r  rÝ   )r&   r'   s   "€r(   r)   r  T  ó#   ø€ ÷ ñ ™d¡3© 8�nð °ñ r+   c                ót   € V P                   V9   d'   \        WP                   ,          V P                  4      # V # r-   )r^   r  r|   r8   s   &&r(   r9   ÚStarDep.renameT  s+   € Ø�9‰9˜ÔÜ˜7§9¡9Õ-¨t¯y©yÓ9Ð9Øˆr+   c                óJ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          /# r   r"   )r&   r'   s   "€r(   r)   r  Y  ó&   ø€ ÷ ñ Ù!ðá	‘E—L‘LÕ	!ñr+   c                ó   € \        4       # r-   r   r/   s   &&r(   r1   ÚStarDep.get_free_symbol_usesY  ó   € ô ‹|Ðr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   r  ^  rá   r+   c                ó  €  \         P                  P                  P                  V P	                  4       ^ R7      \        \         P                  P                  V P                  4      4      ,          #   \         d     ^ # i ; irã   rå   rA   s   &r(   rH   ÚStarDep.numbytes_hint^  rê   rë   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   r  f  rí   r+   c                óš   €  \         P                  P                  P                  V P	                  4       ^ R7      #   \
         d     ^ # i ; irã   rï   rA   s   &r(   rL   ÚStarDep.numel_hintf  rñ   rò   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   r  l  rô   r+   c                óL   € \        \        V P                  4       4      4      ^ 8„  # rö   r÷   rA   s   &r(   rQ   ÚStarDep.has_unbacked_symbolsl  rù   r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   r  o  ó   ø€ ÷ ñ ™tñ r+   c                ó   € R # ra   r.   rA   s   &r(   rU   ÚStarDep.is_contiguouso  ó   € Ùr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   r  r  s   ø€ ÷ ñ ™4ñ r+   c                ó   € R # ra   r.   rA   s   &r(   r  ÚStarDep.is_scalarr  r:  r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   r  u  s   ø€ ÷ ñ ™Tñ r+   c                ó   € R # ra   r.   rA   s   &r(   rÕ   ÚStarDep.is_indirectu  r:  r+   c                ó@   <€ V ^8„  d   Qh/ S[ ;R&   S[ R,          ;R&   # )r   r^   Nr|   rx   )r&   r'   s   "€r(   r)   r  E  s"   ø‡ ‚ ñ �Iñ ñ ��*Ñò	 r+   r.   ra   )rd   re   rf   rg   r|   r  r_   rB   r9   r1   rH   rL   rQ   rU   r  rÕ   rj   rk   rl   rm   s   @r(   r  r  E  s†   ø‡ € ð €Dð ÷Dó ðD÷,ð ,÷ð ÷
ò ÷
ð ÷ð ÷@ð @÷ð ÷ð ÷ð ÷a ƒ r+   r  c                   óÎ   a € ] tR tRt o RtRV 3R lR llt]V 3R lR l4       tV 3R lR ltV 3R	 lR
 lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )ÚWeakDepi�  Fc                óJ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          /# r   r"   )r&   r'   s   "€r(   r)   ÚWeakDep.__annotate__�  r)  r+   c                ó   € \        4       # r-   r   r/   s   &&r(   r1   ÚWeakDep.get_free_symbol_uses�  r,  r+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   rE  –  r  r+   c                ó   € \        R 4      h)zWeakDep does not have an indexr  rA   s   &r(   r_   ÚWeakDep.index”  r   r+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r=   r>   )r&   r'   s   "€r(   r)   rE  ™  s   ø€ ÷ ñ ™5Ÿ:™:ñ r+   c                ó6   € \         P                  P                  # r-   )r$   rÖ   r×   rA   s   &r(   rB   ÚWeakDep.get_numel™  s   € Ü�w‰w�{‰{Ðr+   c                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   r4   r!   rC  rÝ   )r&   r'   s   "€r(   r)   rE  œ  r%  r+   c                óŠ   € V P                   V9   d2   \        WP                   ,          V P                  V P                  4      # V # r-   )r^   rC  Úmutating_bufÚis_faker8   s   &&r(   r9   ÚWeakDep.renameœ  s3   € Ø�9‰9˜ÔÜ˜7§9¡9Õ-¨t×/@Ñ/@À$Ç,Á,ÓOÐOØˆr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   rE  ¡  s   ø€ ÷ ñ ™sñ r+   c                ó   € ^# ©é   r.   rA   s   &r(   rH   ÚWeakDep.numbytes_hint¡  ó   € Ùr+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rE   )r&   r'   s   "€r(   r)   rE  ¤  s   ø€ ÷ ñ ™Cñ r+   c                ó   € ^# rU  r.   rA   s   &r(   rL   ÚWeakDep.numel_hint¤  rX  r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rE  §  s   ø€ ÷ ñ ¡dñ r+   c                ó   € R # ra   r.   rA   s   &r(   rQ   ÚWeakDep.has_unbacked_symbols§  r:  r+   c                ó    <€ V ^8„  d   QhRS[ /# r=   rO   )r&   r'   s   "€r(   r)   rE  ª  r7  r+   c                ó   € R # ra   r.   rA   s   &r(   rU   ÚWeakDep.is_contiguousª  r:  r+   c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   # )r   r^   rP  rQ  )r6   r#   )r&   r'   s   "€r(   r)   rE  �  s+   ø‡ ‚ ñ �Iñ	 ñ Ññ ñ Ñò r+   r.   Nra   )rd   re   rf   rg   rQ  r1   r  r_   rB   r9   rH   rL   rQ   rU   rj   rk   rl   rm   s   @r(   rC  rC  �  sp   ø‡ € ð €G÷ò ð
 ÷Dó ðD÷ð ÷ð ÷
ð ÷ð ÷ð ÷ð ÷S ƒ r+   rC  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚIndexExprDepi®  c                ó¢   <€ V ^8„  d   Qh/ S[ P                  ;R&   S[S[ P                  R3,          ;R&   S[S[ P                  R3,          ;R&   # )r   r_   .ru   rt   ©r$   r?   rº   r%   )r&   r'   s   "€r(   r)   ÚIndexExprDep.__annotate__®  sI   ø‡ ‚ á�:‰:Ññ ñ ‘U—\‘\ 3Ð&Õ'Ñ'ñ ñ ‘—
‘
˜C�Õ
 Ñ ò	 r+   r.   N)rd   re   rf   rg   rj   rk   rl   rm   s   @r(   rd  rd  ®  s   ø‡ ‡ „ r+   rd  c                   óÖ   a € ] tR tRt o RtRtV 3R lR ltV 3R lR ltV 3R lR lt]	V 3R	 lR
 l4       t
V 3R lR ltV 3R lR ltRV 3R lR lltRV 3R lR lltV 3R ltRtV tR# )Ú
ReadWritesiµ  Nc                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   r4   r!   ri  rÝ   )r&   r'   s   "€r(   r)   ÚReadWrites.__annotate__½  s#   ø€ ÷ 
ñ 
™d¡3© 8�nð 
°ñ 
r+   c                óÒ   a€ \        \        V3R  lV P                   4       4      \        V3R lV P                   4       4      V P                  V P
                  V P                  4      # )c              3   óD   <"  € T F  qP                  S4      x € K  	  R # 5ir-   ©r9   ©r‹   Údepr4   s   & €r(   r�   Ú$ReadWrites.rename.<locals>.<genexpr>¿  s   øé € ÐA±j¨s—z‘z '×*Ð*³jùó   ƒ c              3   óD   <"  € T F  qP                  S4      x € K  	  R # 5ir-   rn  ro  s   & €r(   r�   rq  À  s   øé € ÐB±k¨s—z‘z '×*Ð*³kùrr  )ri  r   ÚreadsÚwritesÚindex_exprsÚ
range_varsrÅ   r8   s   &fr(   r9   ÚReadWrites.rename½  sK   ø€ ÜÜÔA°d·j²jÓAÓAÜÔB°d·k²kÓBÓBØ×ÑØ�O‰OØ�O‰Oó
ð 	
r+   c                óD   <€ V ^8„  d   QhRS[ S[S[ ,          ,          RR/# )r   rp  r!   ri  )r   r   )r&   r'   s   "€r(   r)   rk  Æ  s$   ø€ ÷ 
ñ 
™S¡:©c¥?Õ2ð 
°|ñ 
r+   c                ób  € \        V\        \        \        34      '       g   \	        R \        V4       24      h\        V\        4      '       g   \        V.4      p\        \        P                  ! V P                  V4      V P                  V P                  V P                  V P                  4      # )z.expected WeakDep, StarDep, or OrderedSet, got )rý   rC  r  r   r�   Útyperi  Úunionrt  ru  rv  rw  rÅ   )r0   rp  s   &&r(   Ú	with_readÚReadWrites.with_readÆ  s‹   € Ü˜#¤¬´*Ð=×>Ò>Ü Ø@ÄÀcÃÀÐLóð ô ˜#œz×*Ò*Ü˜c˜UÓ#ˆCÜÜ×Ò˜TŸZ™Z¨Ó-Ø�K‰KØ×ÑØ�O‰OØ�O‰Oó
ð 	
r+   c                ó"   <€ V ^8„  d   QhRRRR/# )r   r‡   ri  r!   r.   )r&   r'   s   "€r(   r)   rk  Õ  s   ø€ ÷ ?ñ ?˜<ð ?¨Lñ ?r+   c                ó(  € \         P                  ! V P                  VP                  4      p\         P                  ! V P                  VP                  4      p\         P                  ! V P                  VP                  4      p\        W#,
          W44      # r-   )r   r|  rt  ru  rv  ri  )r0   r‡   rt  ru  rv  s   &&   r(   ÚmergeÚReadWrites.mergeÕ  sc   € Ü× Ò  §¡¨U¯[©[Ó9ˆÜ×!Ò! $§+¡+¨u¯|©|Ó<ˆÜ ×&Ò& t×'7Ñ'7¸×9JÑ9JÓKˆÜ˜%�.¨&Ó>Ð>r+   c                ó2   <€ V ^8„  d   QhRS[ R,          RR/# )r   Úread_writesri  r!   )rˆ   )r&   r'   s   "€r(   r)   rk  Ü  s$   ø€ ÷ Bñ B¡ \Õ 2ð B°|ñ Br+   c                óT  € \         P                  ! V  Uu. uF  qP                  NK  	  up!  p\         P                  ! V  Uu. uF  qP                  NK  	  up!  V,
          p\         P                  ! V  Uu. uF  qP                  NK  	  up!  p\        W2V4      # u upi u upi u upi r-   )r   r|  ru  rt  rv  ri  )r„  ÚrwÚ
all_writesÚ	all_readsÚall_index_exprss   &    r(   Ú
merge_listÚReadWrites.merge_listÛ  sƒ   € ä×%Ò%¹KÓ'H¹K°b¯	¬	¹KÑ'HÑIˆ
Ü×$Ò$¹+Ó&F¹+°B§x¤x¹+Ñ&FÑGÈ*ÕTˆ	Ü$×*Ò*ÁkÓ,RÁkÀ¯^¬^ÁkÑ,RÑSˆÜ˜)°ÓAÐAùò (IùÚ&FùÚ,Rs   •BÁB Á6B%c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r   Ú	rem_readsr!   ri  )r   r   )r&   r'   s   "€r(   r)   rk  â  s   ø€ ÷ 
ñ 
¡j±¥oð 
¸,ñ 
r+   c                ó’   € \        V P                  V,
          V P                  V P                  V P                  V P
                  4      # r-   )ri  rt  ru  rv  rw  rÅ   )r0   r�  s   &&r(   Úremove_readsÚReadWrites.remove_readsâ  s9   € ÜØ�J‰J˜Õ"Ø�K‰KØ×ÑØ�O‰OØ�O‰Oó
ð 	
r+   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r=   )r   r   )r&   r'   s   "€r(   r)   rk  ë  s   ø€ ÷ 8ñ 8¡(©3¥-ñ 8r+   c                óX   € \         P                  ! V P                  V P                  4      # r-   )r‘   r’   rt  ru  rA   s   &r(   Úreads_and_writesÚReadWrites.reads_and_writesë  s   € Ü�Š˜tŸz™z¨4¯;©;Ó7Ð7r+   c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r   Úignore_integer_indexr!   )r#   r   r6   )r&   r'   s   "€r(   r)   rk  î  s   ø€ ÷ ñ ±ð ÁÉCÅñ r+   c                ó"  € \        4       pV P                  4        Fp  p\        V\        4      '       g   K  V'       d3   \        VP                  \
        \        P                  34      '       d   KU  VP                  VP                  4       Kr  	  V# )z&
Integer index is used for load_seed.
)
r   r“  rý   rp   r_   rF   r$   rþ   Úaddr^   )r0   r–  Únamesrp  s   &&  r(   Úbuffer_namesÚReadWrites.buffer_namesî  sh   € ô ",£ˆØ×(Ñ(Ö*ˆCÜ˜c¤9×-Ò-Ùß'¬zØ—	‘	œC¤§¡Ð/÷0ô 0ð —	‘	˜#Ÿ(™(Ö#ñ +ð ˆr+   c                óJ   <€ V ^8„  d   QhRS[ RS[S[P                  ,          /# r   r"   )r&   r'   s   "€r(   r)   rk  ü  s&   ø€ ÷ ñ Ù!ðá	‘E—L‘LÕ	!ñr+   c                óv   € \        4       pV P                  4        F  pW#P                  V4      ,          pK  	  V# r-   )r   r“  r1   )r0   r    Úresultrp  s   &&  r(   r1   ÚReadWrites.get_free_symbol_usesü  s6   € ô ,6«<ˆà×(Ñ(Ö*ˆCØ×.Ñ.¨}Ó=Õ=ŠFñ +àˆr+   c                óÆ   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[S[P
                  ,          R,          ;R&   S[R,          ;R&   # )r   rt  ru  rv  Nrw  rÅ   )r   r   rd  rˆ   r$   r?   r   )r&   r'   s   "€r(   r)   rk  µ  sd   ø‡ ‚ á‘c�?Ññ ñ ‘s�OÑñ ñ ™LÕ)Ñ)ñ	 ñ
 ‘U—Z‘ZÕ  4Õ'Ñ.ñ ñ ˜DÕ Ñ'ò r+   r.   rü   ra   )rd   re   rf   rg   rw  rÅ   r9   r}  r�  ÚstaticmethodrŠ  r�  r“  rš  r1   rj   rk   rl   rm   s   @r(   ri  ri  µ  su   ø‡ € ð
 +/€JØ#'€J÷
ð 
÷
ð 
÷?ð ?ð ÷Bó ðB÷
ð 
÷8ð 8÷ò ÷ò ÷O ƒ r+   ri  c                   ó  a a€ ] tR tRt oV3R lV 3R llt]V3R lR l4       t]V3R lR l4       tV3R lR	 lt	V3R
 lR lt
V3R lR ltRV3R lR lltV3R lR ltV3R lR ltV3R lR ltRV3R lR lltRtVtV ;t# )r©   i  c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# ©r   rÅ   r«   r!   N©r   r#   )r&   r'   s   "€r(   r)   Ú"_RecordLoadStoreInner.__annotate__  s"   ø€ ÷ 1ñ 1¡9ð 1¹ð 1À$ñ 1r+   c                ó–   <€ \         SV `  4        \        4       V n        \        4       V n        \        4       V n        Wn        W n        R # r-   )ÚsuperÚ__init__r   Ú_readsÚ_writesÚ_index_exprsÚ_var_rangesÚ_should_normalize)r0   rÅ   r«   Ú	__class__s   &&&€r(   r©  Ú_RecordLoadStoreInner.__init__  s6   ø€ Ü‰ÑÔÜ'1£|ˆŒÜ.8«lˆŒÜ6@³lˆÔØ&0ÔØ'0Ör+   c                óœ   <€ V ^8„  d   QhRS[ S[P                  ,          RS[S[P                  ,          RS[S[P                  ,          RR/# )r   r_   ru   r¿   r!   N)rF   r$   r?   rˆ   )r&   r'   s   "€r(   r)   r¦    sL   ø€ ÷ ñ Ù‘U—Z‘ZÕðá™Ÿ
™
Õ#ðñ ‘E—J‘JÕðð 
ñ	r+   c                óÖ   € \        V \        P                  4      '       g   R# V P                  pV'       d3   VR,          V9  d#   VP	                  4        VP	                  4        K8  R# R# )zb
Reduction has last (reduced) dim in its sizes, but
downstream users won't.  Normalize this away.
Nr  )rý   r$   r?   r   Úpop)r_   ru   r¿   r   s   &&& r(   Údrop_unused_symbolsÚ)_RecordLoadStoreInner.drop_unused_symbols  sJ   € ô ˜%¤§¡×,Ò,áØ×)Ñ)ˆß˜I b�M°Ô=Ø�M‰MŒOØ�I‰IŽKñ >‰ir+   c                ó¾   <€ V ^8„  d   QhRS[ P                  RS[RS[S[ P                  S[S[ P                  R3,          S[S[ P                  R3,          3,          /# )r   r_   rÅ   r!   .)r$   r?   r   rº   r%   )r&   r'   s   "€r(   r)   r¦  "  sT   ø€ ÷ 8ñ 8Ù—J‘Jð8Ù,5ð8á	‰u�z‰z™5¡§¡¨sÐ!2Õ3±U¹5¿:¹:Às¸?Õ5KÐKÕ	Lñ8r+   c                ó  € . VP                  4       Op\        VP                  4       4      p\        P                  P
                  P                  VV\        V.W44      4      w  rVp\        \        4       4      w  r‰\        \        Y6! V U
u. uF
  q©! V
4      NK  	  up
4      4      4      p\        \        P                  ! V4      V4      p. VP                  4       Op. VOpV P                  WV4       V\        V4      \        V4      3# u up
i r-   )r»   rº   r¼   r   r“   r”   r¶   r   r·   Úcanonicalization_prefixr5   r¸   r   r$   r¹   r´  )Úclsr_   rÅ   Ú
index_varsr¿   Ú	new_sizesrÃ   rÄ   Únew_varsrÆ   rÇ   rÈ   s   &&&         r(   rª   Ú _RecordLoadStoreInner._normalize!  sï   € ð *�z—‘Ó(Ð)ˆ
Ü�j×'Ñ'Ó)Ó*ˆÜ%&§W¡W×%5Ñ%5×%EÑ%EØØÜ$ e W¨jÓ@ó&
Ñ"ˆ	˜Fô (Ô(?Ó(AÓBÑˆÜœ3˜z¨7É	Ó3RÉ	À1°G¸A¶JÉ	Ñ3RÓ+SÓTÓUˆÜœ5Ÿ<š<¨Ó.°Ó<ˆà%�X—]‘]“_Ð%ˆØ �i�Lˆ	Ø×Ñ °Ô;Ø”e˜H“o¤u¨YÓ'7Ð7Ð7ùò 4Ss   Â
Dc          	      ó¸   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[S[ P                  R3,          S[S[ P                  R3,          3,          /# )r   r_   r!   .rf  )r&   r'   s   "€r(   r)   r¦  ;  sL   ø€ ÷ 2ñ 2Ù—Z‘Zð2á	‰u�z‰z™5¡§¡¨sÐ!2Õ3±U¹5¿:¹:Às¸?Õ5KÐKÕ	Lñ2r+   c                óÂ  € V P                   '       gÓ   V P                  P                  4        Uu. uF,  p\        P                  P
                  P                  V4      NK.  	  pp\        V P                  P                  4       V4       UUu. uF  w  rEV^8w  g   K  VNK  	  pppV Uu. uF  qU^8w  g   K  VNK  	  ppV P                  WV4       V\        V4      \        V4      3# V P                  P                  4        UUu/ uF/  w  rEV\        P                  P
                  P                  V4      bK1  	  pppV P                  W4      # u upi u uppi u upi u uppi rU  )r®  r­  r¼   r   r“   r”   Úsimplifyr¸   r»   r´  rº   Úitemsrª   )r0   r_   rÇ   r¿   Úkr  ru   rÅ   s   &&      r(   ÚcanonicalizeÚ"_RecordLoadStoreInner.canonicalize;  s0  € ð ×%×%Ð%Ø;?×;KÑ;K×;RÑ;RÔ;TÓUÑ;T°a”Q—W‘W×%Ñ%×.Ñ.¨qÖ1Ñ;TˆEÐUÜ'*¨4×+;Ñ+;×+@Ñ+@Ó+BÀEÔ'JÔUÑ'J™t˜qÈaÐSTÉfŸ˜Ñ'JˆIÑUÙ %Ó0¡˜1¨a©—Q�Q¡ˆEÐ0à×$Ñ$ U°uÔ=àœ% 	Ó*¬E°%«LÐ8Ð8ð ×(Ñ(×.Ñ.Ô0ô
á0‘�ð Œq�w‰w×Ñ×(Ñ(¨Ó+Ò+Ù0ð 	ñ 
ð �‰˜uÓ1Ð1ùò VùÛUùÚ0ùó

s#   ¯2EÂ
EÂEÂ'EÂ4EÄ5Ec                ó>   <€ V ^8„  d   QhRS[ RS[P                  RR/# ©r   r^   r_   r!   Nr`   )r&   r'   s   "€r(   r)   r¦  N  s+   ø€ ÷ Dñ D™ð D¡U§Z¡Zð D°Dñ Dr+   c                óp   € V P                   P                  \        V.V P                  V4      O5!  4       R # r-   )rª  r˜  rp   rÃ  ©r0   r^   r_   s   &&&r(   ÚloadÚ_RecordLoadStoreInner.loadN  s'   € Ø�‰�‰œ	 $ÐB¨×):Ñ):¸5Ó)AÓBÖCr+   c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# rÆ  )r6   rF   )r&   r'   s   "€r(   r)   r¦  Q  s"   ø€ ÷ .ñ .™cð .©#ð .°$ñ .r+   c                ó¬   € \        V\        4      '       g   \        R \        V4       24      hV P	                  V\
        P                  ! V4      4       R# )zexpected index to be int, got N)rý   rF   r�   r{  rÉ  r$   rþ   rÈ  s   &&&r(   Ú	load_seedÚ_RecordLoadStoreInner.load_seedQ  s=   € Ü˜%¤×%Ò%Ü Ð#AÄ$ÀuÃ+ÀÐ!OÓPÐPØ�	‰	�$œŸš eÓ,Ö-r+   c          
      óX   <€ V ^8„  d   QhRS[ RS[P                  RS[ RS[ R,          RR/# )r   r^   r_   Úvaluer|   Nr!   r`   )r&   r'   s   "€r(   r)   r¦  V  sD   ø€ ÷ Pñ PÙðPÙ %§
¡
ðPÙ36ðPÙ>AÀD½jðPà	ñPr+   c                ót   € V P                   P                  \        V.V P                  V4      O5R V/ 4       R# )r|   N)r«  r˜  rp   rÃ  )r0   r^   r_   rÐ  r|   s   &&&&&r(   ÚstoreÚ_RecordLoadStoreInner.storeV  s0   € ð 	�‰×Ñœ 4ÐN¨$×*;Ñ*;¸EÓ*BÒNÈÑNÖOr+   c                óD   <€ V ^8„  d   QhRS[ RS[P                  RS[ RR/# )r   r^   r_   rÐ  r!   Nr`   )r&   r'   s   "€r(   r)   r¦  [  s-   ø€ ÷ =ñ =¡Cð =±·
±
ð =Á3ð =È4ñ =r+   c                ó2   € V P                  WR V R24       R# )zstore_reduction(r{   N)rÒ  )r0   r^   r_   rÐ  s   &&&&r(   Ústore_reductionÚ%_RecordLoadStoreInner.store_reduction[  s   € Ø�
‰
�4Ð"2°5°'¸Ð ;Ö<r+   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[P                  R,          RR/# ©r   r_   ÚdtypeNr!   ©r$   r?   ÚtorchrÚ  )r&   r'   s   "€r(   r)   r¦  ^  ó4   ø€ ÷ Gñ G¡§
¡
ð G±5·;±;ÀÕ3Eð GÈ$ñ Gr+   c                óh   € V P                   P                  \        V P                  V4      !  4       R # r-   ©r¬  r˜  rd  rÃ  ©r0   r_   rÚ  s   &&&r(   Ú
index_exprÚ _RecordLoadStoreInner.index_expr^  ó&   € Ø×Ñ×Ñœl¨D×,=Ñ,=¸eÓ,DÑEÖFr+   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[P                  R,          RR/# rÙ  rÛ  )r&   r'   s   "€r(   r)   r¦  a  rÝ  r+   c                óh   € V P                   P                  \        V P                  V4      !  4       R # r-   rß  rà  s   &&&r(   Ú
value_exprÚ _RecordLoadStoreInner.value_expra  rã  r+   c                óü   <€ V ^8„  d   QhRS[ RS[S[S[P                  S[P                  S[P                  3,          RS[ RS[P                  RS[RS[S[S[P                  3,          R,          RS[ R,          R	R/# )
r   r¼   Ú
boundariesÚboundary_indicesÚindexing_dtypeÚrightÚsorterNÚsorter_indicesr!   )r   rº   r6   r$   r?   rÜ  rÚ  r#   )r&   r'   s   "€r(   r)   r¦  d  s�   ø€ ÷ 0ñ 0áð0ñ ™#™uŸz™z©5¯:©:±u·z±zÐAÕBð0ñ ð	0ñ
 Ÿ™ð0ñ ð0ñ ‘c™5Ÿ:™:�oÕ&¨Õ-ð0ñ ˜D�ð0ð 
ñ0r+   c                ó¾   € V P                   P                  \        V^ ,          4      4       Ve.   V P                   P                  \        V^ ,          4      4       R# R# )z?Records the names of the buffers that bucketize will read from.N)rª  r˜  r  )r0   r¼   ré  rê  rë  rì  rí  rî  s   &&&&&&&&r(   Ú	bucketizeÚ_RecordLoadStoreInner.bucketized  sA   € ð 	�‰�‰œ 
¨1¥Ó.Ô/ØÒØ�K‰K�O‰OœG F¨1¥IÓ.Ö/ñ r+   )r¬  rª  r®  r­  r«  r-   ©NN)rd   re   rf   rg   r©  r¡  r´  Úclassmethodrª   rÃ  rÉ  rÍ  rÒ  rÖ  rá  ræ  rð  rk   rl   Ú__classcell__©r¯  r'   s   @@r(   r©   r©     s”   ù‡ € ÷1ó 1ð ÷ó ðð" ÷8ó ð8÷22ð 2÷&Dð D÷.ð .÷
Pò P÷
=ð =÷Gð G÷Gð G÷0÷ 0ò 0r+   r©   c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚRecordLoadStoreit  c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# r¤  r¥  )r&   r'   s   "€r(   r)   ÚRecordLoadStore.__annotate__u  s"   ø€ ÷ 8ñ 8¡9ð 8¹ð 8À$ñ 8r+   c                ó@   <€ \        WR 7      p\        SV `	  VR7       R# )©rÅ   r«   )Úparent_handlerN)r©   r¨  r©  )r0   rÅ   r«   rü  r¯  s   &&& €r(   r©  ÚRecordLoadStore.__init__u  s"   ø€ Ü.Ø!ô
ˆô 	‰Ñ¨ÐÖ7r+   r.   )rd   re   rf   rg   r©  rk   rl   rô  rõ  s   @@r(   r÷  r÷  t  s   ù‡ € ÷8÷ 8ó 8r+   r÷  c                óž   € V ^8„  d   QhR\         R\        \        \        \        P
                  .\        P                  3,          3,          /# rX   )r6   rº   r   r   r$   r?   r%   )r&   s   "r(   r)   r)   }  s8   € ÷ 	ñ 	œð 	¤¤i´¼5¿:¹:¸,ÌÏÉÐ:TÕ1UÐ&UÕ Vñ 	r+   c                 óT   a aa€ \         P                  ! 4       o/ oR  VV V3R llpSV3# )c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Úlengthr!   )r$   r?   r%   )r&   s   "r(   r)   Ú!var_builder.<locals>.__annotate__�  s"   € ÷ ñ œŸ
™
ð ¤u§|¡|ñ r+   c                 óB   <€ \        S \        S4       24      pV SV&   V# r-   )r   Únext)r  r  ÚcntrY   rÅ   s   & €€€r(   rÆ   Úvar_builder.<locals>.add_var�  s(   ø€ Ü & ¬$¨s«)¨Ð5Ó6ˆØˆ
�1‰Øˆr+   )r‘   Úcount)rY   rÆ   r  rÅ   s   f @@r(   r·   r·   }  s+   ú€ Ü
�/Š/Ó
€CØ€J÷ò ð
 �wÐÐr+   c          	      óÈ   € V ^8„  d   QhR\         \        P                  ,          R\        R\        \
        \
        \        P                  ,          ,          \        3,          /# ©r   ÚargsizesrY   r!   )r   r$   r?   r6   rº   rˆ   r%   r   )r&   s   "r(   r)   r)   ‰  sE   € ÷ ñ ÜœŸ
™
Õ#ðÜ-0ðä
Œ4””U—\‘\Õ"Õ#¤YÐ.Õ/ñr+   c           	      ór   € \        V 4      w  r#V Uu. uF  p\        \        W44      4      NK  	  ppWR3# u upi r-   )r·   rˆ   Úmap)rY   r
  rÅ   rÆ   rt   r  s   $*    r(   Úindex_vars_no_squeezer  ‰  s>   € ô & fÓ-Ñ€JÙKSÓ%TÉ8À4¤d¬3¨wÓ+=Ö&>É8€DÐ%TØÐÐùò &Us   ’4rY   Údc          	      óÈ   € V ^8„  d   QhR\         \        P                  ,          R\        R\        \
        \         \        P                  ,          ,          \        3,          /# r	  )r   r$   r?   r6   rº   rˆ   r   )r&   s   "r(   r)   r)   ‘  sE   € ÷ 
ñ 
ÜœŸ
™
Õ#ð
Ü-0ð
ä
Œ4”œŸ™Õ$Õ%¤yÐ0Õ1ñ
r+   c                 ó¼   € ^RI Hp \        V 4      w  r4. pV F?  pVP                  V4      w  rxVP	                  V! \        \        WG4      4      4      4       KA  	  WS3# )rV  )ÚSqueezeView)r¯   r  r·   ÚsqueezerÚappendrˆ   r  )	rY   r
  r  rÅ   rÆ   r  rt   Únew_sizerÃ   s	   $*       r(   Úindex_vars_squeezer  ‘  s\   € õ  ä% fÓ-Ñ€JØ')€DÛˆØ'×0Ñ0°Ó6ÑˆØ�‰‘GœD¤ WÓ!7Ó8Ó9Ö:ñ ð ÐÐr+   r«   FÚhidden_argsc                óä   € V ^8„  d   QhR\         R\        3,          R\        \        P                  ,          R\
        R\        R\        \        \        P                  ,          ,          R\        /# )r   Úfn.r
  r«   rY   r  r!   )	r   r   r   r$   r?   r#   r6   rˆ   ri  )r&   s   "r(   r)   r)   ž  sd   € ÷ 'ñ 'Ü�”c�Õð'äœŸ
™
Õ#ð'ô ð'ô ð	'ô
 œ$œuŸz™zÕ*Õ+ð'ô ñ'r+   c                ó   € \        VR V/ w  rV^RIHp \        W4      '       d   \	        V . VOVOVV4      pMJ\        WaR7      p	\        P                  ! V	4      ;_uu_ 4        V ! . VOVO5!   RRR4       V	P                  pV'       d   . p
M!. \        P                  P                  V4      Op
\        \        VP                  4      \        VP                  4      VP                   V
V4      #   + '       g   i     L‡; i)rY   )ÚLoopBody)r«   N)r  Ú	loop_bodyr  rý   Úextract_loop_body_with_argsr÷  r   Úset_ops_handlerrü  r‘   r’   Úfrom_iterableri  r   rª  r«  r¬  )r  r«   rY   r  r
  r  rÅ   r  Úinnerr†  rw  s   &$$$*      r(   Úextract_read_writesr   ž  sß   € ô *¨8ÐC¸FÑCÑ€Då#ä�"×ÒÜ+ØØ!ˆdÐ!�[Ð!ØØó	
‰ô ˜ZÔ=ˆÜ×Ò˜r×"Õ"ÙÐ#�Ð#�{Ô#÷ #à×!Ñ!ˆçØ‰
à;”y—‘×4Ñ4°TÓ:Ð;ˆ
ää�5—<‘<Ó ä�5—=‘=Ó!à×ÑØØó	ð 	÷ #×"ús   Á"C-Ã-C=	c          
      ó”   € V ^8„  d   QhR\         R\        \        \        P                  ,          ,          R\        R\
        R\        /# )r   r  r  rÅ   r«   r!   )r   rˆ   r$   r?   r   r#   r©   )r&   s   "r(   r)   r)   È  sH   € ÷ -ñ -Üð-ä
Œt”E—J‘JÕÕ
 ð-ô ð-ô ð	-ô
 ñ-r+   c           	      ó*  € ^RI Hp \        W#R7      pV P                  V4      pV P                  '       do   \        V P                  4       UUu/ uF   w  rxV\        \        P                  V4      bK"  	  p	ppVP                  4        U
Uu/ uF  w  r¨V
\        W‰4      bK  	  pp
pV P                  VP                  ,           F/  pVP                  VP                  WkP                  ,          4       K1  	  V P                  VP                   ,           F8  pVP#                  VP                  \%        WkP                  ,          4      4       K:  	  V P                  VP&                  ,           F;  pVP)                  VP                  WkP                  ,          RVP*                  4       K=  	  V P                  VP,                  ,           F0  pVP/                  VP                  WkP                  ,          R4       K2  	  V P                  VP0                  ,           F%  pVP3                  WkP                  ,          R4       K'  	  V P                  VP4                  ,           F&  pVP7                  RVP                  RRR3RRR4       K(  	  V# u uppi u upp
i )rV  )ÚMemoryUsageTyperû  N)r  r#  r©   Úindexing_from_argsÚindirect_varsr˜   r   r   ÚTMPrÁ  r   Úmemory_usageÚLOADrÉ  Úbuffer_nameÚ
index_nameÚ	LOAD_SEEDrÍ  rF   ÚSTORErÒ  r|   ÚSTORE_REDUCTIONrÖ  Ú
INDEX_EXPRrá  Ú	BUCKETIZErð  )r  r  rÅ   r«   r#  r  Úname_to_indexrœ   r  ÚreplrÂ  Úentrys   &&&&        r(   r  r  È  s   € õ +ô "¨ZÔM€EØ×)Ñ)¨$Ó/€MØ	××Ðä8AÀ"×BRÑBRÔ8SÔTÑ8S±°�”;œtŸx™x¨Ó+Ò+Ñ8SˆÑTØ<I×<OÑ<OÔ<QÔRÑ<Q±D°A˜œJ qÓ/Ò/Ñ<QˆÑRØ—‘ ×!5Ñ!5×6Ð6ˆØ�
‰
�5×$Ñ$ m×4DÑ4DÕ&EÖFñ 7à—‘ ×!:Ñ!:×;Ð;ˆØ�‰˜×)Ñ)¬3¨}×=MÑ=MÕ/NÓ+OÖPñ <à—‘ ×!6Ñ!6×7Ð7ˆØ�‰Ø×ÑØ×*Ñ*Õ+ØØ�J‰Jö		
ñ 8ð —‘ ×!@Ñ!@×AÐAˆØ×ÑØ×ÑØ×*Ñ*Õ+Øö	
ñ Bð —‘ ×!;Ñ!;×<Ð<ˆØ×Ñ˜×'7Ñ'7Õ8¸$Ö?ñ =à—‘ ×!:Ñ!:×;Ð;ˆð 	�‰ØØ×Ñ  d¨DÐ1ØØØö	
ñ <ð €LùóA UùÛRs   Á&J	Â
Jc                óº   € V ^8„  d   QhRRR\         \        \        P                  ,          R,          \        \        P                  ,          R,          3,          /# )r   Ú
input_nodeztorch._inductor.ir.IRNoder!   N)rº   rˆ   r$   r?   )r&   s   "r(   r)   r)   ø  sF   € ÷ @"ñ @"Ø+ð@"ä
Œ4”—
‘
Õ˜dÕ"¤D¬¯©Õ$4°tÕ$;Ð;Õ<ñ@"r+   c                ó`  € ^RI HpHpHp \	        V P                  4       V4      '       d:   . V P                  4       Op. V P                  4       Op\        V4      ^ 8”  d   WE3# R# \	        V P                  P                  V4      '       g   R# V P                  4       pRpRpVEf‰   \        V4      ^ 8”  Edx   \        4       p. pV EFM  p	\	        V	\        4      '       g   K  V	P                  V9   d   K/  VP                  V	P                  4       \        P                   P#                  V	P                  4      p
V
f   Ky  V
P                  4       pVe   \	        W²4      '       d   K   \	        W±4      '       d~   \        VP                  4       4      ^ 8”  d`   Vf'   . VP                  4       Op. VP                  4       OpKù  V. VP                  4       O8w  g   V. VP                  4       O8w  d   Ru # EK.  VP%                  VP                  4       4       EKP  	  Wh8X  d   WE3# \        V4      pEK�  WE3# )aD  
Returns the size and reduction size of all inputs, if the sizes and reduction_sizes (if exist) are all the same.
It's possible that a node has multiple inputs, some are Reduction nodes and others are Pointwise nodes.
In this case, reduction_sizes of the Reduction nodes need to be the same.
Otherwise returns (None, None).
)ÚComputedBufferÚExternKernelÚLoopsNrò  )r¯   r6  r7  r8  rý   Úget_defining_opÚget_sizeÚget_reduction_sizerƒ   ÚdataÚ	get_readsr   rp   r^   r˜  r   r“   Útry_get_bufferÚextend)r4  r6  r7  r8  rt   Úreduction_sizert  ÚseenÚ	new_readsÚreadÚbufferÚops   &           r(   Ú#extract_input_node_reduction_rangesrF  ø  sö  € ÷ 8Ñ7ô
 �*×,Ñ,Ó.°×?Ò?à'�×$Ñ$Ó&Ð'ˆØ;˜:×8Ñ8Ó:Ð;ˆÜˆ~Ó Ô"ØÐ)Ð)àÐä�j—o‘o×*Ñ*¨E×2Ò2àÐð
 × Ñ Ó"€EØ.2€NØ$(€DØ
Ó
 ¤S¨£Z°!¥^Ü *£ˆØ!ˆ	ÜˆDÜ˜d¤I×.Ò.ÙØ�y‰y˜DÔ ÙØ�H‰H�T—Y‘YÔÜ—W‘W×+Ñ+¨D¯I©IÓ6ˆFØŠ~ÙØ×'Ñ'Ó)ˆBØŠzœZ¨×9Ò9Ùä˜"×-Ò-´#°b×6KÑ6KÓ6MÓ2NÐQRÔ2RØ!Ò)Ø%? r×'<Ñ'<Ó'>Ð%?�NØ+˜RŸ[™[›]Ð+’DØ#Ð'A¨×)>Ñ)>Ó)@Ð'AÔAÀTð NØ—[‘[“]ðNô Fð (Ò'òFð
 × Ñ  §¡£×0ñ- ð. ÔØÐ)Ð)ä˜yÓ)‹EØÐ!Ð!r+   c                ó$   € V ^8„  d   QhR\         /# r=   rx   )r&   s   "r(   r)   r)   ;  s   € ÷ ñ ¤ñ r+   c                  ó   € R # )Úcr.   r.   r+   r(   r¸  r¸  ;  s   € Ùr+   c                   óÄ   a € ] tR tRt o RV 3R lR lltV 3R lR ltRV 3R lR lltV 3R lR	 ltV 3R
 lR ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R ltRtV tR# )ÚFreeSymbolsOpsHandleri@  c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r    r!   NrO   )r&   r'   s   "€r(   r)   Ú"FreeSymbolsOpsHandler.__annotate__C  s   ø€ ÷ Tñ T¡dð T°dñ Tr+   c                ód   € \        4       V n        V'       d   \        V n        R # \        V n        R # r-   )r   Úsymbolsr   r   Úget_symbolsr/   s   &&r(   r©  ÚFreeSymbolsOpsHandler.__init__C  s   € Ü!“|ˆŒß4AÔ0ˆÖÄ|ˆÖr+   c                ó\   <€ V ^8„  d   QhRS[ RS[S[R3,          RS[S[ S[3,          RS[/# ©r   r^   r  .Úkwargsr!   ©r6   rº   r   r5   )r&   r'   s   "€r(   r)   rM  G  s:   ø€ ÷ 4ñ 4™Sð 4©©c°3¨h­ð 4ÁÁcÉ3ÀhÅð 4ÑTWñ 4r+   c                ó8  € \         P                  ! W#P                  4       4       Fq  p\        V\        P
                  \        P                  P                  P                  34      '       g   KI  V ;P                  V P                  V4      ,          un	        Ks  	  R # r-   )r‘   r’   r¼   rý   r$   r?   ÚlogicÚboolalgÚBooleanrO  rP  )r0   r^   r  rT  Úas   &&&& r(   Ú_defaultÚFreeSymbolsOpsHandler._defaultG  sZ   € Ü—’ §}¡}£Ö7ˆAÜ˜!œeŸj™j¬%¯+©+×*=Ñ*=×*EÑ*EÐF×GÔGØ—’ × 0Ñ 0°Ó 3Õ3—ó 8r+   c          
      óp   <€ V ^8„  d   QhRS[ RS[S[P                  ,          RS[RS[RS[P
                  /# )r   Ú	index_varrt   ÚcheckÚwrap_negr!   )r   rF   r$   r?   r#   r%   )r&   r'   s   "€r(   r)   rM  L  sJ   ø€ ÷ 9ñ 9áð9ñ ‘E—J‘JÕð9ñ ð	9ñ
 ð9ñ 
�‰ñ9r+   c                ó8  € \        V\        P                  \        P                  P                  P
                  34      '       d   \        R \        V4       24      hV ;P                  V P                  V4      ,          un        \        R\        V4       R24      # )z3index_var must not be a sympy Expr or Boolean, got Ú(r{   )rý   r$   r?   rW  rX  rY  r�   r{  rO  rP  r   r6   )r0   r^  rt   r_  r`  s   &&&&&r(   Úindirect_indexingÚ'FreeSymbolsOpsHandler.indirect_indexingL  sz   € ô �i¤%§*¡*¬e¯k©k×.AÑ.A×.IÑ.IÐ!J×KÒKÜ ØEÄdÈ9ÃoÐEVÐWóð ð 	�Š˜×(Ñ(¨Ó.Õ.�Ü! A¤c¨)£nÐ%5°QÐ"7Ó8Ð8r+   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r   rÇ   r!   ©N.)r   rº   )r&   r'   s   "€r(   r)   rM  Z  s    ø€ ÷ ñ ‘sð ™u YÕ/ñ r+   c                ó   € R# )Nrò  r.   )r0   rÇ   s   &&r(   ÚfrexpÚFreeSymbolsOpsHandler.frexpZ  s   € ØÐr+   c          	      óP   <€ V ^8„  d   QhRS[ RS[ RS[S[ ,          RS[R,          /# )r   ÚdtypesÚ
combine_fnr¼   r!   rf  ©r   r   rº   )r&   r'   s   "€r(   r)   rM  ]  s6   ø€ ÷ %ñ %Ùð%Ù'*ð%Ù4<¹SµMð%á	ˆyÕ	ñ%r+   c                ó&   € R\        V4      ,          # ©Nr-   ©rƒ   )r0   rk  rl  r¼   s   &&&&r(   ÚscanÚFreeSymbolsOpsHandler.scan]  ó   € ð œ˜V›Õ$Ð$r+   c                óV   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[ RS[ RS[R,          /# )r   rk  r¼   ÚstableÚ
descendingr!   rf  rm  )r&   r'   s   "€r(   r)   rM  b  s>   ø€ ÷ %ñ %Ùð%Ù#+©C¥=ð%Ù:=ð%ÙKNð%á	ˆyÕ	ñ%r+   c                ó&   € R\        V4      ,          # ro  rp  )r0   rk  r¼   ru  rv  s   &&&&&r(   ÚsortÚFreeSymbolsOpsHandler.sortb  rs  r+   c                ó˜   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[RRS[R,          ,          RRS[R,          ,          /# )r   rÚ  Ú	src_dtypeÚreduction_typerÐ  Nr!   rf  )rÜ  rÚ  r   rº   )r&   r'   s   "€r(   r)   rM  g  s`   ø€ ÷ @ñ @á�{‰{ð@ñ —;‘;ð@ñ &ð	@ð
 ‘e˜IÕ&Õ&ð@ð 
‘�iÕ Õ	 ñ@r+   c                ó<   € \        V4      pV^8”  d
   RV,          # R# )rV  Nr-   )r   )r0   rÚ  r{  r|  rÐ  Ú
num_valuess   &&&&& r(   Ú	reductionÚFreeSymbolsOpsHandler.reductiong  s$   € ô +¨>Ó:ˆ
Ø'1°A¤~ˆw˜Õ#Ð?¸4Ð?r+   c                óD   <€ V ^8„  d   QhRS[ RS[RS[ 3,          RS[ RR/# )r   ÚmaskÚbody.r‡   r!   N)r   r   )r&   r'   s   "€r(   r)   rM  q  s2   ø€ ÷ ñ ™3ð ¡h¨s±C¨xÕ&8ð Áð Èñ r+   c                óL   € \        V4      '       g   \        R 4      hV! 4        R# )z$masked body must always be callable.N)Úcallabler�   )r0   r‚  rƒ  r‡   s   &&&&r(   ÚmaskedÚFreeSymbolsOpsHandler.maskedq  s   € Ü˜�~Š~Ü Ð!GÓHÐHáŽr+   c                óJ   <€ V ^8„  d   Qh/ S[ S[P                  ,          ;R&   # )r   rO  )r   r$   r%   )r&   r'   s   "€r(   r)   rM  @  s   ø‡ ‚ Ù™Ÿ™Õ%Ñ%ò r+   )rP  rO  Nrü   )TT)rd   re   rf   rg   r©  r[  rc  rh  rq  rx  r  r†  rj   rk   rl   rm   s   @r(   rK  rK  @  sa   ø‡ € ÷Tò T÷4ð 4÷
9ò 9÷ð ÷%ð %÷
%ð %÷
@ð @÷ð ÷c ƒ r+   rK  c                óú   € V ^8„  d   QhR\         R\        3,          R\        \        P                  ,          R\        \        P                  ,          R,          R\
        R\        \        P                  ,          /# )r   r  .r_   ÚrindexNr    r!   )r   r   r   r$   r?   r#   r   r%   )r&   s   "r(   r)   r)   x  sc   € ÷ ñ Ü�”c�Õðä”E—J‘JÕðô ”U—Z‘ZÕ  4Õ'ðô ð	ô
 ”—‘Õñr+   c           	      ó^  € ^RI Hp Ve   W.MV.p\        V4      p\        P                  ! V4      ;_uu_ 4        \
        P                  ! VRR4      ;_uu_ 4        V ! V!   RRR4       RRR4       VP                  #   + '       g   i     L$; i  + '       g   i     TP                  # ; i)rV  )ÚFlexibleLayoutNÚallow_indexingT)r¯   rŒ  rK  r   r  r	   ÚobjectrO  )r  r_   rŠ  r    rŒ  r  Úhandlers   &&&&   r(   Úextract_free_symbolsr�  x  sƒ   € õ #à$Ò0ˆE‰?°u°g€DÜ# MÓ2€Gô 	
×Ò˜'×"Õ"Ü�Š�^Ð%5°t×<Õ<á
ˆDŠ	÷ 	=÷ 	#ð �?‰?Ð÷ 	=×<ú÷ 	#Ö"ð �?‰?Ðús#   º!BÁA>	Á"BÁ>BÂ	BÂB,	c                   óP   a € ] tR tRt o V 3R lR ltV 3R lR ltV 3R ltRtV tR# )	ÚSymbolUsageCollectorOpsHandleriŒ  c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# )r   Úsymbolr!   N)r$   r%   )r&   r'   s   "€r(   r)   Ú+SymbolUsageCollectorOpsHandler.__annotate__�  s   ø€ ÷ #ñ #™uŸ|™|ð #°ñ #r+   c                ó0   € Wn         \        4       V n        R # r-   )r”  r   Úusages)r0   r”  s   &&r(   r©  Ú'SymbolUsageCollectorOpsHandler.__init__�  s   € ØŒÜ “lˆŽr+   c                ó\   <€ V ^8„  d   QhRS[ RS[S[R3,          RS[S[ S[3,          RS[/# rS  rU  )r&   r'   s   "€r(   r)   r•  “  s:   ø€ ÷ "ñ "™Sð "©©c°3¨h­ð "ÁÁcÉ3ÀhÅð "ÑTWñ "r+   c                ó¸   € V P                   V9   ;'       g    V P                   VP                  4       9   pV'       d   V P                  P                  V4       R # R # r-   )r”  r¼   r—  r˜  )r0   r^   r  rT  Ú	used_heres   &&&& r(   r[  Ú'SymbolUsageCollectorOpsHandler._default“  s?   € Ø—K‘K 4Ñ'×IÐI¨4¯;©;¸&¿-¹-»/Ñ+Iˆ	ßØ�K‰K�O‰O˜DÖ!ñ r+   c                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r   r—  )r   r6   )r&   r'   s   "€r(   r)   r•  Œ  s   ø‡ ‚ Ù‘s�OÑò r+   )r”  r—  N)	rd   re   rf   rg   r©  r[  rj   rk   rl   rm   s   @r(   r’  r’  Œ  s    ø‡ € ÷#ð #÷"ð "÷ ƒ r+   r’  r.   ra   )NT)Frh   Údataclassesr‘   ÚloggingÚreÚcollections.abcr   r   r   Útypingr   r   Útyping_extensionsr   Úunittest.mockr	   r$   rÜ  Útorch._inductor.utilsr
   Ú%torch.fx.experimental.symbolic_shapesr   r   Útorch.utils._ordered_setr   Úutils._sympy.symbolr   r   Úcodegen.commonr   Úops_handlerr   Úutilsr   r   r   r   r   Úvirtualizedr   r   r   Ú	getLoggerrd   r–   ÚcompileÚsearchrÕ   ÚABCr   Ú	dataclassrp   r  rC  rd  ri  ÚMockHandlerr©   ÚKernelFormatterHandlerr÷  r·   r  r  r   r  rF  r¸  rK  r�  r’  r.   r+   r(   Ú<module>r´     sÜ  ðÛ 
Û Û Û Û 	ß 8Ñ 8ß Ý "Ý ã ã Ý 2ß UÝ /ç 3Ý 4Ý '÷õ ÷ *ñ ˆCƒL€à×Ò˜Ó!€Ø�jŠj˜Ó)×0Ñ0€ô#ˆ#�'‰'ô #ðL ×Ò˜dÔ#ôvI�ó vIó $ðvIðr ×Ò˜dÔ#ô0ˆcó 0ó $ð0ðv ×Ò˜dÔ#ô)ˆcó )ó $ð)ðX ×Ò˜dÔ#÷!ð !ó $ð!ð ×Ñ÷Mð Mó ðMô`k0˜AŸM™Mô k0ô\8�a×.Ñ.ô 8õ	õð
Ø36÷
ð'ð ð'ð ð	'ð
 /1÷'÷T-õ`@"õFô
5˜Nô 5÷pô(
" ^ö 
"r+   