+
    UV-jÎ¤  ã                   ó  € ^ RI t ^ RIHtHtHt ^ RIHt ^ RIH	t	 ^RI
Ht ^RIHt ^RIHt R t ! R R]	P"                  4      t ! R	 R
]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      t ! R R]	P"                  4      tR# )é    N)ÚOptionalÚTupleÚUnion)Úcheck_array_shape©ÚAudioConfig)ÚGemma3nRMSNormc                ó�  € \        V4      pR.V,          pV^8¼  d&   \        V 4      ^8¼  d   V ^ ,          V ^,          3VR&   V^8¼  d&   \        V 4      ^8¼  d   V ^,          V ^,          3VR&   V^8¼  d&   \        V 4      ^8¼  d   V ^,          V ^,          3VR&   V^8¼  d&   \        V 4      ^8¼  d   V ^,          V ^,          3VR&   V# )z/Convert PyTorch padding to MLX pad_width format©r   r   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿ)Úlen)ÚpaddingÚinput_shapeÚndimÚ	pad_widths   &&  Úm/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/gemma3n/audio.pyÚconvert_torch_to_mlx_pad_widthr      sÁ   € äˆ{Ó€Dð �˜4•€Ið ˆq„y”S˜“\ QÔ&à  � W¨Q¥ZÐ0ˆ	�"‰Øˆq„y”S˜“\ QÔ&à  � W¨Q¥ZÐ0ˆ	�"‰Øˆq„y”S˜“\ QÔ&à  � W¨Q¥ZÐ0ˆ	�"‰Øˆq„y”S˜“\ QÔ&à  � W¨Q¥ZÐ0ˆ	�"‰àÐó    c                   ót   a a€ ] tR t^)t oV3R lV 3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	tVt	V ;t
# )
Ú%Gemma3nAudioRelativePositionEmbeddingc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfigr   )ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú2Gemma3nAudioRelativePositionEmbedding.__annotate__+   s   ø€ ÷ Iñ I™{ñ Ir   c                óŒ  <€ \         S	V `  4        Wn        V P                  P                  V n        V P                  P
                  V n        V P                  V P                  ,          V n        V P                  P                  ^ 8”  d   V P                  P                  ^,
          M^ V n	        V P                  P                  V n        \        P                  ! V P                  V P                  V P                  ,          RR7      V n        RpRpV P                  ^,          p\        P                   ! \#        V4      \#        V4      ,          4      \%        V^,
          ^4      ,          pV\&        P(                  ! \&        P*                  ! V4      V) ,          4      ,          p\&        P,                  ! V4      R,          V n        R# )r   F©Úbiasç      ð?g     ˆÃ@N)NN.)ÚsuperÚ__init__r   Úconf_num_attention_headsÚ	num_headsÚhidden_sizeÚchannelsÚhead_dimÚconf_attention_context_leftÚmax_backwardÚconf_attention_context_rightÚmax_forwardÚnnÚLinearÚpos_projÚmathÚlogÚfloatÚmaxÚmxÚexpÚarangeÚarrayÚ_inv_timescales)
Úselfr   ÚargsÚkwargsÚmin_timescaleÚmax_timescaleÚnum_timescalesÚlog_timescale_incrementÚinv_timescalesÚ	__class__s
   &&*,     €r   r'   Ú.Gemma3nAudioRelativePositionEmbedding.__init__+   sK  ø€ Ü‰ÑÔØŒàŸ™×=Ñ=ˆŒØŸ™×/Ñ/ˆŒØŸ™¨¯©Õ7ˆŒð �{‰{×6Ñ6¸Ô:ð �K‰K×3Ñ3°aÖ7àð 	Ôð
  Ÿ;™;×CÑCˆÔäŸ	š	Ø�M‰M˜4Ÿ>™>¨D¯M©MÕ9Àô
ˆŒð ˆØˆØŸ™¨!Õ+ˆÜ"&§(¢(Ü�-Ó ¤5¨Ó#7Õ7ó#
ä� Õ" AÓ&õ#'Ðð '¬¯ªÜ�IŠI�nÓ%Ð)@Ð(@Õ@ó*
õ 
ˆô  "Ÿxšx¨Ó7¸ÕHˆÖr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   ÚpositionÚreturn©r8   r;   )r   r   s   "€r   r    r!   I   s#   ø€ ÷ +ñ +±"·(±(ð +ÁbÇhÁhñ +r   c                ó\  € VP                   ^8X  g   Q h\        P                  ! VP                  \        P                  4      RR7      pWP
                  ,          p\        P                  ! \        P                  ! V4      \        P                  ! V4      .RR7      pVP                  V4      # )r   ©Úaxisr   )	r   r8   Úexpand_dimsÚastypeÚfloat32r<   ÚconcatenateÚsinÚcos)r=   rH   ÚdtypeÚscaled_timeÚtiming_signals   &&&  r   Ú_get_timing_signal_1d_posÚ?Gemma3nAudioRelativePositionEmbedding._get_timing_signal_1d_posI   s|   € Ø�}‰} Ô!Ð!Ð!Ü—>’> (§/¡/´"·*±*Ó"=ÀBÔGˆà×!5Ñ!5Õ5ˆÜŸšÜ�VŠV�KÓ ¤"§&¢&¨Ó"5Ð6¸Rô
ˆð ×#Ñ# EÓ*Ð*r   c                ór   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[RS[RS[RS[RS[ P                  /# )	r   Úterm_bd_before_shiftÚ
batch_sizer)   Únum_query_blocksÚquery_block_sizeÚkey_context_sizeÚmax_span_plus_1rI   ©r8   r;   Úint)r   r   s   "€r   r    r!   S   sc   ø€ ÷ .ñ .á Ÿh™hð.ñ ð.ñ ð	.ñ
 ð.ñ ð.ñ ð.ñ ð.ñ 
�‰ñ.r   c                ó  € V^,           V,
          p^ V3p	\         P                  ! V\        W‘P                  4      4      p
V
P	                  VVVWV^,           ,          34      pVRRRRWV,          13,          pVP	                  VVVVV34      pV# )é   ºNNNN)r8   Úpadr   ÚshapeÚreshape)r=   rZ   r[   r)   r\   r]   r^   r_   Úpad_amount_last_dimÚpadding_tupleÚterm_bd_paddedÚterm_bd_reshapedÚterm_bd_slicedÚterm_bd_shifteds   &&&&&&&&      r   Ú_relative_shiftÚ5Gemma3nAudioRelativePositionEmbedding._relative_shiftS   s¼   € ð  0°!Õ3°ÕFÐð Ð/Ð0ˆäŸšØ Ü*¨=×:TÑ:TÓUó
ˆð *×1Ñ1àØØ Ø °qÕ$8Õ9ð	ó
Ðð *Øˆq�!Ð:Ð'Õ:Ð:Ð:õ
ˆð
 )×0Ñ0àØØ Ø Ø ðó
ˆð Ðr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   ÚqueriesÚkeysrI   rJ   )r   r   s   "€r   r    r!   ƒ   s3   ø€ ÷ R)ñ R)¡§¡ð R)±·±ð R)¹R¿X¹Xñ R)r   c           	     ó`  € VP                   w  r4rVpVP                   w   r‰ p\        P                  ! \        P                  ! V P                  V P
                  ) ^,
          R4      ^ R7      p
