ó
    Këgj¢D  ã                   ó¢	  • S SK r S SKrS SKJr  S SKJr  S SKJrJ	r	J
r
JrJrJr  \(       a  / SQO/ SQrSr S7S\ R                   S\ R                   S-  S	\ R                   4S
 jjr\R$                  " S S S.5      \R&                  " S8\ V Vs/ s H  n S  H  n\R)                  0 XS9PM     M     snn S/S.\
D6\R*                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  4S j5       5       5       r\R$                  " S S S.5      \R&                  " S8\ V Vs/ s H  n S  H  n\R)                  0 XS9PM     M     snn SS/S.\
D6\R*                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  4S j5       5       5       r\R$                  " S S S  S!.5      \R&                  " S8\ V Vs/ s H  n S  H  n\R)                  0 XS9PM     M     snn S/S.\
D6\R*                  S\R,                  S\R,                  S\R,                  S\R,                  S"\R,                  4
S# j5       5       5       r\R$                  " S$ S% S& S!.5      \R&                  " S8\ V Vs/ s H  n S  H  n\R)                  0 XS9PM     M     snn SS/S.\
D6\R*                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S\R,                  S"\R,                  4S' j5       5       5       r\S\ R6                  S	\4S( j5       r    S9S\ R                   S\ R                   S-  S)\ R                   S-  S*\S+\ R6                  S-  S	\ R                   4S, jjr     S:S-\ R                   S.\S/\S0\ R                   S-  S\ R                   S-  S1\S2\S+\ R6                  S-  S	\ R                   4S3 jjr  " S4 S5\ RB                  RD                  5      r#\ RH                  RJ                      S9S\ R                   S\ R6                  S-  S)\ R                   S-  S*\S+\ R6                  S-  4
S6 jj5       r&gs  snn f s  snn f s  snn f s  snn f );é    N)Úprepare_chunk_indices)ÚIS_AMDÚIS_NPUÚautotune_cache_kwargsÚget_multiprocessor_countÚinput_guardÚtensor_cache)é   é   é   é   )r
   r   r   r   é    iÿÿ  ÚxÚ
cu_seqlensÚreturnc                 óB  • Ubð  U R                  5       S:X  d   S5       eU R                  u  p#nUS:X  d   S5       e[        R                  " U 5      nUR                  S   S-
  n[	        U5       H€  nX   R                  5       nXS-      R                  5       n	X˜-
  n
U
S::  a  U SX‰24   * USX‰24'   ME  [        R                  " U SX‰24   5      nU SX‰S-
  24   USS & X°SX‰24   -
  nXÅSX‰24'   M‚     U$ [        R                  R                  S5      nU" U 5      nX°-
  nU$ )Né   úInput must be [B, T, D]é   ú*Batch size must be 1 when using cu_seqlensr   )r   r   r   éÿÿÿÿ)ÚdimÚshapeÚtorchÚ
zeros_likeÚrangeÚitemÚnnÚ	ZeroPad2d)r   r   ÚBÚTÚDÚresultÚNÚiÚstartÚendÚseq_lenÚshiftedÚdeltaÚ
time_shifts                 Ú¥C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\fla/modules/token_shift.pyÚtoken_shift_refr-      sI  € ð Ñà�u‰u‹w˜!‹|Ð6Ð6Ó6ˆ|Ø—'‘'‰ˆˆaØ�A‹vÐCÐCÓCˆvä×!Ò! !Ó$ˆØ×Ñ˜QÑ !Ñ#ˆä�q–ˆAØ‘M×&Ñ&Ó(ˆEØ˜q™S‘/×&Ñ&Ó(ˆCØ‘kˆGà˜!‹|à()¨!¨U¨Y¨,©Ð'7��q˜%˜)�|Ó$ô  ×*Ò*¨1¨Q°°	¨\©?Ó;�Ø  5¨Q© ; Ñ/�˜˜�Ø A u y L¡/Ñ1�Ø',�q˜%˜)�|Ó$ñ ð ˆä—X‘X×'Ñ'¨Ó6ˆ
Ù˜Q“-ˆØ‘ˆØˆó    c                 ó   • U S   S L$ ©Nr   © ©Úargss    r,   Ú<lambda>r4   :   ó   € ˜d <Ñ0¸Ñ<r.   c                 ó   • U S   S L$ ©NÚcacher1   r2   s    r,   r4   r4   ;   ó   €  d¨7¡m¸4Ñ&?r.   )Ú	IS_VARLENÚUSE_INITIAL_STATE)r   r
   r   ©Ú	num_warpsÚ
