+
    œ°³jÅw  ã                   óH  € R t ^ RIt^ RIHt ^ RIt^ RIHu Ht ^ RIHt ^RI	H
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 ^RIHtHtHt ^RI H!t!H"t"H#t#H$t$ ^RI%H&t& ]PN                  ! ](4      t)R t*]! RR4      R5R R ll4       t+]! RR4      R5R R ll4       t,]! RR4      R6R R ll4       t-]! RR4      R7R R ll4       t.]! RR4      R8R R  ll4       t/]! ]-]/].],]+.4       ! R! R"]P`                  4      4       t1 ! R# R$]P`                  4      t2 ! R% R&]4      t3] ! R' R(]4      4       t4]! R)R*7      ] ! R+ R,]4      4       4       t5]! R-R*7      ] ! R. R/]4      4       4       t6] ! R0 R1]44      4       t7]! R2R*7       ! R3 R4]4]4      4       t8. R9Ot9R# ):zPyTorch MAMBA model.N)Ú	dataclass)Únn)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCache)ÚGenerationMixin)Ú&use_kernel_func_from_hub_with_fallbackÚuse_kernelized_func)Úforce_accelerate_hooks)ÚGradientCheckpointingLayer)ÚPreTrainedModel)ÚModelOutputÚauto_docstringÚlogging)Úis_mambapy_availableÚis_torch_greater_or_equalÚis_torchdynamo_compilingÚis_torchdynamo_exporting©ÚMambaConfigc                ób   € Ve+   V P                   pWR,          ,          P                  V4      p V # )ze
Tunes out the hidden states for padding tokens, see https://github.com/state-spaces/mamba/issues/66
)ºNNNr   N)ÚdtypeÚto)Úhidden_statesÚattention_maskr   s   && Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/mamba/modeling_mamba.pyÚapply_mask_to_padding_statesr   0   s3   € ð
 Ò!Ø×#Ñ#ˆØ&¸
Õ)CÕC×GÑGÈÓNˆàÐó    Úcausal_conv1d_updateÚcausal_conv1dc                óÀ   € V ^8„  d   QhR\         P                  R\         P                  R\        P                  R\        P                  R,          R\        R,          /# )é   r   Ú
conv_stateÚweightÚbiasNÚ
activation©ÚtorchÚTensorr   Ú	ParameterÚstr)Úformats   "r   Ú__annotate__r.   =   sS   € ÷ 'ñ 'Ü—<‘<ð'ä—‘ð'ô �L‰Lð'ô �,‰,˜Õ
ð	'ô
 �d•