V
P                   ^,          pV P                  W¡P                  R7      pV P                  V4      pVP                  ^W°P                  V P                  4      P                  ^ 4      pVP                  ^ ^^^^4      pVP                  ^ ^^^^4      p\        P                  ! VV4      pVP                  ^ ^^^^4      pVP                  ^^^ 4      pVP                  W6WE,          V4      p\        P                  ! VV4      pVP                  VVVVV4      pV P                  VVVVVV	V4      pVV,           # )rc   rL   ©rT   r   )rf   r8   rN   r:   r.   r0   rW   rT   r3   rg   r)   r,   ÚsqueezeÚ	transposeÚmatmulrn   )r=   rq   rr   r[   r\   r]   r)   r,   Ú_r^   Úpos_indicesr_   Úsin_emb_timing_signalÚprojected_sin_embÚsin_embÚ	queries_pÚkeys_p_tÚterm_acÚq_transposedÚs_transposedÚ
q_reshapedÚterm_bd_unshifed_matmulÚterm_bd_unshifedrm   s   &&&                     r   Ú__call__Ú.Gemma3nAudioRelativePositionEmbedding.__call__ƒ   sÈ  € ð �M‰Mñ 	Lˆ
Ð&6À8ð (,§z¡zÑ$ˆˆ1  1ô —n’nÜ�IŠI�d×'Ñ'¨$×*:Ñ*:Ð):¸QÕ)>ÀÓCÈ!ô
ˆð &×+Ñ+¨AÕ.ˆà $× >Ñ >ØŸ}™}ð !?ó !
Ðð
 !ŸM™MÐ*?Ó@Ðà#×+Ñ+Øˆ§¡°·±ó
ç
‰'Øó
ð 	ð ×%Ñ% a¨¨A¨q°!Ó4ˆ	Ø—>‘> ! Q¨¨1¨aÓ0ˆÜ—)’)˜I xÓ0ˆð ×(Ñ(¨¨A¨q°!°QÓ7ˆð ×(Ñ(¨¨A¨qÓ1ˆð "×)Ñ)ØÐ#3Õ#FÈó
ˆ
ô #%§)¢)¨J¸Ó"EÐð 3×:Ñ:ØØØØØó
Ðð ×.Ñ.ØØØØØØØó
ˆð ˜Õ(Ð(r   )r<   r+   r   r,   r.   r0   r)   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r'   rW   rn   r…   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rE   r   s   @@r   r   r   )   s8   ù‡ € ÷Ió I÷<+ð +÷.ð .÷`R)÷ R)ð R)r   r   c                   ó�   a a€ ] tR t^Øt oV3R lV 3R lltV3R lR ltRV3R lR lltR tV3R lR	 ltV3R
 lR lt	Rt
VtV ;t# )ÚGemma3nAudioAttentionc                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú"Gemma3nAudioAttention.__annotate__Ù   s   ø€ ÷ 6Sñ 6S™{ñ 6Sr   c                óŒ  <€ \         S	V `  4        Wn        V P                  P                  V n        V P                  P
                  V n        V P
                  V P                  ,          V n        V P                  P                  V n        V P                  P                  V n
        \        ^ V P                  P                  ^,
          4      V n        V P                  P                  V n        V P                  P                   V n        V P                  V P                  ,           V P                  ,           V n        \'        V4      V n        \*        P,                  ! V P                  34      V n        \0        P2                  ! V P
                  V P                  V P                  ,          RR7      V n        \0        P2                  ! V P
                  V P                  V P                  ,          RR7      V n        \0        P2                  ! V P
                  V P                  V P                  ,          RR7      V n        V P                  R,          pR\*        P:                  ! R4      ,          pWE,          V n        \*        P>                  ! \*        P@                  ! V P$                  V P                  3\*        PB                  R7      ^ R7      PD                  p\*        P>                  ! \*        P@                  ! V P                  V P$                  3\*        PB                  R7      V P                  V P                  ,           R7      p\*        P@                  ! V P                  V P$                  3\*        PB                  R7      pW†,          V,          pW€n#        \*        PH                  ! V P"                  \*        PJ                  R7      V n&        R# )	r   Fr#   r%   g       @rt   )ÚkNg      à¿)'r&   r'   r   r(   r)   r*   r,   Úconf_attention_chunk_sizeÚ
chunk_sizer/   Úmax_future_horizonr7   r-   Úmax_past_horizonÚ#conf_attention_invalid_logits_valueÚattention_invalid_logits_valueÚconf_attention_logit_capÚattention_logits_soft_capÚcontext_sizer   Úrelative_position_embeddingr8   ÚzerosÚper_dim_scaler1   r2   Úq_projÚk_projÚv_projr5   Ú_q_scaleÚtrilÚonesÚbool_ÚTÚ_local_causal_valid_maskr;   rP   Ú_softcap)
r=   r   r>   r?   Úq_scaleÚr_softplus_0Úlower_causal_maskÚupper_causal_maskÚlocal_causal_valid_maskrE   s
   &&*,     €r   r'   ÚGemma3nAudioAttention.__init__Ù   s˜  ø€ Ü‰ÑÔØŒàŸ™×=Ñ=ˆŒØŸ;™;×2Ñ2ˆÔØ×(Ñ(¨D¯N©NÕ:ˆŒàŸ+™+×?Ñ?ˆŒØ"&§+¡+×"JÑ"JˆÔÜ # A t§{¡{×'NÑ'NÐQRÕ'RÓ SˆÔà�K‰K×;Ñ;ð 	Ô+ð *.¯©×)MÑ)MˆÔ&à�O‰O˜d×3Ñ3Õ3°d×6MÑ6MÕMð 	Ôô ,QÐQWÓ+XˆÔ(ÜŸXšX t§}¡}Ð&6Ó7ˆÔä—i’iØ×Ñ˜dŸn™n¨t¯}©}Õ<À5ô
ˆŒô —i’iØ×Ñ˜dŸn™n¨t¯}©}Õ<À5ô
ˆŒô —i’iØ×Ñ˜dŸn™n¨t¯}©}Õ<À5ô
ˆŒð —-‘- Õ%ˆð œRŸVšV C›[Õ(ˆØÕ.ˆŒäŸGšGÜ�GŠG�T×&Ñ&¨¯©Ð8ÄÇÁÔIØô
÷ ‰!ð 	ô ŸGšGÜ�GŠG�T—_‘_ d×&7Ñ&7Ð8ÄÇÁÔIØ×#Ñ# d×&=Ñ&=Õ=ô
Ðô #%§'¢'Ø�_‰_˜d×/Ñ/Ð0¼¿¹ô#
Ðð $Õ7Ð:KÕKð 	 ð )@Ô%äŸš ×!?Ñ!?ÄrÇzÁzÔRˆŽr   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r   ÚxÚ	dim10_valÚ	dim11_valrI   r`   )r   r   s   "€r   r    r’     sA   ø€ ÷ Xñ Xá�8‰8ðXñ ðXñ ð	Xñ
 
�‰ñXr   c                óö   € ^ .VP                   ,          ^,          pVP                   ^,
          p^V,          pW$V&   W4V^,           &   \        P                  ! V\        \	        V4      VP
                  4      4      # ©r   )r   r8   re   r   Útuplerf   )r=   r²   r³   r´   ri   Údim_idx_from_endÚstart_idx_for_dims   &&&&   r   Ú	_pad_dim1ÚGemma3nAudioAttention._pad_dim1  sk   € ð ˜˜aŸf™f� qÕ(ˆØŸ6™6 A�:ÐØÐ 0Õ0ÐØ+4Ð'Ñ(Ø/8Ð'¨!Õ+Ñ,ä�vŠv�aÔ7¼¸mÓ8LÈaÏgÉgÓVÓWÐWr   c                ój   <€ V ^8„  d   QhRS[ P                  RS[S[S[3,          RS[ P                  /# )r   r²   Úpadding_valrI   )r8   r;   r   Úboolr6   )r   r   s   "€r   r    r’     s6   ø€ ÷ 'ñ 'Ù—‘ð'Ù(-©d±E¨kÕ(:ð'á	�‰ñ'r   c                óD  € VP                   pVR ,          w  rEWPP                  ,           ^,
          V P                  ,          pW`P                  ,          V,
          ;p^ 8”  d   V P                  V^ V4      pWFV P                  3VR,          ,           pVP                  V4      # )ºNr   Nºr   NN)rf   r–   rº   rg   )	r=   r²   r½   rf   ÚbÚtÚ
num_blocksÚpadding_lenÚpermute_dimss	   &&&      r   Ú_convert_to_blockÚ'Gemma3nAudioAttention._convert_to_block  sƒ   € ð —‘ˆØ�R�y‰ˆØŸ/™/Õ)¨AÕ-°$·/±/ÕAˆ
à%¯©Õ7¸!Õ;Ð;ˆK¸qÔ@Ø—‘˜q ! [Ó1ˆAà t§¡Ð7¸%À½)ÕCˆØ�y‰y˜Ó&Ð&r   c                ón  € VP                   pWR,          pWc,
          V,          ^,           p. p\        V4       F]  p	W”,          p