num_stagesÚBD)ÚconfigsÚkeyr"   r:   r;   ÚSTORE_FINAL_STATEÚ	IS_DECODEc                 ó   • [         R                  " S5      [         R                  " S5      pÜU(       aˆ  Un[         R                  " X.-   5      R                  [         R                  5      [         R                  " X.-   S-   5      R                  [         R                  5      nnXß-   nUU:¼  a  g US:H  nUUS-
  :H  nOUnUS:H  nUUS-
  :H  n[         R
                  " SU5      nUU:  nU(       a	  UU-  U-   nOXÅ-  U-  UU-  -   U-   n[         R                  " U U-   US9nU(       a	  WU-  U-   nOXÆ-  U-   nU(       a^  U	(       aW  [         R                  " UU-   US9nUU-
  n[         R                  " UU-   UUS9  U
(       a  [         R                  " UU-   UUS9  g U(       aY  U	(       a7  [         R                  " UU-   US9nUU-
  n[         R                  " UU-   UUS9  g [         R                  " UU-   U* US9  g U(       a  US-
  U-  U-   nOXÅ-  U-  US-
  U-  -   U-   n[         R                  " U U-   US9nUU-
  n[         R                  " UU-   UUS9  U
(       a"  U(       a  [         R                  " UU-   UUS9  g g g ©Nr   r   ©Úmask©ÚtlÚ
program_idÚloadÚtoÚint32ÚarangeÚstore)r   Úyr   r8   Ú	cache_outr!   r"   r?   r:   r;   rB   rC   Úi_bÚi_tÚi_nÚbosÚeosÚg_tÚis_first_posÚis_last_posÚo_dÚm_dÚbase_offsetÚb_xÚcache_offsetÚb_cacher*   Úprev_offsetÚprev_valuess                                r,   Útoken_shift_fwd_kernel_shortrb   9   sV  € ô8 �}Š}˜QÓ¤§¢¨qÓ!1ˆæØˆÜ—7’7˜:Ñ+Ó,×/Ñ/´·±Ó9¼2¿7º7À:ÑCSÐVWÑCWÓ;X×;[Ñ;[Ô\^×\dÑ\dÓ;eˆSˆØ‰iˆà�#‹:Øà˜q™ˆØ˜c A™g‘~‰àˆØ˜q™ˆØ˜a !™e‘|ˆä
�)Š)�A�rÓ
€CØ
�‰'€CæØ˜A‘g ‘m‰à‘g˜a‘i #¨¡'Ñ)¨CÑ/ˆä
�'Š'�!�k‘/¨Ñ
,€CÞØ˜Q‘w ‘}‰à‘w ‘}ˆæÖ&Ü—'’'˜% ,Ñ.°SÑ9ˆØ˜#‘ˆÜ
�Š��[‘ %¨cÒ2ÞÜ�HŠH�Y Ñ-¨s¸Ò=Øææä—g’g˜e lÑ2¸Ñ=ˆGØ˜c‘MˆEÜ�HŠH�Q˜‘_ e°#Ò6ð 	ô �HŠH�Q˜‘_ s d°Ò5Øö Ø˜1‘u ‘k CÑ'‰à‘g˜a‘i 3 q¡5¨A¡+Ñ-°Ñ3ˆä—'’'˜!˜k™/°Ñ4€KØ˜#Ñ€EÜ‡H‚HˆQ�‰_˜e¨#Ò.ÞÞÜ�HŠH�Y Ñ-¨s¸Ó=ð ð r.   c                 ó   • U S   S L$ r0   r1   r2   s    r,   r4   r4   –   r5   r.   c                 ó   • U S   S L$ r7   r1   r2   s    r,   r4   r4   —   r9   r.   ÚNBÚBTÚNDc                 óº  • [         R                  " S5      [         R                  " S5      nnXû-  Xû-  nnU(       aÍ  [         R                  " UUS-  -   5      R                  [         R                  5      [         R                  " UUS-  -   S-   5      R                  [         R                  5      nn[         R                  " UU-   5      [         R                  " UU-   S-   5      nnUU	-  n[         R
                  " UU	-   UU-
  5      nO.UnUU-  US-   U-  nnUU	-  n[         R
                  " UU	-   U5      nUU-  [         R                  " SU5      -   nUU:  n[        UU5       Hó  nUU-   nUU-  U-   n[         R                  " U U-   US9nUU:H  nU(       a@  U(       a5  U(       a  UU-  U-   OUU-  U-   n[         R                  " UU-   US9n U U-
  n!O&U* n!O"UU-
  n"[         R                  " U U"-   US9n#U#U-
  n![         R                  " UU-   U!US9  U(       d  M¸  UUS-
  :X  d  MÃ  U(       a  UU-  U-   OUU-  U-   n$[         R                  " UU$-   UUS9  Mõ     g ©Nr   r   r
   rF   ©	rI   rJ   rK   rL   rM   ÚminimumrN   r   rO   )%r   rP   r   Úchunk_indicesr8   rQ   r!   r"   r?   rf   re   rg   r:   r;   rB   Úi_dtrR   Úi_drS   rT   rU   rV   Út_startÚt_endrZ   r[   ÚtÚglobal_tÚoffsetr]   Úis_firstÚ	cache_offr_   r*   Úprev_offÚb_prevÚcache_out_offs%                                        r,   Útoken_shift_fwd_kernel_longry   •   s*  € ô> —’˜aÓ ¤"§-¢-°Ó"2ˆ#€DØ‰y˜$™*ˆ€CæÜ—7’7˜=¨3°©7Ñ2Ó3×6Ñ6´r·x±xÓ@Ü�GŠG�M C¨!¡GÑ+¨aÑ/Ó0×3Ñ3´B·H±HÓ=ð ˆä—7’7˜:¨Ñ+Ó,¬b¯gªg°jÀ3Ñ6FÈÑ6JÓ.KˆSˆØ˜‘(ˆÜ—
’
˜7 R™<¨¨s©Ó3‰àˆØ˜‘7˜S 1™W¨™MˆSˆØ˜‘(ˆÜ—
’
˜7 R™<¨Ó+ˆà
�‰(”R—Y’Y˜q "Ó%Ñ
%€CØ
�‰'€Cä�7˜EÖ"ˆØ˜‘7ˆØ˜A‘ Ñ#ˆÜ�gŠg�a˜&‘j sÑ+ˆØ ‘OˆÞÞ æ-6˜C !™G cšM¸CÀ!¹GÀc¹M�	ÜŸ'š' %¨)Ñ"3¸#Ñ>�Ø #™‘à˜‘à ‘zˆHÜ—W’W˜Q ™\°Ñ4ˆFØ˜S‘LˆEä
�Š��V‘˜U¨Ò-çÐØ˜3 ™7Õ"Þ1:  a¡¨#¢ÀÀaÁÈ#Á�Ü—’˜ ]Ñ2°C¸cÔBò/ #r.   c                 ó   • U S   S L$ r0   r1   r2   s    r,   r4   r4   á   r5   r.   c                 ó   • U S   S L$ ©NÚgrad_cache_outr1   r2   s    r,   r4   r4   â   ó   €  dÐ+;Ñ&<ÀDÑ&Hr.   c                 ó   • U S   S L$ ©NÚgrad_cache_inr1   r2   s    r,   r4   r4   ã   ó   € ˜t OÑ4¸DÑ@r.   )r:   r;   Ú
HAS_DCACHErƒ   c                 óÄ  • [         R                  " S5      [         R                  " S5      pËU(       a‡  Un[         R                  " X--   5      R                  [         R                  5      [         R                  " X--   S-   5      R                  [         R                  5      pþXÎ-   nUU:¼  a  g UU:H  nUUS-
  :H  nOUnUS:H  nUUS-
  :H  n[         R
                  " SU5      nUU:  nU(       a  UU-  U-   nWU-  U-   nOXµ-  U-  UU-  -   U-   nX¶-  U-   n[         R                  " UU-   US9nU(       a*  U
(       a  [         R                  " UU-   US9nU* U-   nOFU* nOBU(       a  US-   U-  U-   nOXµ-  U-  US-   U-  -   U-   nU* [         R                  " UU-   US9-   n[         R                  " U U-   UUS9  U	(       a"  U(       a  [         R                  " UU-   UUS9  g g g rE   rH   )ÚdxÚdyr   r�   r}   r!   r"   r?   r:   r;   rƒ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   ru   Úb_dyÚ
b_dy_cacheÚb_dxÚnext_offsets                              r,   Útoken_shift_bwd_kernel_shortr‹   à   sÔ  € ô8 �}Š}˜QÓ¤§¢¨qÓ!1ˆæØˆÜ—7’7˜:Ñ+Ó,×/Ñ/´·±Ó9¼2¿7º7À:ÑCSÐVWÑCWÓ;X×;[Ñ;[Ô\^×\dÑ\dÓ;eˆSØ‰iˆØ�#‹:ØØ˜s™
ˆØ˜c A™g‘~‰àˆØ˜q™ˆØ˜a !™e‘|ˆä
�)Š)�A�rÓ
€CØ
�‰'€CæØ˜A‘g ‘mˆà˜!‘G˜c‘M‰	à‘g ‘k C¨!¡GÑ+¨cÑ1ˆØ‘G˜c‘Mˆ	ä�7Š7�2˜Ñ#¨#Ñ.€DææÜŸš °Ñ!:ÀÑEˆJØ�5˜:Ñ%‰Dà�5‰Dö Ø ™7 a™-¨#Ñ-‰Kà™' A™+¨¨q©°A©Ñ5¸Ñ;ˆKØˆu”r—w’w˜r KÑ/°cÑ:Ñ:ˆä‡H‚HˆR�+Ñ˜t¨#Ò.æÞÜ�HŠH�^ iÑ/°¸CÓ@ð ð r.   c                 ó   • U S   S L$ r0   r1   r2   s    r,   r4   r4   /  r5   r.   c                 ó   • U S   S L$ r|   r1   r2   s    r,   r4   r4   0  r~   r.   c                 ó   • U S   S L$ r€   r1   r2   s    r,   r4   r4   1  r‚   r.   c                 ó€  • [         R                  " S5      [         R                  " S5      nnXû-  Xû-  nnU(       aÍ  [         R                  " UUS-  -   5      R                  [         R                  5      [         R                  " UUS-  -   S-   5      R                  [         R                  5      nn[         R                  " UU-   5      [         R                  " UU-   S-   5      nnUU	-  n[         R
                  " UU	-   UU-
  5      nO.UnUU-  US-   U-  nnUU	-  n[         R
                  " UU	-   U5      nUU-  [         R                  " SU5      -   nUU:  nU(       a  UU-  U-   OUU-  U-   n[        UU5       H¿  nUU-   nUU-  U-   n[         R                  " UU-   US9nUUS-
  :X  a*  U(       a  [         R                  " UU-   US9nU* U-   n O%U* n O!UU-   n!U* [         R                  " UU!-   US9-   n [         R                  " U U-   U US9  U(       d  Mž  UU:X  d  M¦  [         R                  " UU-   UUS9  MÁ     g ri   rj   )"r…   r†   r   rl   r�   r}   r!   r"   r?   rf   re   rg   r:   r;   rƒ   rm   rR   rn   Úi_t_blkrT   rU   rV   ro   rp   rZ   r[   ru   rq   rr   rs   r‡   rˆ   r‰   Únext_offs"                                     r,   Útoken_shift_bwd_kernel_longr’   .  s  € ô@ —’˜aÓ ¤"§-¢-°Ó"2ˆ#€DØ‘9˜d™jˆ€CæÜ—w’w˜}¨w¸©{Ñ:Ó;×>Ñ>¼r¿x¹xÓHÜ�GŠG�M G¨a¡KÑ/°!Ñ3Ó4×7Ñ7¼¿¹ÓAð ˆä—7’7˜:¨Ñ+Ó,¬b¯gªg°jÀ3Ñ6FÈÑ6JÓ.KˆSˆØ˜B‘,ˆÜ—
’
˜7 R™<¨¨s©Ó3‰àˆØ˜‘7˜S 1™W¨™MˆSˆØ˜B‘,ˆÜ—
’
˜7 R™<¨Ó+ˆà
�‰(”R—Y’Y˜q "Ó%Ñ
%€CØ
�‰'€CÞ!*��a‘˜#’°°a±¸#±€Iä�7˜EÖ"ˆØ˜‘7ˆØ˜A‘ Ñ#ˆÜ�wŠw�r˜F‘{¨Ñ-ˆà�s˜Q‘wÓÞÜŸWšW ]°YÑ%>ÀSÑI�
Ø�u˜zÑ)‘à�u‘à ‘zˆHØ�5œ2Ÿ7š7 2¨¡=°sÑ;Ñ;ˆDä
�Š��f‘˜d¨Ò-çÐØ˜3�Ü—’˜¨)Ñ3°TÀÔDò' #r.   c                 óf   • [         R                  " U R                  5       5      R                  5       $ ©N)r   ÚmaxÚdiffr   )r   s    r,   Úprepare_maxlensr—   w  s!   € ä�9Š9�Z—_‘_Ó&Ó'×,Ñ,Ó.Ð.r.   r8   Úoutput_cacherl   c                 ó  ^^^^• U R                   u  pVn[        R                  " U 5      nTb  [        T5      n[	        T5      S-
  mOUmUS:*  n	[
        (       a  U	(       a  TU-  [        :”  a  Sn	U(       a-  [        R                  " TU4U R                  U R                  S9n
OS n
U	(       ab  Tb  [	        T5      S-
  mOUm[        R                  " U5      nTU4nUS:H  =(       d    US:H  =(       a    UT:H  n[        U   " U UTUU
UUUUUS9
  Oû[        S[        R                  " [        R                  " [        SXV-  5      [!        U R                  R"                  5      5      5      5      nUc  Tb  [%        TU5      nTb  [	        U5      O[        R                  " Xn5      m[        R                  " U5      n[        R                  " X{5      m[        R                  " XV-  S5      nUUUU4S	 jn[&        U   " U UTUUU
UUUUUTUS
9  UTXiU
4$ )Nr   i   F©ÚdeviceÚdtype)
r   rP   r   r8   rQ   r!   r"   r?   rB   rC   é@   r   é   c                 ó   >• TT-  Tb  S4$ T4$ ©Nr   r1   ©Úmetar$   rg   ÚNTr   s    €€€€r,   ÚgridÚtoken_shift_fwd.<locals>.grid³  ó   ø€   R¡¨jÑ.D¨ÐLÐLÈ!ÐLÐLr.   )r"   r?   rf   re   rg   rB   )r   r   Ú
empty_liker—   Úlenr   Ú_NPU_MAX_TRITON_GRIDÚemptyr›   rœ   ÚtritonÚnext_power_of_2rb   ÚminÚcdivr•   r   Úindexr   ry   )r   r   r8   r˜   rl   r    r!   r"   rP   Úuse_short_kernelrQ   r?   r¤   rC   rf   re   r$   rg   r£   s    `              @@@r,   Útoken_shift_fwdr±   |  sõ  û€ ð �g‰g�G€Aˆ!Ü×Ò˜Ó€AàÑÜ˜JÓ'ˆÜ�
‹O˜aÑ‰àˆà˜D‘yÐß‚vÖ" q¨1¡uÔ/CÓ'CØ ÐæÜ—K’K  A ¨q¯x©x¸q¿w¹wÑG‰	àˆ	æØÑ!Ü�J“ !Ñ#‰AàˆAÜ×#Ò# AÓ&ˆØ�1ˆvˆØ˜‘F×1˜q A™v×0¨!¨q©&ˆ	Ü$ TÒ*ØØØ!ØØØØØØ*Øó	
ô �”V×+Ò+¬F¯KªK¼¸BÀÁ»ÔF^Ð_`×_gÑ_g×_mÑ_mÓFnÓ,oÓpÓqˆØÑ  ZÑ%;Ü1°*¸bÓAˆMØ#-Ñ#9ŒS�Ô¼v¿{º{È1Ó?Qˆä×#Ò# AÓ&ˆÜ�[Š[˜ÓˆÜ�[Š[˜™˜dÓ#ˆçLÐLÜ# DÒ)ØØØØØØØØØØØØØ*ò	
ð  ˆa� iÐ/Ð/r.   r†   r$   r!   Údcacher°   Úhas_init_cachec                 ód  ^^^^• U R                   S   n[        R                  " U5      n	[        R                  " U 5      n
U(       a-  [        R
                  " TU4U R                  U R                  S9nOS nU(       a  TU4n[        U   " U U
TUUUUU	S9  X«4$ [        S[        R                  " [        R                  " [        SU R                  5       U-  5      [        U R                  R                  5      5      5      5      nUc  Tb  [        TU5      nTb  [!        U5      O[        R                  " X-5      m[        R                  " TU R                   S   -  S5      n[        R                  " U5      n	[        R                  " X‰5      mUUUU4S jn["        U   " U
U TUUUUUU	UUTS	9  X«4$ )
Nr
   rš   )r†   r…   r   r�   r}   r!   r"   r?   r�   r   r   rž   c                 ó   >• TT-  Tb  S4$ T4$ r    r1   r¡   s    €€€€r,   r¤   Útoken_shift_bwd.<locals>.gridî  r¦   r.   )r"   r?   rf   re   rg   )r   r«   r¬   r   r§   rª   r›   rœ   r‹   r­   r®   r•   Únumelr   r¯   r   r¨   r’   )r†   r$   r!   r²   r   r°   r³   rl   r"   r?   r…   r}   r¤   rf   re   rg   r£   s    `  `          @@r,   Útoken_shift_bwdr¸   Ç  s“  û€ ð 	�‰�‰€AÜ	×	Ò	 Ó	"€BÜ	×	Ò	˜"Ó	€BÞÜŸš a¨ V°B·I±IÀRÇXÁXÑN‰àˆÞØ�1ˆvˆÜ$ TÒ*ØØØ!Ø Ø)ØØØò		
ðF ÐÐô1 �”V×+Ò+¬F¯KªK¼¸BÀÇÁÃ
ÈaÁÓ8PÜ8PÐQS×QZÑQZ×Q`ÑQ`Ó8aó-có dó eˆàÑ  ZÑ%;Ü1°*¸bÓAˆMØ#-Ñ#9ŒS�Ô¼v¿{º{È1Ó?QˆÜ�[Š[˜˜RŸX™X a™[™¨$Ó/ˆÜ×#Ò# AÓ&ˆÜ�[Š[˜ÓˆçLÐLÜ# DÒ)ØØØØØØØØØØØØò	
ð ÐÐr.   c                   ó
  • \ rS rSr\\   SS\R                  S\R                  S-  S\R                  S-  S\S\R                  S-  4
S jj5       5       r
\\SS	\R                  S
\R                  S-  4S jj5       5       rSrg)Ú
TokenShifti   Nr   r   r8   r˜   rl   c                 óx   • [        XX4U5      u  pgp‰n
X l        XPl        Xpl        X€l        X�l        US LU l        Xj4$ r”   )r±   r   rl   r$   r!   r°   Ú	has_cache)Úctxr   r   r8   r˜   rl   Úoutputr$   r!   r°   rQ   s              r,   ÚforwardÚTokenShift.forward  sL   € ô
 5DÀAÐSXÐhuÓ4vÑ1ˆ�1¨	Ø#ŒØ)ÔØŒØŒØ/ÔØ TÐ)ˆŒØÐ Ð r.   r†   r²   c           
      ó¬   • [        XR                  U R                  X R                  U R                  U R
                  U R                  5      u  p4US US S 4$ r”   )r¸   r$   r!   r   r°   r¼   rl   )r½   r†   r²   r…   Ú
grad_caches        r,   ÚbackwardÚTokenShift.backward  sK   € ô )¨¯U©U°C·E±E¸6Ç>Á>Ø),×)=Ñ)=¸s¿}¹}Èc×N_ÑN_óa‰ˆà�4˜ T¨4Ð/Ð/r.   r1   ©NNFNr”   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr   r   ÚTensorÚboolÚ
LongTensorr¿   rÃ   Ú__static_attributes__r1   r.   r,   rº   rº      s£   † àØØHLØHMØ9=ñ
!˜Ÿ™ð 
!°%·,±,ÀÑ2Eð 
!Ø—|‘| dÑ*ð
!ØAEð
!à$×/Ñ/°$Ñ6ô
!ó ó ð
!ð Øñ0˜%Ÿ,™,ð 0°·±¸tÑ0Cô 0ó ó ó0r.   rº   c                 ó¼   • Ub5  U R                  5       S:X  d   S5       eU R                  S   S:X  d   S5       e[        R                  XX#U5      u  pVU(       a  XV4$ U$ )a²  
Token-shift operation implemented with Triton kernels.

Args:
    x: Input tensor of shape [B, T, D] (or [1, T, D] when `cu_seqlens` is supplied).
    cu_seqlens: Optional cumulative sequence lengths of shape [B + 1].
                When supplied, `x.shape[0]` must be 1 and `x.dim()` must be 3.
    cache: Optional cache tensor of shape [N, D] that holds the last token
           from the previous call.
    output_cache: Whether to return the updated cache alongside the output.
                  In previous versions this parameter did not exist and the
                  cache was always dropped; to preserve backward compatibility
                  the default is False.

Returns:
    output: Tensor of shape [B, T, D] after applying the token-shift.

    cache_out: Tensor of shape [B, 1, D] containing the last token that
               should be fed as `cache` in the next call.  Only returned
               when `output_cache=True`.
r   r   r   r   r   )r   r   rº   Úapply)r   r   r8   r˜   rl   r¾   rQ   s          r,   Útoken_shiftrÑ     sd   € ð: ÑØ�u‰u‹w˜!‹|Ð6Ð6Ó6ˆ|Ø�w‰w�q‰z˜Q‹ÐLÐ LÓLˆä"×(Ñ(¨¸È]Ó[Ñ€FÞØÐ Ð àˆr.   r”   r1   rÅ   )NNTFN)'r   r«   Útriton.languageÚlanguagerI   Úfla.ops.utilsr   Ú	fla.utilsr   r   r   r   r   r	   ÚNUM_WARPS_AUTOTUNEr©   rË   r-   Ú
heuristicsÚautotuneÚConfigÚjitÚ	constexprrb   ry   r‹   r’   rÍ   Úintr—   rÌ   r±   r¸   ÚautogradÚFunctionrº   ÚcompilerÚdisablerÑ   r<   s   00r,   Ú<module>rá      sN  ðó Û Ý å /ß p× pæ&,“]Ò2CÐ ð Ð ð
 '+ñ!Ø‡|�|ð!à—‘˜tÑ#ð!ð ‡\�\õ!ðH ×ÒÙ<Ù?ñó ð ‡‚ð ñ ,ôâ+ˆIÜ#ˆJð 	�‰�b IˆÓEá#ñ 	FÙ+òð
 
ˆñð ñð ‡�ðK>ð 
‡|�|ðK>ð 	�‰ðK>ð �|‰|ðK>ð —|‘|ðK>ð —|‘|ðK>ð �|‰|óK>ó óó	ðK>ð\ ×ÒÙ<Ù?ñó ð ‡‚ð ñ ,ôâ+ˆIÜ#ˆJð 	�‰�b IˆÓEá#ñ 	FÙ+òð
 
ˆtˆñð ñð ‡�ð:Cð 
‡|�|ð:Cð 	�‰ð:Cð 	�‰ð:Cð 	�‰ð:Cð 	�‰ð:Cð �|‰|ð:Cð —|‘|ð:Cð —|‘|ó:Có óó	ð:Cðz ×ÒÙ<ÙHÙ@ñó ð
 ‡‚ð ñ ,ôâ+ˆIÜ#ˆJð 	�‰�b IˆÓEá#ñ 	FÙ+òð
 
ˆñð ñð ‡�ð<Að 
‡|�|ð<Að 	�‰ð<Að �|‰|ð<Að —|‘|ð<Að —‘ó<Aó óóð<Að~ ×ÒÙ<ÙHÙ@ñó ð
 ‡‚ð ñ ,ôâ+ˆIÜ#ˆJð 	�‰�b IˆÓEá#ñ 	FÙ+òð
 
ˆtˆñð ñð ‡�ð7Eð 
‡|�|ð7Eð 	�‰ð7Eð 	�‰ð7Eð 	�‰ð7Eð 	�‰ð7Eð �|‰|ð7Eð —|‘|ð7Eð —‘ó7Eó óóð7Eðt ð/ × 0Ñ 0ð /°Só /ó ð/ð '+Ø!%ØØ-1ñH0Ø‡|�|ðH0à—‘˜tÑ#ðH0ð �<‰<˜$ÑðH0ð ð	H0ð
 ×#Ñ# dÑ*ðH0ð ‡\�\õH0ð^ #'Ø&*Ø!Ø Ø-1ñ6Ø�‰ð6à
ð6ð ð6ð �L‰L˜4Ñð	6ð
 —‘˜tÑ#ð6ð ð6ð ð6ð ×#Ñ# dÑ*ð6ð ‡\�\õ6ôr0�—‘×(Ñ(ô 0ð0 ‡�×Ñð +/Ø!%ØØ-1ñ$Ø‡|�|ð$à× Ñ  4Ñ'ð$ð �<‰<˜$Ñð$ð ð	$ð
 ×#Ñ# dÑ*ô$ó ñ$ùówùóxùóXùó\s   Â$R9Å$R?È$SË$S