ñ'r   c                 óº  € V P                   w  rVpVP                   R,          p\        P                  ! W.RR7      P                  VP                  4      p	VP                  V	RRV) R13,          4       \        P                  ! W’P                  ^4      V^ VR7      p
V
RRV) R13,          p
Ve   \        V,          ! V
4      p
V
P                  V P                  4      # )é   ©Údimr   N)ÚpaddingÚgroupséÿÿÿÿ)
Úshaper)   Úcatr   r   Úcopy_ÚFÚconv1dÚ	unsqueezer   )r   r$   r%   r&   r'   Ú_Úhidden_sizeÚseq_lenÚ	state_lenÚhidden_states_newÚouts   &&&&&      r   r    r    <   sÅ   € ð ,×1Ñ1Ñ€A�GØ× Ñ  Õ$€IäŸ	š	 :Ð"=À2ÔF×IÑIÈ&Ï,É,ÓWÐØ×ÑÐ& q¨!¨i¨Z©[Ð'8Õ9Ô:Ü
�(Š(Ð$×&6Ñ&6°qÓ&9¸4ÈÐS^Ô
_€CØ
ˆa��W�H‘IˆoÕ
€CØÒÜ�ZÖ  Ó%ˆØ�6‰6�-×%Ñ%Ó&Ð&r   Úcausal_conv1d_fnc          	      ó    € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R,          R\        R,          /# )r#   r   r%   r&   Nr'   r(   )r-   s   "r   r.   r.   Q   sE   € ÷ 'ñ 'Ü—<‘<ð'ä�L‰Lð'ô �,‰,˜Õ
ð'ô �d•
ñ	'r   c                 óV  € V P                   w  rVpVP                   R,          ^,
          p\        P                  ! V P                  VP                  4      VP                  ^4      VVVR7      RRRV13,          p	Ve   \        V,          ! V	4      p	V	P                  V P                  4      # )r0   )r%   r&   r3   r4   r   Nr5   )r6   r9   r:   r   r   r;   r   )
r   r%   r&   r'   Úkwargsr<   r=   r>   r3   rA   s
   &&&&,     r   rB   rB   P   sž   € ð ,×1Ñ1Ñ€A�GØ�l‰l˜2Õ Õ"€Gä
�(Š(Ø×Ñ˜Ÿ™Ó&Ø×Ñ Ó"ØØØôð ˆˆHˆWˆH€nõ€Cð ÒÜ�ZÖ  Ó%ˆØ�6‰6�-×%Ñ%Ó&Ð&r   Úmamba_inner_fnÚ	mamba_ssmc          "      óŽ  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R,          R\         P                  R\         P                  R\         P                  R\         P                  R,          R	\         P                  R
\         P                  R,          R\         P                  R,          R\         P                  R,          R\         P                  R,          R\        R\         P                  R,          R\         P                  R,          R\         P                  R,          R\        /# )r#   ÚxzÚconv1d_weightÚconv1d_biasNÚx_proj_weightÚdelta_proj_weightÚout_proj_weightÚout_proj_biasÚAÚBÚCÚDÚ
delta_biasÚdelta_softplusÚb_rms_weightÚc_rms_weightÚdt_rms_weightÚb_c_dt_rms_eps)r)   r*   ÚboolÚfloat)r-   s   "r   r.   r.   h   s  € ÷ ñ Ü�‰ðä—<‘<ðô —‘ Õ$ðô —<‘<ð	ô
 —|‘|ðô —\‘\ðô —<‘< $Õ&ðô ‡|�|ðô ‡|�|�dÕðô ‡|�|�dÕðô ‡|�|�dÕðô —‘˜tÕ#ðô ðô —,‘, Õ%ðô —,‘, Õ%ðô  —<‘< $Õ&ð!ô" ñ#r   c                 ó   € R # ©N© )rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rE   s   &&&&&&&&&&&&&&&&&,r   rF   rF   g   s   € ñ* r   Úselective_state_updatec                ón  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R	\         P                  R,          R
\        R\         P                  R,          /
# )r#   Ústater   ÚdtrP   rQ   rR   rS   NÚdt_biasÚdt_softplusÚz©r)   r*   rZ   )r-   s   "r   r.   r.   €   sŸ   € ÷ *ñ *Ü�<‰<ð*ä—<‘<ð*ô 	�‰ð*ô ‡|�|ð	*ô
 ‡|�|ð*ô ‡|�|ð*ô ‡|�|�dÕð*ô �\‰\˜DÕ ð*ô ð*ô ‡|�|�dÕñ*r   c
                 óª  € VP                   pVe"   W'P                  VP                   4      ,           pV'       d   \        P                  ! V4      p\        P
                  ! VP                  4       R,          VP                  4       ,          4      P                  V P                  R7      pVP                  4       R,          VP                  4       R,          ,          pWÑP                  4       R,          ,          pV P                  4       V,          V,           pV P                  VP                  V P                   4      4       \        P                  ! VP                  VP                   4      VP                  R4      4      P                  R4      pVe   VW,          ,           pV	e   V\        P                  ! V	4      ,          pVP                  V4      # )N)Údevice©.N)r   Nr   r5   )r   r   r9   Úsoftplusr)   Úexpr[   rh   r8   Úmatmulr;   ÚsqueezeÚsilu)ra   r   rb   rP   rQ   rR   rS   rc   rd   re   rE   Úinput_dtypeÚdAÚdBÚdBxÚ	ssm_staterA   s   &&&&&&&&&&,      r   Úmamba_selective_state_updatert      sE  € ð  ×%Ñ%€KàÒØ—*‘*˜RŸX™XÓ&Õ&ˆßÜ�ZŠZ˜‹^ˆô 
�Š�2—8‘8“:˜iÕ(¨1¯7©7«9Õ4Ó	5×	8Ñ	8ÀÇÁÐ	8Ó	M€Bð 
�‰‹�IÕ	 §¡£¨:Õ!6Õ	6€Bà
×"Ñ"Ó$ YÕ/Õ
/€Cð —‘“ Õ" SÕ(€IØ	‡K�K�	—‘˜UŸ[™[Ó)Ô*ô �,Š,�y—|‘| A§G¡GÓ,¨a¯k©k¸"«oÓ
>×
FÑ
FÀrÓ
J€Cð 	‚}Ø�MÕ%Õ%ˆà‚}Ø”A—F’F˜1“I�oˆà�6‰6�+ÓÐr   Úselective_scan_fnc                ór  € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R\         P                  R,          R\         P                  R,          R	\         P                  R,          R
\        R\        R\        R\        /# )r#   r   rb   rP   rQ   rR   rS   Nre   rT   rU   Úreturn_last_stateÚuse_mambapyÚuse_associative_scanrf   )r-   s   "r   r.   r.   ®   s½   € ÷ hñ hÜ—<‘<ðhä�‰ðhô ‡|�|ðhô ‡|�|ð	hô
 ‡|�|ðhô ‡|�|�dÕðhô ‡|�|�dÕðhô —‘˜tÕ#ðhô ðhô ðhô ðhô ñhr   c                 ó0  € \        R 4      '       d   ^ RIHp MRp\        4       '       d   ^ RIHp MRpV P                  w  pppV P                  pVe)   WP                  VP                  4      R,          ,           pV'       d   \        P                  ! V4      pVP                  ^^4      pVP                  ^^4      p\        P                  ! VR,          VR,          ,          4      pVR,          VR,          P                  4       ,          pVV R,          P                  4       ,          pV