W£,           p\        R4      .\        V4      ,          p\        W«4      WÂ&   VP	                  V\        V4      ,          4       K_  	  \        P                  ! W‚^,           R7      # )rc   NrL   )rf   ÚrangeÚslicer   Úappendr·   r8   Ústack)r=   r²   Ú	dimensionÚsizeÚsteprf   Údim_sizeÚnum_windowsÚwindowsÚiÚ	start_idxÚend_idxÚslicess   &&&&&        r   Ú
unfold_mlxÚ Gemma3nAudioAttention.unfold_mlx,  s–   € à—‘ˆØÕ#ˆØ•¨4Õ/°!Õ3ˆð ˆÜ�{Ö#ˆAØ�ˆIØÕ&ˆGô ˜D“k�]¤S¨£ZÕ/ˆFÜ % iÓ 9ˆFÑà�N‰N˜1œU 6›]Õ+Ö,ñ $ô �xŠx˜°!¥mÔ4Ð4r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   r²   rI   rJ   )r   r   s   "€r   r    r’   A  s#   ø€ ÷ ñ ©¯©ð ±R·X±Xñ r   c                óÀ  € V P                   pV P                  V P                  ,           ^,
          pV P                  WV4      pV P                  pV P                  pVP
                  ^ ,          pVP
                  ^,          pVP
                  R,          pV P                  V^WE4      p	VP                  ^8”  d'   V	P                  ^8”  d   V	P                  ^ ^^^^4      p	V	# )rc   rÁ   )	r˜   r—   r–   rº   r�   rf   rØ   r   rv   )