'       dp   Vel   V! VP                  ^^4      VP                  ^^4      4      pVVP                  R4      ,          P!                  ^4      P                  ^^4      pVR,          pEM¬V'       dÈ   VeÄ   \#        4       '       d´   \%        4       '       g¤   R pVP&                  P(                  R9   d   RMRpV! VVV3^VR7      w  pp\        P*                  ! VP                  ^^4      P                  V4      VP                  R4      4      pVP!                  R4      P                  ^^4      pVR,          pMÝ\        P,                  ! VVVP                  R,          VV P&                  R	7      p. p\/        V4       F~  pVRRV3,          V,          VRRV3,          ,           p\        P*                  ! VP                  V4      VRVR3,          P                  R4      4      pVP1                  VR,          4       K€  	  \        P2                  ! VRR
7      pVe   VWR,          ,          ,           pVe   V\        P4                  ! V4      ,          pV	'       d   VV3# V# )z2.9.0)Úassociative_scanN)Úpscanr   c                 ó@   € V w  r#Vw  rEW$,          WC,          V,           3# r]   r^   )ÚleftÚrightÚa_leftÚb_leftÚa_rightÚb_rights   &&    r   Ú
combine_fnÚ(mamba_selective_scan.<locals>.combine_fnæ   s'   € Ø!‰NˆFØ$ÑˆGØÕ# WÕ%5¸Õ%?Ð?Ð?r   Ú	pointwiseÚgeneric)r2   Úcombine_mode©r   rh   r1   ri   )Nr   Nr   )r   r   r   N)r   Nr   r   r5   )r   r5   )ÚcudaÚxpu)r   r   r5   )r   r   é    )Nr   N)r   Ú(torch._higher_order_ops.associative_scanr{   r   Úmambapy.pscanr|   r6   r   r   r9   rj   Ú	transposer)   rk   r[   r;   rm   r   r   rh   Útyperl   ÚzerosÚrangeÚappendÚstackrn   )r   rb   rP   rQ   rR   rS   re   rT   rU   rw   rx   ry   rE   r{   r|   Ú
batch_sizeÚintermediate_sizer>   ro   Ú
discrete_AÚ
discrete_BÚdeltaB_uÚ
all_statesÚscan_outputrs   r„   rˆ   r<   Úscan_outputsÚindexs   &&&&&&&&&&&&,                 r   Úmamba_selective_scanrž   ­   s  € ô" ! ×)Ò)ÞMàÐä×ÒÞ'àˆà-:×-@Ñ-@Ñ*€JÐ! 7Ø×%Ñ%€KàÒØ—-‘- §¡Ó)¨)Õ4Õ4ˆßÜ�ZŠZ˜‹^ˆð 	
�‰�A�qÓ€AØ	�‰�A�qÓ€Aô —’˜1Ð-Õ.°°MÕ1BÕBÓC€JØ�MÕ" Q }Õ%5×%;Ñ%;Ó%=Õ=€JØ˜M¨-Õ8×>Ñ>Ó@Õ@€Hç�uÒ(Ù˜:×/Ñ/°°1Ó5°x×7IÑ7IÈ!ÈQÓ7OÓPˆ
à! A§K¡K°£OÕ3×<Ñ<¸QÓ?×IÑIÈ!ÈQÓOˆØ˜uÕ%Š	÷ 	ØÒ(ä%×'Ò'Ô0H×0JÒ0Jò	@ð
 '1×&7Ñ&7×&<Ñ&<ÀÔ&O‘{ÐU^ˆÙ(ØØ˜Ð"ØØ%ô	
‰ˆˆ:ô —l’l :×#7Ñ#7¸¸1Ó#=×#@Ñ#@ÀÓ#MÈqÏ{É{Ð[]ËÓ_ˆØ!×)Ñ)¨"Ó-×7Ñ7¸¸1Ó=ˆØ˜xÕ(‰	ô —K’KØØØ�G‰G�B�KØØ ×'Ñ'ô
ˆ	ð ˆÜ˜7–^ˆEà" 1 a¨ ;Õ/°)Õ;¸hÀqÈ!ÈUÀ{Õ>SÕSˆIô  Ÿ,š, y§|¡|°KÓ'@À!ÀAÀuÈaÀKÅ.×BZÑBZÐ[]ÓB^Ó_ˆKØ×Ñ ¨GÕ 4Ö5ñ $ô —k’k ,°BÔ7ˆà‚}Ø! M°mÕ4DÕ$DÕDˆà‚}Ø!¤A§F¢F¨1£IÕ-ˆçØ˜IÐ%Ð%àÐr   c                   ó¤   a a€ ] tR tRt oRtRV3R lV 3R lllt]P                  ! 4       R 4       t]	! RR.4      RV3R lR	 ll4       t
R
tVtV ;t# )Ú
MambaMixeri  uo  
Compute âˆ†, A, B, C, and D the state space parameters and compute the `contextualized_states`.
A, D are input independent (see Mamba paper [1] Section 3.5.2 "Interpretation of A" for why A isn't selective)
âˆ†, B, C are input-dependent (this is a key difference between Mamba and the linear time invariant S4,
and is why Mamba is called **selective** state spaces)
c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r#   ÚconfigÚ	layer_idxÚinitialize_mixer_weights)r   ÚintrZ   )r-   Ú__classdict__s   "€r   r.   ÚMambaMixer.__annotate__$  s#   ø€ ÷ )8ñ )8™{ð )8±sð )8ÑVZñ )8r   c           	     óP  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        VP                  V n        VP                  V n        \        VP                  4      V n
        W n        VP                  V n        \        P                  ! V P                  V P                  VP                  VP                  V P                  VP                  ^,
          R7      V n        VP                   V n        \$        VP                   ,          V n        VP(                  V n        VP*                  V n        \        P,                  ! V P                  V P                  ^,          VP.                  R7      V n        \        P,                  ! V P                  V P                  V P
                  ^,          ,           RR7      V n        \        P,                  ! V P                  V P                  RR7      V n        \        P6                  ! \8        P:                  ! V P                  V P
                  4      4      V n        \        P6                  ! \8        P:                  ! V P                  4      4      V n        V'       d@   V P4                  P@                  PB                  PD                  R8w  d   V PG                  4        \        P,                  ! V P                  V P                  VP.                  R7      V n$        VP.                  V n        VPJ                  V,          V n&        R# )r0   )Úin_channelsÚout_channelsr&   Úkernel_sizer4   r3   ©r&   FTÚmetaN)'ÚsuperÚ__init__r¢   r=   Ú
state_sizeÚssm_state_sizeÚconv_kernelÚconv_kernel_sizer–   r¥   Útime_step_rankr£   Úuse_conv_biasr   ÚConv1dr:   Ú
hidden_actr'   r   Úactrx   ry   ÚLinearÚuse_biasÚin_projÚx_projÚdt_projr+   r)   ÚemptyÚA_logrS   r%   rh   r�   Úinit_mamba_weightsÚout_projÚlayer_typesÚ
layer_type)Úselfr¢   r£   r¤   Ú	__class__s   &&&&€r   r¯   ÚMambaMixer.__init__$  s2  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ$×/Ñ/ˆÔØ &× 2Ñ 2ˆÔØ!'×!9Ñ!9ˆÔÜ! &×"7Ñ"7Ó8ˆÔØ"ŒØ#×1Ñ1ˆÔÜ—i’iØ×.Ñ.Ø×/Ñ/Ø×%Ñ%Ø×*Ñ*Ø×)Ñ)Ø×&Ñ&¨Õ*ô
ˆŒð !×+Ñ+ˆŒÜ˜&×+Ñ+Õ,ˆŒà!×-Ñ-ˆÔØ$*×$?Ñ$?ˆÔ!ô —y’y ×!1Ñ!1°4×3IÑ3IÈAÕ3MÐTZ×TcÑTcÔdˆŒä—i’i × 6Ñ 6¸×8KÑ8KÈd×NaÑNaÐdeÕNeÕ8eÐlqÔrˆŒä—y’y ×!4Ñ!4°d×6LÑ6LÐSWÔXˆŒô —\’\¤%§+¢+¨d×.DÑ.DÀd×FYÑFYÓ"ZÓ[ˆŒ
Ü—’œeŸkšk¨$×*@Ñ*@ÓAÓBˆŒß#¨¯©×(;Ñ(;×(BÑ(B×(GÑ(GÈ6Ô(QØ×#Ñ#Ô%ÜŸ	š	 $×"8Ñ"8¸$×:JÑ:JÐQW×Q`ÑQ`ÔaˆŒØŸ™ˆŒà ×,Ñ,¨YÕ7ˆŽr   c                ó  € \         P                  ! ^V P                  ^,           \         P                  V P                  P
                  R7      R,          pVP                  V P                  R4      P                  4       p\        P                  ! V P                  \         P                  ! V4      4       \        P                  ! V P                  4       V P                  P                  R	,          V P                  P                   ,          pV P                  P"                  R8X  d-   \        P$                  ! V P&                  P(                  V4       MHV P                  P"                  R8X  d.   \        P*                  ! V P&                  P(                  V) V4       \         P,                  ! \         P.                  ! V P                  V P&                  P0                  P
                  \         P                  R7      \2        P                  ! V P                  P4                  4      \2        P                  ! V P                  P6                  4      ,
          ,          \2        P                  ! V P                  P6                  4      ,           4      P9                  V P                  P:                  R7      pV\         P                  ! \         P<                  ! V) 4      ) 4      ,           p\        P                  ! V P&                  P0                  V4       R# )
r0   r‰   NÚconstantÚrandom)rh   r   )Úmin)Nr   r5   g      à¿)r)   Úaranger±   Úfloat32r¿   rh   Úexpandr–   Ú
contiguousÚinitr8   ÚlogÚones_rS   r¢   r´   Útime_step_scaleÚtime_step_init_schemeÚ	constant_r½   r%   Úuniform_rk   Úrandr&   ÚmathÚtime_step_maxÚtime_step_minÚclampÚtime_step_floorÚexpm1)rÄ   rP   Údt_init_stdrb   Úinv_dts   &    r   rÀ   ÚMambaMixer.init_mamba_weightsO  sÜ  € ä�LŠL˜˜D×/Ñ/°!Õ3¼5¿=¹=ÐQU×Q[ÑQ[×QbÑQbÔcÐdkÕlˆØ�H‰H�T×+Ñ+¨RÓ0×;Ñ;Ó=ˆÜ�
Š
�4—:‘:œuŸyšy¨›|Ô,Ü�
Š
�4—6‘6Ôà—k‘k×0Ñ0°$Õ6¸¿¹×9TÑ9TÕTˆØ�;‰;×,Ñ,°
Ô:Ü�NŠN˜4Ÿ<™<×.Ñ.°Õ<Ø�[‰[×.Ñ.°(Ô:Ü�MŠM˜$Ÿ,™,×-Ñ-°¨|¸[ÔIä�YŠYÜ�JŠJ�t×-Ñ-°d·l±l×6GÑ6G×6NÑ6NÔV[×VcÑVcÔdÜ�xŠx˜Ÿ™×1Ñ1Ó2´T·X²X¸d¿k¹k×>WÑ>WÓ5XÕXõZä�hŠh�t—{‘{×0Ñ0Ó1õ2ó
÷ ‰%�D—K‘K×/Ñ/ˆ%Ó
0ð	 	ð ”e—i’i¤§¢¨b¨SÓ!1Ð 1Ó2Õ2ˆÜ�
Š
�4—<‘<×$Ñ$ fÖ-r   r:   r½   c                óp   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[ P                  R,          /# )r#   r   Úcache_paramsNr   )r)   r*   r   Ú
LongTensor)r-   r¦   s   "€r   r.   r§   f  sA   ø€ ÷ {%ñ {%á—|‘|ð{%ñ ˜d•lð{%ñ ×(Ñ(¨4Õ/ñ	{%r   c                óâ
  € VP                   ^,          pVP                  pVRJ;'       d    VP                  V P                  4      p\	        W4      pV P                  V4      P                  ^^4      p\        P                  ! V P                  P                  4       4      ) p	V P                  '       Ed   VEf   \        TV P                  P                  V P                  '       d   V P                  P                   MRV P"                  P                  V P$                  P                  V P&                  P                  V P(                  '       d%   V P&                  P                   P                  4       MRV	RRV P*                  P                  4       V P$                  P                   P                  4       RR7      p
V
e   V
# VP-                  ^^R7      w  r¼V'       d]   VP.                  V P                  ,          P0                  ^ ,          pVP.                  V P                  ,          P2                  ^ ,          pV'       d‡   V^8X  d€   VP.                  V P                  ,          P4                  '       gS   \7        VXV P                  P                  P9                  ^4      V P                  P                   V P:                  R7      pM�Ve)   VP=                  VV P                  V P>                  R7      p\A        VV P                  P                  P9                  ^4      V P                  P                   3RV P:                  /VB pVe   VRRV) R13,          p\	        VP                  ^^4      V4      p\        PB                  ! V P#                  V4      V PD                  V PF                  V PF                  .RR7      w  pppV P$                  P                  VP                  ^^4      ,          pV P$                  P                   e%   V P$                  P                   P                  4       MRpV'       dj   V^8X  dc   \I        XVP                  ^^4      R,          VR,          V	VR,          VR,          V P*                  VR,          VRR	7
      PK                  R4      pM£VRJp\M        VP                  ^^4      VV	VP                  ^^4      VP                  ^^4      V P*                  P                  4       VVRVV PN                  V PP                  R
7      pV'       d#   Vw  ppVPS                  VV P                  4       MTpV P'                  VP                  ^^4      PU                  V4      4      pV# )r0   NT)rT   rU   r1   )r'   )r³   r'   r   )re   rc   rd   )rS   re   rT   rU   rw   rx   ry   r5   ).rŒ   )r   rŒ   )+r6   r   Úhas_previous_stater£   r   r»   r�   r)   rk   r¿   r[   ÚtrainingrF   r:   r%   rµ   r&   r¼   r½   rÁ   rº   rS   ÚchunkÚlayersÚconv_statesÚrecurrent_statesÚrecord_pastr    rm   r'   Úupdate_conv_stater³   rB   Úsplitr´   r±   rt   r;   rž   rx   ry   Úupdate_recurrent_stater   )rÄ   r   rá   r   rE   r>   r   Úuse_precomputed_statesÚprojected_statesrP   Úfused_outputÚhidden_states_B_CÚgater$   Úrecurrent_stateÚ	time_steprQ   rR   Útime_proj_biasr›   Úoutput_final_stateÚscan_resultÚfinal_stateÚcontextualized_statess   &&&&,                   r   ÚforwardÚMambaMixer.forwarde  s‰  € ð  ×%Ñ% aÕ(ˆØ×#Ñ#ˆØ!-°TÐ!9×!mÐ!m¸l×>]Ñ>]Ð^b×^lÑ^lÓ>mÐô 5°]ÓSˆØŸ<™<¨Ó6×@Ñ@ÀÀAÓFÐä�YŠY�t—z‘z×'Ñ'Ó)Ó*Ð*ˆØ�=�=‰=˜\Ó1Ü)Ø Ø—‘×"Ñ"Ø$(×$6×$6Ð$6�—‘× Ò ¸DØ—‘×"Ñ"Ø—‘×#Ñ#Ø—‘×$Ñ$Ø.2¯m¯m¨m�—‘×"Ñ"×(Ñ(Ô*ÀØØØØ—‘—‘“ØŸ<™<×,Ñ,×2Ñ2Ó4Ø#ôˆLð" Ò'Ø#Ð#à"2×"8Ñ"8¸ÀÐ"8Ó"BÑÐç!Ø%×,Ñ,¨T¯^©^Õ<×HÑHÈÕKˆJØ*×1Ñ1°$·.±.ÕA×RÑRÐSTÕUˆO÷ " g°¤l¸<×;NÑ;NÈtÏ~É~Õ;^×;j×;jÐ;jÜ 4Ø!ØØ—‘×"Ñ"×*Ñ*¨1Ó-Ø—‘× Ñ ØŸ?™?ô!Ñð Ò'Ø$0×$BÑ$BØ%Ø—N‘NØ%)×%:Ñ%:ð %Có %Ð!ô !1Ø!Ø—‘×"Ñ"×*Ñ*¨1Ó-Ø—‘× Ñ ñ!ð  Ÿ?™?ð	!ð
 ñ!Ðð Ò'Ø$5°a¸¸W¸H¹I°oÕ$FÐ!ô 9Ð9J×9TÑ9TÐUVÐXYÓ9ZÐ\jÓkÐÜŸ+š+Ø�K‰KÐ)Ó*Ø× Ñ  $×"5Ñ"5°t×7JÑ7JÐKØô
‰ˆ	�1�að —L‘L×'Ñ'¨)×*=Ñ*=¸aÀÓ*CÕCˆ	Ø6:·l±l×6GÑ6GÒ6S˜Ÿ™×*Ñ*×0Ñ0Ô2ÐY]ˆ÷ " g°¤lÜ6ØØ!×+Ñ+¨A¨qÓ1°&Õ9Ø˜&Õ!ØØ�$•Ø�$•Ø—‘Ø�v•,Ø&Ø ô÷ ‰i˜‹mñ ð ".°TÐ!9ÐÜ.Ø!×+Ñ+¨A¨qÓ1ØØØ—‘˜A˜qÓ!Ø—‘˜A˜qÓ!Ø—&‘&—,‘,“.ØØ)Ø#Ø"4Ø ×,Ñ,Ø%)×%>Ñ%>ôˆK÷ "Ø+6Ñ(�˜[Ø×3Ñ3°KÀÇÁÕPà)�ð !%§¡¨k×.CÑ.CÀAÀqÓ.I×.LÑ.LÈUÓ.SÓ TÐØ$Ð$r   )r¿   rS   r¸   r'   r¢   r:   r³   r½   r=   r»   r–   r£   rÃ   rÁ   r±   r´   ry   rº   rµ   rx   r¼   )T©NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r¯   r)   Úno_gradrÀ   r   rú   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rÅ   r¦   s   @@r   r    r      s[   ù‡ € ñ÷)8õ )8ðV ‡]‚]ƒ_ñ.ó ð.ñ* ˜X yÐ1Ó2÷{%ñ {%ó 3÷{%ð {%r   r    c                   óB   a a€ ] tR tRt oRV 3R lltR tR tRtVtV ;t	# )ÚMambaRMSNormiä  c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z<
MambaRMSNorm is equivalent to T5LayerNorm and LlamaRMSNorm
N)r®   r¯   r   r+   r)   Úonesr%   Úvariance_epsilon)rÄ   r=   ÚepsrÅ   s   &&&€r   r¯   ÚMambaRMSNorm.__init__å  s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Ör   c                ó:  € VP                   pVP                  \        P                  4      pVP	                  ^4      P                  RRR7      pV\        P                  ! W0P                  ,           4      ,          pV P                  VP                  V4      ,          # )r#   T)Úkeepdimr5   )	r   r   r)   rÌ   ÚpowÚmeanÚrsqrtr  r%   )rÄ   r   ro   Úvariances   &&  r   rú   ÚMambaRMSNorm.forwardí  sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r   c                óZ   € V P                   P                  ^ ,           RV P                   2# )rŒ   z, eps=)r%   r6   r  ©rÄ   s   &r   Ú
extra_reprÚMambaRMSNorm.extra_reprô  s*   € Ø—+‘+×#Ñ# AÕ&Ð' v¨d×.CÑ.CÐ-DÐEÐEr   )r  r%   )ç�íµ ÷Æ°>)
rý   rþ   rÿ   r   r¯   rú   r  r  r  r  r  s   @@r   r  r  ä  s   ù‡ € ÷$ò;÷Fò Fr   r  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )Ú
MambaBlockiø  c                óÎ   <€ \         SV `  4        Wn        W n        VP                  V n        \        VP                  VP                  R 7      V n        \        WRR7      V n
        R# )©r  F)r£   r¤   N)r®   r¯   r¢   r£   Úresidual_in_fp32r  r=   Úlayer_norm_epsilonÚnormr    Úmixer)rÄ   r¢   r£   rÅ   s   &&&€r   r¯   ÚMambaBlock.__init__ù  sO   ø€ Ü‰ÑÔØŒØ"ŒØ &× 7Ñ 7ˆÔÜ  ×!3Ñ!3¸×9RÑ9RÔSˆŒ	Ü ÐV[Ô\ˆŽ
r   c                óV   <€ V ^8„  d   QhRS[ R,          RS[P                  R,          /# )r#   rá   Nr   )r   r)   râ   )r-   r¦   s   "€r   r.   ÚMambaBlock.__annotate__  s0   ø€ ÷ ñ ñ ˜d•lðñ ×(Ñ(¨4Õ/ñ	r   c                ó   € TpV P                  VP                  V P                   P                  P                  R 7      4      pV P                  '       d    VP                  \
        P                  4      pV P                  WVR7      pWQ,           pV# ))r   ©rá   r   )r   r   r%   r   r  r)   rÌ   r!  )rÄ   r   rá   r   rE   Úresiduals   &&&&, r   rú   ÚMambaBlock.forward  st   € ð !ˆØŸ	™	 -×"2Ñ"2¸¿¹×9IÑ9I×9OÑ9OÐ"2Ó"PÓQˆØ× × Ð Ø—{‘{¤5§=¡=Ó1ˆHàŸ
™
 =Ð\j˜
ÓkˆØ Õ0ˆØÐr   )r¢   r£   r!  r   r  rü   )	rý   rþ   rÿ   r   r¯   rú   r  r  r  r  s   @@r   r  r  ø  s   ù‡ € õ]÷÷ ò r   r  c                   óz   a a€ ] tR tRt oRtRR.tRtRt]P                  ! 4       V 3R l4       t
V3R ltRtVtV ;t# )	ÚMambaPreTrainedModeli  Úbackboner  r    Tc                óÆ  <€ \         SV `  V4       \        V\        4      '       Ed:   VP	                  4        \
        P                  ! VP                  P                  \        P                  ! ^4      R7       VP                  P                  e+   \
        P                  ! VP                  P                  4       \
        P                  ! VP                  P                  \        P                  ! ^4      R7       V P                  P                  '       dJ   VP                  P                  pV\        P                  ! V P                  P                   4      ,          pR# R# R# )zInitialize the weights.)ÚaN)r®   Ú_init_weightsÚ
isinstancer    rÀ   rÏ   Úkaiming_uniform_r:   r%   r×   Úsqrtr&   Úzeros_rÁ   r¢   Úrescale_prenorm_residualÚnum_hidden_layers)rÄ   ÚmoduleÚprÅ   s   && €r   r.  Ú"MambaPreTrainedModel._init_weights  sß   ø€ ô 	‰Ñ˜fÔ%Ü�fœj×)Ó)ð ×%Ñ%Ô'ä×!Ò! &§-¡-×"6Ñ"6¼$¿)º)ÀA»,ÕGØ�}‰}×!Ñ!Ò-Ü—’˜FŸM™M×.Ñ.Ô/Ü×!Ò! &§/¡/×"8Ñ"8¼D¿IºIÀa»LÕIà�{‰{×3×3Ð3ð —O‘O×*Ñ*�Ø”T—Y’Y˜tŸ{™{×<Ñ<Ó=Õ=’ñ 4ñ *r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r#   r¢   r   )r-   r¦   s   "€r   r.   Ú!MambaPreTrainedModel.__annotate__  s   ø‡ ‚ áÑò r   r^   )rý   rþ   rÿ   r   Úbase_model_prefixÚ_no_split_modulesÚsupports_gradient_checkpointingÚ_is_statefulr)   r  r.  Ú__annotate_func__r  r  r  r  s   @@r   r*  r*    sB   ù‡ € ð #ÐØ% |Ð4ÐØ&*Ð#Ø€Là
‡]‚]ƒ_ô>ó ð>÷ … r   r*  z,
    Class for the MAMBA model outputs.
    )Úcustom_introc                   ó<   a € ] tR tRt o RtRtRtRtV 3R ltRt	V t
R# )ÚMambaOutputi7  a   
cache_params (`Cache`):
    The state of the model at the last time step. Can be used in a forward method with the next `input_ids` to
    avoid providing the old `input_ids`.

    Includes both the State space model state matrices after the selective scan, and the Convolutional states
Nc                ó    <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[R,          ;R&   S[S[ P                  ,          R,          ;R&   # )r#   NÚlast_hidden_staterá   r   ©r)   ÚFloatTensorr   Útuple)r-   r¦   s   "€r   r.   ÚMambaOutput.__annotate__7  sK   ø‡ ‚ ñ ×(Ñ(¨4Õ/Ñ6ñ ñ  ˜$•,Ñ%ñ! ñ" ™×*Ñ*Õ+¨dÕ2Ñ9ò# r   r^   )rý   rþ   rÿ   r   r  rC  rá   r   r>  r  r  ©r¦   s   @r   rA  rA  7  s#   ø‡ € ñð 37ÐØ!%€LØ59€M÷# ƒ r   rA  zK
    Base class for causal language model (or autoregressive) outputs.
    c                   ó@   a € ] tR tRt o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚMambaCausalLMOutputiK  au  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Language modeling loss (for next-token prediction).
logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
    Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
cache_params (`Cache`):
    The state of the model at the last time step. Can be used in a forward method with the next `input_ids` to
    avoid providing the old `input_ids`.

    Includes both the State space model state matrices after the selective scan, and the Convolutional states
Nc                óÎ   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[R,          ;R&   S[S[ P                  ,          R,          ;R&   # )r#   NÚlossÚlogitsrá   r   rD  )r-   r¦   s   "€r   r.   Ú MambaCausalLMOutput.__annotate__K  sc   ø‡ ‚ ñ& ×
Ñ
˜dÕ
"Ñ)ñ' ñ( ×Ñ Õ$Ñ+ñ) ñ* ˜$•,Ñ%ñ+ ñ, ™×*Ñ*Õ+¨dÕ2Ñ9ò- r   r^   )rý   rþ   rÿ   r   r  rL  rM  rá   r   r>  r  r  rH  s   @r   rJ  rJ  K  s'   ø‡ € ñ
ð &*€DØ'+€FØ!%€LØ59€M÷- ƒ r   rJ  c                   ód   a a€ ] tR tRt oV 3R ltR tR tR t]R	V3R lR ll4       t	Rt
VtV ;t# )
Ú
MambaModelid  c           
     óÐ  <€ \         SV `  V4       \        P                  ! VP                  VP
                  4      V n        \        P                  ! \        VP                  4       Uu. uF  p\        WR 7      NK  	  up4      V n        RV n        \        VP
                  VP                  R7      V n        V P!                  V P"                  4       V P%                  4        R# u upi ))r£   Fr  N)r®   r¯   r   Ú	EmbeddingÚ
vocab_sizer=   Ú
embeddingsÚ
ModuleListr’   r4  r  rç   Úgradient_checkpointingr  r  Únorm_fÚ"_register_load_state_dict_pre_hookÚ	load_hookÚ	post_init)rÄ   r¢   ÚidxrÅ   s   && €r   r¯   ÚMambaModel.__init__f  s¥   ø€ Ü‰Ñ˜Ô äŸ,š, v×'8Ñ'8¸&×:LÑ:LÓMˆŒÜ—m’mÔRWÐX^×XpÑXpÔRqÓ$rÑRqÈ3¤Z°×%FÑRqÑ$rÓsˆŒà&+ˆÔ#Ü" 6×#5Ñ#5¸6×;TÑ;TÔUˆŒà×/Ñ/°·±Ô?Ø�‰Öùò %ss   Á(C#c                ór   € V F0  pR V9   g   K  VP                  V4      WP                  R R4      &    R# 	  R# )z
embedding.zembeddings.N)ÚpopÚreplace)rÄ   Ú
state_dictÚprefixÚargsÚks   &&&* r   rY  ÚMambaModel.load_hookr  s4   € ÛˆAØ˜qÖ ØEOÇ^Á^ÐTUÓEV�
Ÿ9™9 \°=ÓAÑBÚó r   c                ó   € V P                   # r]   ©rT  r  s   &r   Úget_input_embeddingsÚMambaModel.get_input_embeddingsx  s   € Ø�‰Ðr   c                ó   € Wn         R # r]   rf  ©rÄ   Únew_embeddingss   &&r   Úset_input_embeddingsÚMambaModel.set_input_embeddings{  s   € Ø(Žr   c                óø   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[ P                  R,          R	S[S[,          /# )
r#   Ú	input_idsNÚinputs_embedsrá   Ú	use_cacheÚoutput_hidden_statesÚreturn_dictr   Úreturn)r)   râ   r   rZ   rF  rA  )r-   r¦   s   "€r   r.   ÚMambaModel.__annotate__  s‘   ø€ ÷ <
ñ <
á×#Ñ# dÕ*ð<
ñ ×'Ñ'¨$Õ.ð<
ñ ˜d•lð	<
ñ
 ˜$•;ð<
ñ # T�kð<
ñ ˜D•[ð<
ñ ×(Ñ(¨4Õ/ð<
ñ 
‘Õ	ñ<
r   c                óF  € Ve   TMV P                   P                  pVe   TM)V P                  '       g   V P                   P                  MRpVe   TMV P                   P                  pVRJ VRJ,          '       d   \        R4      hVf   V P                  V4      pV P                  '       d   V P                  '       d   V'       d   RpV'       d   Vf   \        V P                   R7      pTp	V'       d   RMRp
V P                   F!  pV! V	VVR7      p	V'       g   K  W©3,           p
K#  	  V P                  V	4      p	V'       d
   W©3,           p
V'       g1   \        ;QJ d    . R W“V
3 4       F  NK  	  5# ! R W“V
3 4       4      # \        T	V'       d	   VV
R7      # RV
R7      # )	at  
cache_params (`Cache`, *optional*):
    If passed along, the model uses the previous state in all the blocks (which will give the output for the
    `input_ids` provided as if the model add `state_input_ids + input_ids` as context).
use_cache (`bool`, *optional*):
    If set to `True`, the `cache_params` is returned and can be used to quickly generate the next logits.
NFz:You must specify exactly one of input_ids or inputs_embeds)r¢   r&  c              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5ir]   r^   )Ú.0Úvs   & r   Ú	<genexpr>Ú%MambaModel.forward.<locals>.<genexpr>µ  s   é € ÐfÑ$T˜qŸšÓ$Tùs   ‚Œ
)rC  rá   r   r^   )r¢   rr  rå   rq  rs  Ú
ValueErrorrT  rV  r   rç   rW  rF  rA  )rÄ   ro  rp  rá   rq  rr  rs  r   rE   r   Úall_hidden_statesÚmixer_blocks   &&&&&&&&,   r   rú   ÚMambaModel.forward~  s}  € ð( %9Ò$DÑ È$Ï+É+×JjÑJjð 	ð "+Ò!6‘IÐZ^×Zg×ZgÐZg¸T¿[¹[×=RÒ=RÐmrˆ	Ø%0Ò%<‘kÀ$Ç+Á+×BYÑBYˆà˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ŸO™O¨IÓ6ˆMà×&×&Ð&¨4¯=¯=¨=¿YØˆIç˜Ò-Ü'¨t¯{©{Ô;ˆLà%ˆß"6™B¸DÐØŸ;œ;ˆKÙ'ØØ)Ø-ôˆM÷ $Ñ#Ø$5Ð8HÕ$HÒ!ñ 'ð Ÿ™ MÓ2ˆçØ 1Ð4DÕ DÐçß”5Ñf ]ÐBSÑ$TÓf—5Ðf�5Ñf ]ÐBSÑ$TÓfÓfÐfäØ+ß)2˜Ø+ô
ð 	
à8<Ø+ô
ð 	
r   )rT  rV  rç   rW  )NNNNNNN)rý   rþ   rÿ   r   r¯   rY  rg  rl  r   rú   r  r  r  r  s   @@r   rP  rP  d  s7   ù‡ € õ
òòò)ð ÷<
ñ <
ó ÷<
ð <
r   rP  zˆ
    The MAMBA Model transformer with a language modeling head on top (linear layer with weights tied to the input
    embeddings).
    c                   ó‚   a a€ ] tR tRt oRR/tV 3R ltR tR tRV3R lV 3R lllt]	RV3R	 lR
 ll4       t
RtVtV ;t# )ÚMambaForCausalLMi¾  zlm_head.weightzbackbone.embeddings.weightc                óÊ   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        V P                  4        R# )Fr¬   N)
r®   r¯   rP  r+  r   r¹   r=   rS  Úlm_headrZ  )rÄ   r¢   rÅ   s   &&€r   r¯   ÚMambaForCausalLM.__init__Ç  sF   ø€ Ü‰Ñ˜Ô Ü" 6Ó*ˆŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒà�‰Ör   c                ó6   € V P                   P                  4       # r]   )r+  rg  r  s   &r   rg  Ú%MambaForCausalLM.get_input_embeddingsÎ  s   € Ø�}‰}×1Ñ1Ó3Ð3r   c                ó8   € V P                   P                  V4      # r]   )r+  rl  rj  s   &&r   rl  Ú%MambaForCausalLM.set_input_embeddingsÑ  s   € Ø�}‰}×1Ñ1°.ÓAÐAr   c                ój   <€ V ^8„  d   QhRS[ R,          RS[P                  R,          RS[R,          /# )r#   rá   Nr   Úis_first_iteration)r   r)   râ   rZ   )r-   r¦   s   "€r   r.   ÚMambaForCausalLM.__annotate__Ô  s>   ø€ ÷ ñ ñ
 ˜d•lðñ ×(Ñ(¨4Õ/ðñ ! 4�Kñr   c                óh   <€ \         S	V `  ! V3R VRVRVRVRV/VB pV'       d   V'       g   RVR&   V# )rp  rq  rá   r   rŠ  N)r®   Úprepare_inputs_for_generation)
rÄ   ro  rp  rq  rá   r   rŠ  rE   Úmodel_inputsrÅ   s
   &&&&&&&, €r   r�  Ú.MambaForCausalLM.prepare_inputs_for_generationÔ  sj   ø€ ô ‘wÒ<Øñ
à'ð
ð  ð
ð &ð	
ð
 *ð
ð  2ð
ð ñ
ˆ÷ ×/Ø-1ˆLÐ)Ñ*àÐr   c                óJ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          RS[R,          R	S[R,          R
S[S[ P                  ,          RS[S[,          /
# )r#   ro  Nr   rp  rá   Úlabelsrr  rs  rq  Úlogits_to_keeprt  )	r)   râ   rE  r   rZ   r¥   r*   rF  rJ  )r-   r¦   s   "€r   r.   r‹  î  sº   ø€ ÷ 6
ñ 6
á×#Ñ# dÕ*ð6
ñ ×(Ñ(¨4Õ/ð6
ñ ×(Ñ(¨4Õ/ð	6
ñ
 ˜d•lð6
ñ × Ñ  4Õ'ð6
ñ # T�kð6
ñ ˜D•[ð6
ñ ˜$•;ð6
ñ ™eŸl™lÕ*ð6
ñ 
Ñ$Õ	$ñ6
r   c
           
     ón  € Ve   TMV P                   P                  pV P                  VVVVVVVR7      pV^ ,          p\        V	\        4      '       d   \        V	) R4      MT	pV P                  VRVR3,          P                  V P                  P                  P                  4      4      P                  4       pRpVe-   V P                  ! R	RVRVRV P                   P                  /V
B pV'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  R7      # )
aþ  
cache_params (`Cache`, *optional*):
    If passed along, the model uses the previous state in all the blocks (which will give the output for the
    `input_ids` provided as if the model add `state_input_ids + input_ids` as context).
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for language modeling. Note that the labels **are shifted** inside the model, i.e. you can set
    `labels = input_ids` Indices are selected in `[-100, 0, ..., config.vocab_size]` All labels set to `-100`
    are ignored (masked), the loss is only computed for labels in `[0, ..., config.vocab_size]`
use_cache (`bool`, *optional*):
    If set to `True`, the `cache_params` is returned and can be used to quickly generate the next logits.
N)rá   rp  rr  rs  rq  r   r   rM  r‘  rS  :r0   NN)rL  rM  rá   r   r^   )r¢   rs  r+  r/  r¥   Úslicerƒ  r   r%   r   r[   Úloss_functionrS  rJ  rá   r   )rÄ   ro  r   rp  rá   r‘  rr  rs  rq  r’  rE   Úmamba_outputsr   Úslice_indicesrM  rL  Úoutputs   &&&&&&&&&&,      r   rú   ÚMambaForCausalLM.forwardí  s2  € ð2 &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàŸ™ØØ%Ø'Ø!5Ø#ØØ)ð &ó 
ˆð & aÕ(ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@×CÑCÀDÇLÁL×DWÑDW×D]ÑD]Ó^Ó_×eÑeÓgˆàˆØÒØ×%Ò%Ñp¨VÐp¸FÐpÈtÏ{É{×OeÑOeÐpÐioÑpˆDçØ�Y ¨rÕ!2Õ2ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä"ØØØ&×3Ñ3Ø'×5Ñ5ô	
ð 	
r   )r+  rƒ  )NNNNF)	NNNNNNNNrŒ   )rý   rþ   rÿ   r   Ú_tied_weights_keysr¯   rg  rl  r�  r   rú   r  r  r  r  s   @@r   r�  r�  ¾  sK   ù‡ € ð +Ð,HÐIÐõò4òB÷õ ð2 ÷6
ñ 6
ó ÷6
ð 6
r   r�  rü   )	NNNNTNNNr  )NNFN)NNNFFFF)r�  rP  r*  ):r  r×   Údataclassesr   r)   Útorch.nn.functionalr   Ú
functionalr9   Ú r   rÏ   Úactivationsr   Úcache_utilsr   r   Ú
generationr   Úintegrationsr	   r
   Úintegrations.accelerater   Úmodeling_layersr   Úmodeling_utilsr   Úutilsr   r   r   Úutils.import_utilsr   r   r   r   Úconfiguration_mambar   Ú
get_loggerrý   Úloggerr   r    rB   rF   rt   rž   ÚModuler    r  r  r*  rA  rJ  rP  r�  Ú__all__r^   r   r   Ú<module>r­     s   ðñ ã Ý !ã ß Ð Ý å &Ý !ß .Ý )ß WÝ =Ý 9Ý -÷ñ ÷
ó õ -ð 
×	Ò	˜HÓ	%€ò	ñ (Ð(>ÀÓPö'ó Qð'ñ& (Ð(:¸OÓLö'ó Mð'ñ, (Ð(8¸+ÓFöó Gðñ. (Ð(@À+ÓNö*ó Oð*ñZ (Ð(;¸[ÓIöhó JðhñV ØÐ)Ð+GÐIYÐ[oÐpóôE%�—‘ó E%óðE%ôPF�2—9‘9ô Fô(Ð+ô ð4 ô!>˜?ó !>ó ð!>ñH ðôð
 ô:�+ó :ó óð:ñ ðôð
 ô:˜+ó :ó óð:ð& ôV
Ð%ó V
ó ðV
ñr ðôô`
Ð+¨_ó `
óð`
òF E‚r   