r=   r²   Úpad_leftÚ	pad_rightÚ	frame_lenÚ
frame_stepr[   Útime_dimÚ
other_dimsÚ
x_unfoldeds
   &&        r   Ú_extract_block_contextÚ,Gemma3nAudioAttention._extract_block_contextA  s¹   € Ø×(Ñ(ˆà×+Ñ+¨d¯o©oÕ=ÀÕAˆ	Ø�N‰N˜1¨	Ó2ˆà×%Ñ%ˆ	Ø—_‘_ˆ
ð —W‘W˜Q•Zˆ
Ø—7‘7˜1•:ˆØ—W‘W˜R•[ˆ
à—_‘_ Q¨¨9ÓAˆ
à�6‰6�AŒ:˜*Ÿ/™/¨AÔ-Ø#×-Ñ-¨a°°A°q¸!Ó<ˆJàÐr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©r   r²   ÚmaskrI   rJ   )r   r   s   "€r   r    r’   V  s3   ø€ ÷ xñ x™"Ÿ(™(ð x©"¯(©(ð x±r·x±xñ xr   c                óB	  € V P                  V4      P                  ! . VP                  R R	 OV P                  NV P                  N5!  pV P                  V4      P                  ! . VP                  R R	 OV P                  NV P                  N5!  pV P                  V4      P                  ! . VP                  R R	 OV P                  NV P                  N5!  p\        P                  ! V P                  R4      p^^^V P                  3pVP                  V4      pW0P                  ,          V,          pVP                  R,          w  ršV P                  V4      pV P                  V4      pV P                  V4      pVP                  ^,          pV( pV P                  V4      P                  ^ ^^4      pVP                  ^8X  d‡   VP                  ^ ,          V	8X  do   VP                  ^,          V8X  dW   VP                  ^,          VP                  ^,          ,          V P                  8X  d   VP                  WžV P                  4      pVP                  V	VV P                  38w  d-   \!        RVP                   RV	 RV RV P                   R2	4      h\        P"                  ! V^R7      p\        P"                  ! VR
R7      pV P$                  R,          p\        P&                  ! VV4      pV P)                  W¼4      pVV P*                  ,          p\,        P.                  ! V4      pVV P*                  ,          p\        P0                  ! VVV P2                  4      p\        P4                  ! VP7                  \        P8                  4      R	R7      P7                  VP:                  4      pVP                  w  pppppVP                  R	,          pVP                  ^ ^^^^4      P                  R	VV4      pVP                  ^ ^^^^4      P                  R	VV4      p\        P<                  ! VV4      pVP                  VVVVV4      P                  ^ ^^^^4      pVP                  V	WàP>                  ,          V P                  V P                  34      pVRR V
13,          pV# )Nç        rÀ   z%Shape of extracted_valid_mask_blocks z	 is not (z, z) after potential reshape.rL   rd   r   r   )NNN.) r¡   rg   rf   r)   r,   r¢   r£   r8   Ú	logaddexpr    r¤   rÇ   rä   rv   r   r�   Ú
ValueErrorrN   r©   Úlogical_andrž   rª   r1   ÚtanhÚwhererš   ÚsoftmaxrO   rP   rT   rw   r–   ) r=   r²   rè   Úquery_statesÚ
key_statesÚvalue_statesÚper_dim_scale_spÚbroadcast_shapeÚper_dim_scale_sp_broadcastr[   Úq_timeÚquery_blocksÚ
key_blocksÚvalue_blocksr\   Úoriginal_valid_maskÚextracted_valid_mask_blocksÚcondition_from_input_validityÚcondition_from_causalityÚfinal_condition_for_whereÚlogitsÚprobabilitiesÚb_dimÚn_dimÚu_dimÚw_dimÚc_dimÚh_dimÚprob_bunÚv_bunÚ
result_bmmÚcontext_vectorss    &&&                             r   r…   ÚGemma3nAudioAttention.__call__V  su  € Ø—{‘{ 1“~×-Ò-ð 
Ø�W‰W�S�bˆ\ð
ØŸ>™>ð
Ø+/¯=©=ó
ˆð —[‘[ “^×+Ò+ð 
Ø�W‰W�S�bˆ\ð
ØŸ>™>ð
Ø+/¯=©=ó
ˆ
ð —{‘{ 1“~×-Ò-ð 
Ø�W‰W�S�bˆ\ð
ØŸ>™>ð
Ø+/¯=©=ó
ˆô Ÿ<š<¨×(:Ñ(:¸CÓ@Ðà˜a  D§M¡MÐ2ˆØ%5×%=Ñ%=¸oÓ%NÐ"Ø#§m¡mÕ3Ð6PÕPˆà)×/Ñ/°Õ3Ñˆ
à×-Ñ-¨lÓ;ˆØ×0Ñ0°Ó<ˆ
Ø×2Ñ2°<Ó@ˆØ'×-Ñ-¨aÕ0Ðð  $˜eÐð '+×&AÑ&AØó'
ç
‰)�A�q˜!Ó
ð 	$ð (×,Ñ,°Ô1Ø+×1Ñ1°!Õ4¸
ÔBØ+×1Ñ1°!Õ4Ð8HÔHØ+×1Ñ1°!Õ4Ø)×/Ñ/°Õ2õ3à× Ñ ô!ð +F×*MÑ*MØ¨d×.?Ñ.?ó+Ð'ð '×,Ñ,ØØØ×Ñð1
ô 
ô
 ðØ/×5Ñ5Ð6°iÀ
¸|ð LØ$Ð% R¨×(9Ñ(9Ð':Ð:TðVóð ô )+¯ªØ'¨aô)
Ð%ô )+¯ªØ)°ô)
Ð%ð $(×#@Ñ#@ÐAVÕ#WÐ ô
 %'§N¢NØ)Ø$ó%
Ð!ð ×1Ñ1°,ÓKˆð ˜$Ÿ-™-Õ'ˆÜ—’˜“ˆØ˜$Ÿ-™-Õ'ˆô —’Ø% v¨t×/RÑ/Ró
ˆô Ÿ
š
 6§=¡=´·±Ó#<À2ÔF×MÑMØ×Ñó
ˆð
 -:×,?Ñ,?Ñ)ˆˆu�e˜U EØ×"Ñ" 2Õ&ˆØ ×*Ñ*¨1¨a°°A°qÓ9×AÑAÀ"ÀeÈUÓSˆØ×&Ñ& q¨!¨Q°°1Ó5×=Ñ=¸bÀ%ÈÓOˆÜ—Y’Y˜x¨Ó/ˆ
Ø$×,Ñ,Ø�5˜% ¨ó
ç
‰)�A�q˜!˜Q Ó
"ð 	ð *×1Ñ1àØ §?¡?Õ2Ø—‘Ø—‘ð	ó
ˆð *¨!¨W¨f¨W¨*Õ5ˆàÐr   )r©   r¤   rª   rš   rœ   r–   r   r�   r,   r*   r¢   r—   r˜   r)   r    r¡   rž   r£   )rê   )r‡   rˆ   r‰   rŠ   r'   rº   rÇ   rØ   rä   r…   r‹   rŒ   r�   rŽ   s   @@r   r�   r�   Ø   sI   ù‡ € ÷6Só 6S÷pXð X÷'ò 'ò5÷*ð ÷*x÷ xð xr   r�   c                   ó\   a a€ ] tR tRt oRtRV3R lV 3R llltR	V3R lR lltRtVtV ;t	# )
ÚGemma3nCumulativeGroupNormiÑ  a¼  Applies Group Normalization cumulatively over the time dimension.

This layer normalizes the input by calculating the mean and variance
cumulatively over the time dimension (dim 1). The statistics are computed
over all feature dimensions (specified by `feature_dims` and `num_channels`)
for elements marked as valid by the optional `mask`.

If a `mask` is provided (True for valid, False for invalid/padded),
invalid time steps do not contribute to the statistics calculation, and
their corresponding output values are zeroed out.

Scale and bias, if enabled, are applied per-channel (last dimension).
This behavior is similar to JAX's `GroupNormalization` with `num_groups=1`
and `cumulative=True`.
c          
      óH   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[RS[RS[/# )r   Únum_channelsÚfeature_dimsÚepsÚ	use_scaleÚuse_bias)ra   r   r6   r¾   )r   r   s   "€r   r    Ú'Gemma3nCumulativeGroupNorm.__annotate__â  sL   ø€ ÷ Nñ NáðNñ Ùõ
ðNñ ðNñ ðNñ ñNr   c           	     ó¾  <€ \         SV `  4        Wn        \        V4      V n        W0n        W@n        WPn        V P                  '       d   \        P                  ! V4      V n
        MR V n
        V P                  '       d   \        P                  ! V4      V n        MR V n        \        \        ^^\        V P                  4      ,           ^,           4      4      V n        R # ©N)r&   r'   r  r·   r  r  r  r  r8   r¦   ÚweightrŸ   r$   rÊ   r   Úreduction_axes)r=   r  r  r  r  r  rE   s   &&&&&&€r   r'   Ú#Gemma3nCumulativeGroupNorm.__init__â  s�   ø€ ô 	‰ÑÔØ(ÔÜ! ,Ó/ˆÔØŒØ"ŒØ Œà�>�>ˆ>äŸ'š' ,Ó/ˆD�KàˆDŒKà�=�=ˆ=äŸš Ó.ˆD�IàˆDŒIô $¤E¨!¨Q´°T×5FÑ5FÓ1GÕ-GÈ!Õ-KÓ$LÓMˆÖr   c                óx   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[ P                  /# rç   )r8   r;   r   )r   r   s   "€r   r    r    s8   ø€ ÷ e0ñ e0™"Ÿ(™(ð e0©(±2·8±8Õ*<ð e0ÉÏÉñ e0r   c                óf  € V P                   V P                  3,           pVP                  R,          V8w  d#   \        RVP                  R,           RV 24      hVey   VP                  VP                  R,          8w  d-   \        RVP                   RVP                  R,           24      hVP                  \
        P                  8w  d   \        R4      hVP                  p\
        P                  pVP                  V4      pVeE   R\        V4      ,          pVP                  VP                  V,           4      P                  V4      pM%\
        P                  ! V4      P                  V4      pWh,          p	\
        P                  ! W�P                  R	R
7      p
\
        P                  ! V
^R7      p\
        P                  ! W€P                  R	R
7      p\
        P                  ! V^R7      p\
        P                   ! V^R4      pW¾,          pWo,
          ^,          p\
        P                  ! VV,          V P                  R	R
7      p\
        P                  ! V^R7      pVV,          pWo,
          \
        P"                  ! VV P$                  ,           4      ,          pV P&                  '       do   V P(                  ea   V P(                  P                  V4      p^.VP*                  ^,
          ,          V P                  .,           pVVP                  V4      ,          pV P,                  '       do   V P.                  ea   V P.                  P                  V4      p^.VP*                  ^,
          ,          V P                  .,           pVVP                  V4      ,           pVV,          pVP                  V4      # )a8  Applies cumulative group norm, optionally using a mask.

Args:
  x: Input tensor, shape [B, T, *feature_dims, C].
  mask: Optional boolean mask, shape [B, T]. True indicates a valid
    (non-padded) time step. If None, all time steps are considered valid.

Returns:
  Normalized tensor with the same shape as x.
rÁ   zInput tensor shape suffix z> does not match expected suffix (feature_dims + num_channels) NrÀ   zMask shape z( must match input Batch/Time dimensions zMask must be a boolean tensor.T)rM   ÚkeepdimsrL   ©rc   )r  r  rf   rì   rT   r8   r¾   Ú	TypeErrorrP   rO   r   rg   Ú	ones_likeÚsumr  ÚcumsumÚclipÚrsqrtr  r  r  r   r  r$   )r=   r²   rè   Úexpected_input_suffixÚinput_dtypeÚ
calc_dtypeÚx_calcÚmask_suffix_shapeÚ	mask_calcÚx_masked_for_sumÚsum_values_at_tÚcum_sum_valuesÚelements_in_group_at_tÚcum_count_elementsÚsafe_cum_count_elementsÚcum_meanÚsquared_diff_from_meanÚsum_sq_diff_at_tÚcum_sum_sq_diffÚcum_varianceÚnormalized_xÚscaleÚscale_view_shaper$   Úbias_view_shapeÚfinal_outputs   &&&                       r   r…   Ú#Gemma3nCumulativeGroupNorm.__call__  s  € ð !%× 1Ñ 1°T×5FÑ5FÐ4HÕ HÐØ�7‰7�2�;Ð/Ô/ÜØ,¨Q¯W©W°R­[¨Mð :9Ø9NÐ8OðQóð ð
 ÒØ�z‰z˜QŸW™W R�[Ô(Ü Ø! $§*¡* Ð-UÐVW×V]ÑV]Ð^`ÕVaÐUbÐcóð ð �z‰zœRŸW™WÔ$ÜÐ @ÓAÐAà—g‘gˆä—Z‘Zˆ
Ø—‘˜*Ó%ˆð ÒØ $¤sÐ+@Ó'AÕ AÐØŸ™ T§Z¡ZÐ2CÕ%CÓD×KÑKÈJÓW‰IäŸš VÓ,×3Ñ3°JÓ?ˆIð "Õ-Ðô Ÿ&š&Ø×#6Ñ#6Àô
ˆô Ÿš ?¸Ô;ˆô "$§¢Ø×/Ñ/¸$ô"
Ðô  ŸYšYÐ'=ÀAÔFÐä"$§'¢'Ð*<¸aÀÓ"FÐð "Õ;ˆð
 #)Õ"3¸Õ!9ÐÜŸ6š6Ø" YÕ.Ø×$Ñ$Øô
Ðô Ÿ)š)Ð$4¸1Ô=ˆð 'Ð)@Õ@ˆð Õ)¬R¯XªX°lÀTÇXÁXÕ6MÓ-NÕNˆð �>�>ˆ>˜dŸk™kÒ5Ø—K‘K×&Ñ& zÓ2ˆEà !˜s a§f¡f¨q¥jÕ1°T×5FÑ5FÐ4GÕGÐØ'¨%¯-©-Ð8HÓ*IÕIˆLà�=�=ˆ=˜TŸY™YÒ2Ø—9‘9×#Ñ# JÓ/ˆDØ ˜c Q§V¡V¨a¥ZÕ0°D×4EÑ4EÐ3FÕFˆOØ'¨$¯,©,°Ó*GÕGˆLð $ iÕ/ˆà×"Ñ" ;Ó/Ð/r   )r$   r  r  r  r  r  r  r  )gü©ñÒMbP?TFr  )
r‡   rˆ   r‰   rŠ   Ú__doc__r'   r…   r‹   rŒ   r�   rŽ   s   @@r   r  r  Ñ  s)   ù‡ € ñ÷ Nõ N÷Be0÷ e0ò e0r   r  c                   óT   a a€ ] tR tRt oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚGemma3nAudioSSCPConvBlockik  c                óP   <€ V ^8„  d   QhRS[ RS[ RS[RS[S[ S[ S[ S[ 3,          /# )r   ÚidxÚinput_freq_dimr   Úmanual_padding)ra   r   r   )r   r   s   "€r   r    Ú&Gemma3nAudioSSCPConvBlock.__annotate__l  sA   ø€ ÷ /
ñ /
áð/
ñ ð/
ñ ð	/
ñ
 ™c¡3©©SÐ0Õ1ñ/
r   c           	     óx  <€ \         SV `  4        W0n        W@n        V^ 8X  d   ^M#V P                  P                  V^,
          ,          pV P                  P                  V,          pV P                  P
                  V,          w  ršV P                  P                  V,          w  r¼\        P                  ! VVV	V
3W¼3RRR7      V n	        VV P                  ^ ,          ,           V P                  ^,          ,           pWÚ,
          V,          ^,           p\        VV3V P                  P                  RRR7      V n        R# )r   F)Úin_channelsÚout_channelsÚkernel_sizeÚstrider   r$   T)r  r  r  r  r  Nr   )r&   r'   r   rB  Ússcp_conv_channel_sizeÚsscp_conv_kernel_sizeÚsscp_conv_stride_sizer1   ÚConv2dÚconvr  Ússcp_conv_epsÚnorm)r=   r@  rA  r   rB  r>   r?   rE  rF  Úkernel_hÚkernel_wÚstride_hÚstride_wÚf_in_paddedÚ
f_out_convrE   s   &&&&&*,        €r   r'   Ú"Gemma3nAudioSSCPConvBlock.__init__l  s  ø€ ô 	‰ÑÔØŒØ,Ôð  !œ8‘a¨¯©×)KÑ)KÈCÐRSÍGÕ)TˆØ—{‘{×9Ñ9¸#Õ>ˆØ!Ÿ[™[×>Ñ>¸sÕCÑˆØ!Ÿ[™[×>Ñ>¸sÕCÑˆä—I’IØ#Ø%àØðð Ð'ØØô

ˆŒ	ð  Ø×!Ñ! !Õ$õ%à×!Ñ! !Õ$õ%ð 	ð
 "Õ,°Õ9¸AÕ=ˆ
ä.Ø%Ø$˜Ø—‘×)Ñ)ØØô
ˆŽ	r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÛ   rJ   )r   r   s   "€r   r    rC  �  s#   ø€ ÷ /ñ /™"Ÿ(™(ð /¡r§x¡xñ /r   c                ó(  € \         P                  ! V\        V P                  VP                  4      4      pV P                  VP                  ^ ^^^4      4      pV P                  V4      pVP                  ^ ^^^4      p\        P                  ! V4      # r¶   )
r8   re   r   rB  rf   rM  rv   rO  r1   Úrelu)r=   r²   Úaudio_encodings_paddedÚaudio_encodings_convÚx_normedÚaudio_encodings_normeds   &&    r   r…   Ú"Gemma3nAudioSSCPConvBlock.__call__�  s‡   € ô
 "$§¢ØÔ-¨d×.AÑ.AÀ1Ç7Á7ÓKó"
Ðð  $Ÿy™yÐ)?×)IÑ)IÈ!ÈQÐPQÐSTÓ)UÓVÐð —9‘9Ð1Ó2ˆà!)×!3Ñ!3°A°q¸!¸QÓ!?ÐÜ�wŠwÐ-Ó.Ð.r   )r   rM  rB  rO  ))r   r   r   r   ©	r‡   rˆ   r‰   rŠ   r'   r…   r‹   rŒ   r�   rŽ   s   @@r   r>  r>  k  s   ù‡ € ÷/
õ /
÷b/÷ /ð /r   r>  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )Ú#Gemma3nAudioSubSampleConvProjectioni±  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú0Gemma3nAudioSubSampleConvProjection.__annotate__³  s   ø€ ÷ ?
ñ ?
™{ñ ?
r   c                óà  <€ \         SV `  4        Wn        VP                  p. p. p\	        ^4       FŒ  pVP
                  V,          w  r‰VP                  V,          w  r«^ pV^,
          p^p^pVVVV3pVP                  V4       WN,           V,           pVV	,
          V,          ^,           pVP                  V4       TpKŽ  	  \        ^ VP                  VV^ ,          R7      V n	        \        ^V^ ,          VV^,          R7      V n
        VP                  R,          pVR,          pVV,          V n        \        P                  ! V P                  V P                  P                  RR7      V n        R# )r   )r@  rA  r   rB  Fr#   Nr   )r&   r'   r   Úinput_feat_sizerÊ   rJ  rK  rÌ   r>  Úconv_0Úconv_1rI  Úinput_proj_in_featuresr1   r2   r*   Úinput_proj_linear)r=   r   r>   r?   Úcurrent_f_for_block_inputÚcalculated_block_paddingÚcalculated_f_out_dimsrÔ   rP  rQ  rR  rS  Ú	pad_t_topÚpad_t_bottomÚ
pad_f_leftÚpad_f_rightÚmanual_padding_tuplerT  Úf_out_after_convÚfinal_c_outÚfinal_f_outrE   s   &&*,                 €r   r'   Ú,Gemma3nAudioSubSampleConvProjection.__init__³  s…  ø€ Ü‰ÑÔØŒð ×"Ñ"ð 	"ð $&Ð Ø "Ðä�q–ˆAØ!'×!=Ñ!=¸aÕ!@ÑˆHØ!'×!=Ñ!=¸aÕ!@ÑˆHð ˆIØ# a�<ˆLð ˆJØˆKð ØØØð	$Ð ð %×+Ñ+Ð,@ÔAð 4Õ@À;ÕNˆKà˜hÕ&Øõ àõ Ðð "×(Ñ(Ð)9Ô:Ø(8Ò%ñE ôH 0ØØ!×1Ñ1ØØ3°AÕ6ô	
ˆŒô 0ØØ0°Õ3ØØ3°AÕ6ô	
ˆŒð ×3Ñ3°BÕ7ˆØ+¨BÕ/ˆØ&1°KÕ&?ˆÔ#Ü!#§¢Ø×'Ñ'¨¯©×)@Ñ)@Àuô"
ˆÖr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÛ   rJ   )r   r   s   "€r   r    rc  ô  s#   ø€ ÷ ñ ™"Ÿ(™(ð ¡r§x¡xñ r   c                ó  € \         P                  ! V^4      pV P                  V4      pV P                  V4      pVP                  w  r4rVVP                  ^ ^^^4      pVP                  W5Wd,          4      pV P                  V4      p	V	# r  )r8   rN   rf  rg  rf   rv   rg   ri  )
r=   r²   Úaudio_encodings_reshapedrÂ   Úc_outÚt_outÚf_outÚx_transposedÚoutput_flattenedÚoutputs
   &&        r   r…   Ú,Gemma3nAudioSubSampleConvProjection.__call__ô  s~   € ô $&§>¢>°!°QÓ#7Ð Ø�K‰KÐ0Ó1ˆØ�K‰K˜‹Nˆà!"§¡Ñˆ�%à—{‘{ 1 a¨¨AÓ.ˆØ'×/Ñ/°¸%½-ÓHÐØ×'Ñ'Ð(8Ó9ˆØˆr   )r   rf  rg  rh  ri  r_  rŽ   s   @@r   ra  ra  ±  s   ù‡ € ÷?
ó ?
÷B÷ ð r   ra  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚGemma3nAudioConformerAttentioni  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú+Gemma3nAudioConformerAttention.__annotate__  s   ø€ ÷ Añ A™{ñ Ar   c                óˆ  <€ \         SV `  4        Wn        V P                  P                  V P                  P                  ,          pV P                  P                  V3V n        V P                  P                  V n        \        P                  ! V P                  P                  4      V n
        \        V P                  P                  4      V n        \        V4      V n        \        P                   ! V P                  V P                  P                  R R7      V n        \        V P                  P                  4      V n        R# )Fr#   N)r&   r'   r   r*   r(   Úpost_in_shapeÚpost_in_featuresr8   r;   Úgradient_clippingÚ_gradient_clippingr	   Úpre_attn_normr�   Úattnr1   r2   ÚpostÚ	post_norm)r=   r   r>   r?   r,   rE   s   &&*, €r   r'   Ú'Gemma3nAudioConformerAttention.__init__  s×   ø€ Ü‰ÑÔØŒà—;‘;×*Ñ*¨d¯k©k×.RÑ.RÕRˆØ"Ÿk™k×BÑBÀHÐMˆÔØ $§¡× 7Ñ 7ˆÔä"$§(¢(¨4¯;©;×+HÑ+HÓ"IˆÔä+¨D¯K©K×,CÑ,CÓDˆÔÜ)¨&Ó1ˆŒ	Ü—I’IØ×!Ñ! 4§;¡;×#:Ñ#:Àô
ˆŒ	ô (¨¯©×(?Ñ(?Ó@ˆŽr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# rç   rJ   )r   r   s   "€r   r    rƒ    s3   ø€ ÷ Añ A™"Ÿ(™(ð A©"¯(©(ð A±r·x±xñ Ar   c                ó˜  € Tp\         P                  ! WP                  ) V P                  4      pV P                  V4      pV P	                  WB4      pVP
                  w  rgr‰VP                  WgW‰,          4      p
V P                  V
4      p\         P                  ! WP                  ) V P                  4      pW0P                  V4      ,           # r  )	r8   r#  rˆ  r‰  rŠ  rf   rg   r‹  rŒ  )r=   r²   rè   Úaudio_encodings_input_to_attnÚaudio_encodings_normÚaudio_encodings_attn_outrÂ   rÃ   r)   r,   rx  s   &&&        r   r…   Ú'Gemma3nAudioConformerAttention.__call__  sµ   € Ø()Ð%Ü�GŠG�A×/Ñ/Ð/°×1HÑ1HÓIˆØ#×1Ñ1°!Ó4Ðà#'§9¡9Ð-AÓ#HÐ ð %=×$BÑ$BÑ!ˆˆiØ#;×#CÑ#CØ�)Õ&ó$
Ð ð �I‰IÐ.Ó/ˆÜ�GŠG�A×/Ñ/Ð/°×1HÑ1HÓIˆØ,¯~©~¸aÓ/@Õ@Ð@r   )rˆ  rŠ  r   r‹  r†  r…  rŒ  r‰  r_  rŽ   s   @@r   r�  r�    s#   ù‡ € ÷Aó A÷"A÷ Að Ar   r�  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )Ú Gemma3nAudioConformerFeedForwardi(  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú-Gemma3nAudioConformerFeedForward.__annotate__)  s   ø€ ÷ Lñ L™{ñ Lr   c                ó°  <€ \         SV `  4        Wn        \        P                  ! V P                  P
                  4      V n        \        V P                  P                  4      V n	        \        P                  ! V P                  P                  V P                  P                  ^,          RR7      V n        \        P                  ! V P                  P                  ^,          V P                  P                  RR7      V n        \        V P                  P                  4      V n        \        P                  ! V P                  P                  4      V n        R# )é   Fr#   N)r&   r'   r   r8   r;   r‡  rˆ  r	   r*   Úpre_layer_normr1   r2   Úffw_layer_1Úffw_layer_2Úpost_layer_normÚconf_residual_weightÚ_post_layer_scale©r=   r   r>   r?   rE   s   &&*,€r   r'   Ú)Gemma3nAudioConformerFeedForward.__init__)  sÝ   ø€ Ü‰ÑÔØŒä"$§(¢(¨4¯;©;×+HÑ+HÓ"IˆÔä,¨T¯[©[×-DÑ-DÓEˆÔÜŸ9š9Ø�K‰K×#Ñ# T§[¡[×%<Ñ%<¸qÕ%@Àuô
ˆÔô Ÿ9š9Ø�K‰K×#Ñ# aÕ'¨¯©×)@Ñ)@Àuô
ˆÔô  .¨d¯k©k×.EÑ.EÓFˆÔÜ!#§¢¨$¯+©+×*JÑ*JÓ!KˆÖr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÛ   rJ   )r   r   s   "€r   r    r—  9  s#   ø€ ÷ 	7ñ 	7™"Ÿ(™(ð 	7¡r§x¡xñ 	7r   c                óœ  € Tp\         P                  ! WP                  ) V P                  4      pV P                  V4      pV P	                  V4      p\
        P                  ! V4      pV P                  V4      p\         P                  ! WP                  ) V P                  4      pV P                  V4      pW!V P                  ,          ,           # r  )
r8   r#  rˆ  rš  r›  r1   Úsilurœ  r�  rŸ  )r=   r²   Úresiduals   && r   r…   Ú)Gemma3nAudioConformerFeedForward.__call__9  s¦   € ØˆÜ�GŠG�A×/Ñ/Ð/°×1HÑ1HÓIˆØ×Ñ Ó"ˆØ×&Ñ& qÓ)ˆÜ�GŠG�A‹JˆØ×&Ñ& qÓ)ˆÜ�GŠG�A×/Ñ/Ð/°×1HÑ1HÓIˆØ× Ñ  Ó#ˆØ˜t×5Ñ5Õ5Õ6Ð6r   )rˆ  rŸ  r   r›  rœ  r�  rš  r_  rŽ   s   @@r   r•  r•  (  s    ù‡ € ÷Ló L÷ 	7÷ 	7ð 	7r   r•  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )Ú Gemma3nAudioConformerLightConv1diE  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú-Gemma3nAudioConformerLightConv1d.__annotate__F  s   ø€ ÷ Dñ D™{ñ Dr   c           
     óÄ  <€ \         SV `  4        Wn        \        V P                  P                  V P                  P
                  R 7      V n        \        P                  ! V P                  P                  V P                  P                  ^,          RR7      V n	        \        P                  ! V P                  P                  V P                  P                  V P                  P                  ^^ V P                  P                  RR7      V n        \        P                  ! V P                  P                  4      V n        \        V P                  P                  V P                  P
                  R 7      V n        \        P                  ! V P                  P                  V P                  P                  RR7      V n        V P                  P                  ^,
          V n        R# ))r  Fr#   )rE  rF  rG  rH  r   Úgroupsr$   N)r&   r'   r   r	   r*   Úrms_norm_epsrš  r1   r2   Úlinear_startÚConv1dÚconf_conv_kernel_sizeÚdepthwise_conv1dr8   r;   r‡  rˆ  Ú	conv_normÚ
linear_endÚcausal_paddingr   s   &&*,€r   r'   Ú)Gemma3nAudioConformerLightConv1d.__init__F  sD  ø€ Ü‰ÑÔØŒä,Ø�K‰K×#Ñ#¨¯©×)AÑ)Aô
ˆÔô ŸIšIØ�K‰K×#Ñ# T§[¡[×%<Ñ%<¸qÕ%@Àuô
ˆÔô !#§	¢	ØŸ™×/Ñ/ØŸ™×0Ñ0ØŸ™×9Ñ9ØØØ—;‘;×*Ñ*Øô!
ˆÔô #%§(¢(¨4¯;©;×+HÑ+HÓ"IˆÔÜ'Ø�K‰K×#Ñ#¨¯©×)AÑ)Aô
ˆŒô Ÿ)š)Ø�K‰K×#Ñ# T§[¡[×%<Ñ%<À5ô
ˆŒð #Ÿk™k×?Ñ?À!ÕCˆÖr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úaudio_encodingsrI   rJ   )r   r   s   "€r   r    rª  c  s#   ø€ ÷ ñ ©¯©ð ±R·X±Xñ r   c                ó.  € TpV P                  V4      pV P                  V4      p\        P                  ! VRR7      pVP	                  ^ ^^4      p\
        P                  ! V\        V P                  ^ 3VP                  4      4      pV P                  VP	                  ^ ^^4      4      p\
        P                  ! WP                  ) V P                  4      pV P                  V4      p\        P                  ! V4      pV P                  V4      pW,           pV# )rc   rL   r   )rš  r®  r1   Úglurv   r8   re   r   r´  rf   r±  r#  rˆ  r²  r¤  r³  )r=   r·  Úaudio_encodings_residualÚaudio_encodings_transposedÚ!audio_encodings_transposed_paddedr~  s   &&    r   r…   Ú)Gemma3nAudioConformerLightConv1d.__call__c  sÿ   € Ø#2Ð à×-Ñ-¨oÓ>ˆØ×+Ñ+¨OÓ<ˆÜŸ&š& °rÔ:ˆà%4×%>Ñ%>¸qÀ!ÀQÓ%GÐ"ä,.¯FªFØ&Ü*Ø×$Ñ$ aÐ(Ð*D×*JÑ*Jóó-
Ð)ð ×/Ñ/Ø-×7Ñ7¸¸1¸aÓ@ó
ˆô Ÿ'š'Ø×5Ñ5Ð5°t×7NÑ7Nó
ˆð Ÿ.™.¨Ó9ˆÜŸ'š' /Ó2ˆØŸ/™/¨/Ó:ˆØ Õ;ˆØˆr   )rˆ  r´  r   r²  r±  r³  r®  rš  r_  rŽ   s   @@r   r¨  r¨  E  s    ù‡ € ÷Dó D÷:÷ ð r   r¨  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚGemma3nAudioConformerBlocki  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    Ú'Gemma3nAudioConformerBlock.__annotate__�  s   ø€ ÷ 	<ñ 	<™{ñ 	<r   c                ó¦  <€ \         SV `  4        Wn        \        V P                  4      V n        \        V P                  4      V n        \        V P                  4      V n        \        V P                  4      V n	        \        P                  ! V P                  P                  4      V n        \        V P                  P                  4      V n        R # r  )r&   r'   r   r•  Úffw_layer_startr�  Ú	attentionr¨  Úlconv1dÚffw_layer_endr8   r;   r‡  rˆ  r	   r*   rO  r   s   &&*,€r   r'   Ú#Gemma3nAudioConformerBlock.__init__�  s†   ø€ Ü‰ÑÔØŒä?ÀÇÁÓLˆÔÜ7¸¿¹ÓDˆŒÜ7¸¿¹ÓDˆŒÜ=¸d¿k¹kÓJˆÔÜ"$§(¢(¨4¯;©;×+HÑ+HÓ"IˆÔÜ" 4§;¡;×#:Ñ#:Ó;ˆŽ	r   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   r·  Úaudio_mel_maskrI   rJ   )r   r   s   "€r   r    rÁ  Œ  s.   ø€ ÷ ñ ©¯©ð Á"Ç(Á(ð ÉrÏxÉxñ r   c                ó|  € V P                  V4      pV P                  W4      pV( pV\        P                  ! VR4      P	                  VP
                  4      ,          pV P                  V4      pV P                  V4      p\        P                  ! WP                  ) V P                  4      pV P                  V4      pV# )rc   r   )rÃ  rÄ  r8   rN   rO   rT   rÅ  rÆ  r#  rˆ  rO  )r=   r·  rÉ  Úvalidity_mask_for_lconvÚaudio_encodings_for_lconv_inputr~  s   &&&   r   r…   Ú#Gemma3nAudioConformerBlock.__call__Œ  s«   € Ø×.Ñ.¨Ó?ˆØŸ.™.¨ÓIˆØ#1 /ÐØ*9¼B¿NºNØ# Ró=
ç
‰&�×&Ñ&Ó
'õ+(Ð'ð Ÿ,™,Ð'FÓGˆà×,Ñ,¨_Ó=ˆÜŸ'š'Ø×5Ñ5Ð5°t×7NÑ7Nó
ˆð —‘˜?Ó+ˆØˆr   )rˆ  rÄ  r   rÆ  rÃ  rÅ  rO  r_  rŽ   s   @@r   r¿  r¿    s   ù‡ € ÷	<ó 	<÷÷ ð r   r¿  c                   óV   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltR tRtVtV ;t	# )Ú
AudioModeli�  c                ó    <€ V ^8„  d   QhRS[ /# r   r   )r   r   s   "€r   r    ÚAudioModel.__annotate__ž  s   ø€ ÷ 
ñ 
™{ñ 
r   c                óÀ   <€ \         SV `  4        Wn        \        V4      V n        \        VP                  4       Uu. uF  p\        V4      NK  	  upV n        R # u upi r  )	r&   r'   r   ra  Úsubsample_conv_projectionrÊ   Úconf_num_hidden_layersr¿  Ú	conformer)r=   r   r>   r?   rx   rE   s   &&*, €r   r'   ÚAudioModel.__init__ž  sV   ø€ Ü‰ÑÔØŒä)LÈVÓ)TˆÔ&ô ˜6×8Ñ8Ô9ó
á9�ô ' vÖ.Ù9ñ
ˆŽùò 
s   ½Ac                ó’   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[ P                  S[ P                  3,          /# )r   Ú	audio_melrÉ  rI   )r8   r;   r   )r   r   s   "€r   r    rÑ  ¨  sD   ø€ ÷ T-ñ T-ÙŸ™ðT-Ù35·8±8ðT-á	‰r�x‰x™Ÿ™Ð!Õ	"ñT-r   c                ó<  € V P                  V4      pVP                  ^,          p^p\        \        V P                  P
                  4      4       F-  pWPP                  P
                  V,          ^ ,          ,          pK/  	  \        P                  ! V4      V,          p\        P                  ! VRVP                  ^,          ^,
          R7      pVP                  ^8”  dV   VP                  ^8X  dE   VR,          p\        P                  ! WrP                  ^ ,          VP                  ^,          34      pMkVP                  VP                  8X  dQ   VP                  ^ ,          ^8X  d9   VP                  ^ ,          ^8w  d!   WGP                  ^ ,          8X  d
   VR,          p\        P                  ! W'^R7      pVP                  ^,          V8w  d‹   \        RVP                  ^,          V4       VP                  ^,          V8”  d   VRRV13,          pMFWHP                  ^,          ,
          p	\        P                  ! V\        ^ V	3VP                  4      4      p\        V P                   4       F  w  r«V! W84      pK  	  V P                  P"                  ^8”  dE   VRRRV P                  P"                  13,          pVRRRV P                  P"                  13,          pVP                  ^,          VP                  ^,          8w  dv   VP                  ^,          pVP                  ^,          pWÍ8”  d7   WÍ,
          p	\        P                  ! V\        ^ V	3VP                  4      4      pMWÜ8”  d   VRRV13,          p\        P$                  ! VR,          RV4      pW83# )	rc   N)Úa_maxrd   rL   z[Warning: Subsampled mask length %s mismatch with feature length %s after gather. Adjusting.rê   )Nrd   ).N)rÓ  rf   rÊ   r   r   rK  r8   r:   r#  r   Úbroadcast_toÚtake_along_axisÚprintre   r   Ú	enumeraterÕ  Úconf_reduction_factorrï   )r=   rØ  rÉ  r·  Út_subÚtime_stride_productÚstride_pair_idxÚindicesÚcurrent_maskÚpadding_neededrÔ   ÚblockÚ
target_lenÚmask_current_lens   &&&           r   r…   ÚAudioModel.__call__¨  s  € ð ×8Ñ8Øó
ˆð
  ×%Ñ% aÕ(ˆàÐÜ$¤S¨¯©×)JÑ)JÓ%KÖLˆOØ§;¡;×#DÑ#DÀ_Õ#UÐVWÕ#XÕXÒñ  Mô —)’)˜EÓ"Ð%8Õ8ˆÜ—'’'Ø�T ×!5Ñ!5°aÕ!8¸1Õ!<ô
ˆð
 ×Ñ Ô" w§|¡|°qÔ'8Ø˜gÕ&ˆGÜ—o’oØ×.Ñ.¨qÕ1°7·=±=ÀÕ3CÐDó‰Gð ×Ñ 7§<¡<Ô/Ø×$Ñ$ QÕ'¨1Ô,Ø—‘˜aÕ  AÔ%ØŸ™ qÕ)Ô)ð ˜gÕ&ˆGä×)Ò)¨.ÈÔJˆð ×Ñ˜aÕ  EÔ)ÜØmØ×"Ñ" 1Õ%Øôð
 ×!Ñ! !Õ$ uÔ,Ø+¨A¨v°¨v¨IÕ6‘à!&×);Ñ);¸AÕ)>Õ!>�Ü!ŸvšvØ Ü2Ø˜NÐ+¨\×-?Ñ-?óó �ô " $§.¡.Ö1‰HˆAÙ#ØóŠOñ 2ð
 �;‰;×,Ñ,¨qÔ0Ø-¨aÑ1U°D·K±K×4UÑ4UÐ1UÐ.UÕVˆOà'¨Ñ+O¨d¯k©k×.OÑ.OÐ+OÐ(OÕPˆLð ×Ñ˜aÕ  O×$9Ñ$9¸!Õ$<Ô<Ø(×.Ñ.¨qÕ1ˆJØ+×1Ñ1°!Õ4ÐØÔ,Ø!+Õ!>�Ü!ŸvšvØ Ü2Ø˜NÐ+¨\×-?Ñ-?óó ‘ð "Ô.Ø+¨A¨{°
¨{¨NÕ;�äŸ(š( <°	Õ#:¸CÀÓQˆØÐ,Ð,r   c                ó  € / pVP                  4        Ft  w  r4R V9   d0   \        V4      '       d   WBV&   K#  VP                  ^ ^^^4      W#&   K;  RV9   d/   \        V4      '       d   WBV&   KY  VP                  ^ ^^4      W#&   Kp  WBV&   Kv  	  V# )zconv.weightzconv1d.weight)Úitemsr   rv   )r=   ÚweightsÚsanitized_weightsr”   Úvs   &&   r   ÚsanitizeÚAudioModel.sanitizeþ  sŽ   € ØÐØ—M‘M–O‰DˆAØ Ô!Ü$ Q×'Ò'Ø+, aÓ(à+,¯;©;°q¸!¸QÀÓ+BÐ%Ó(Ø  AÔ%Ü$ Q×'Ò'Ø+, aÓ(à+,¯;©;°q¸!¸QÓ+?Ð%Ó(à'( !Ó$ñ $ð !Ð r   )r   rÕ  rÓ  )
r‡   rˆ   r‰   rŠ   r'   r…   rï  r‹   rŒ   r�   rŽ   s   @@r   rÏ  rÏ  �  s&   ù‡ € ÷
ó 
÷T-ð T-÷l!ò !r   rÏ  )r4   Útypingr   r   r   Úmlx.coreÚcorer8   Úmlx.nnr1   Úbaser   r   r   Úlanguager	   r   ÚModuler   r�   r  r>  ra  r�  r•  r¨  r¿  rÏ  © r   r   Ú<module>rù     s×   ðÛ ß )Ñ )å Ý å $Ý Ý $òô:l)¨B¯I©Iô l)ô^v˜BŸI™Iô vôrW0 §¡ô W0ôtC/ §	¡	ô C/ôLO¨"¯)©)ô Oôd"A R§Y¡Yô "AôJ7 r§y¡yô 7ô:7 r§y¡yô 7ôt §¡ô ô<q!�—‘ö q!r   