+
    œ°³jg! ã                   óD  € R t ^ RIt^ RIt^ RIHt ^ RIH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 ^R	IHt ^R
IHtHt ^RIHtHt ^RIHt ^RIH t  ^RI!H"t"H#t#H$t$H%t%H&t&H't' ^RI(H)t) ^RI*H+t+ ^RI,H-t-H.t.H/t/ ]&P`                  ! ]14      t2R t3R t4R t5R R lt6]$! RR7      ] ! R R]"4      4       4       t7]$! RR7      ] ! R R]"4      4       4       t8]$] ! R R]"4      4       4       t9 ! R  R!]Pt                  4      t; ! R" R#]Pt                  4      t< ! R$ R%]Pt                  4      t= ! R& R']Pt                  4      t> ! R( R)]Pt                  4      t? ! R* R+]Pt                  4      t@ ! R, R-]Pt                  4      tA ! R. R/]Pt                  4      tB ! R0 R1]Pt                  4      tC ! R2 R3]4      tD ! R4 R5]Pt                  4      tE ! R6 R7]Pt                  4      tF ! R8 R9]Pt                  4      tG ! R: R;]Pt                  4      tHR[R< R= lltI ! R> R?]Pt                  4      tJ ! R@ RA]Pt                  4      tK ! RB RC]Pt                  4      tL ! RD RE]Pt                  4      tM ! RF RG]Pt                  4      tN ! RH RI]4      tO ! RJ RK]Pt                  4      tP ! RL RM]Pt                  4      tQ]$ ! RN RO]4      4       tR ! RP RQ]R4      tS]$! RRR7       ! RS RT]R4      4       tT]$ ! RU RV]R4      4       tU]$ ! RW RX]R4      4       tV]$ ! RY RZ]R4      4       tW. R\OtXR# )]zPyTorch CLAP model.N)ÚCallable)Ú	dataclass)ÚAny)Únn)Úinitialization)ÚACT2FN)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚ	torch_int)Úmerge_with_config_defaults)Úcapture_outputs)ÚClapAudioConfigÚ
ClapConfigÚClapTextConfigc                óŒ   € V P                   w  r#pV R,          P                  ^^V^4      pVP                  W#V,          V4      pV# )aI  
Interpolate data in time domain. This is used to compensate the resolution reduction in downsampling of a CNN.

Args:
    hidden_states (`torch.FloatTensor` of shape (batch_size, time_length, classes_num)):
        Input hidden states
    ratio (`int`):
        The ratio of the length of the output to the length of the input.
)ºNNNr   Nr   )ÚshapeÚrepeatÚreshape)Úhidden_statesÚratioÚ
batch_sizeÚtime_lengthÚclasses_numÚ	upsampleds   &&    Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/clap/modeling_clap.pyÚinterpolater'   /   sL   € ð .;×-@Ñ-@Ñ*€Z˜kØ˜mÕ,×3Ñ3°A°q¸%ÀÓC€IØ×!Ñ! *¸EÕ.AÀ;ÓO€IØÐó    c                óÐ   € V P                   w  r#rEV P                  W#V,          WV,          W4      p V P                  ^ ^^^^^4      P                  4       P                  RWV4      pV# )a2  
Returns the resized hidden states. The output shape should be `(batch_size * num_windows, window_size, window_size,
num_channels)`

Args:
    hidden_states (`torch.FloatTensor` of shape `(batch_size, height, width, num_channels)`):
        Input hidden states
    window_size (`int`):
        Window size
éÿÿÿÿ©r   ÚviewÚpermuteÚ
contiguous)r    Úwindow_sizer"   ÚheightÚwidthÚnum_channelsÚwindowss   &&     r&   Úwindow_partitionr4   @   so   € ð /<×.AÑ.AÑ+€J˜à!×&Ñ&Ø˜kÕ)¨;ÀÕ8LÈkó€Mð ×#Ñ# A q¨!¨Q°°1Ó5×@Ñ@ÓB×GÑGÈÈKÐfrÓs€GØ€Nr(   c                óØ   € V P                   R,          pV P                  RW!,          W1,          WV4      p V P                  ^ ^^^^^4      P                  4       P                  RW#V4      p V # )a_  
Merges windows to produce higher resolution features.
Args:
    windows (`torch.FloatTensor` of shape `(num_windows * batch_size, window_size, window_size, num_channels)`):
        Input windows
    window_size (`int`):
        Window size
    height (`int`):
        Height of the resized audio
    width (`int`):
        Width of the resized audio
r*   r+   )r3   r/   r0   r1   r2   s   &&&& r&   Úwindow_reverser6   U   se   € ð —=‘= Õ$€LØ�l‰l˜2˜vÕ4°eÕ6JÈKÐfrÓs€GØ�o‰o˜a  A q¨!¨QÓ/×:Ñ:Ó<×AÑAÀ"ÀfÐUaÓb€GØ€Nr(   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )é   ÚlogitsÚreturn©ÚtorchÚTensor)Úformats   "r&   Ú__annotate__r?   j   s"   € ÷ 7ñ 7œUŸ\™\ð 7¬e¯l©lñ 7r(   c                 ó–   € \         P                  ! \        V 4      V P                  R 7      p\        P
                  P                  W4      # )©Údevice)r<   ÚarangeÚlenrB   r   Ú
functionalÚcross_entropy)r9   Úlabelss   & r&   Úcontrastive_lossrH   j   s/   € Ü�\Š\œ#˜f›+¨f¯m©mÔ<€FÜ�=‰=×&Ñ& vÓ6Ð6r(   ze
    Base class for text model's outputs that also contains a pooling of the last hidden states.
    )Úcustom_introc                   ó@   a € ] tR t^ot o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚClapTextModelOutputzê
text_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim)` *optional* returned when model is initialized with `with_projection=True`):
    The text embeddings obtained by applying the projection layer to the pooler_output.
Nc                óú   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )r8   NÚtext_embedsÚlast_hidden_state.r    Ú
attentions©r<   ÚFloatTensorÚtuple)r>   Ú__classdict__s   "€r&   r?   Ú ClapTextModelOutput.__annotate__o   sy   ø‡ ‚ ñ ×"Ñ" TÕ)Ñ0ñ ñ ×(Ñ(¨4Õ/Ñ6ñ ñ ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ ñ  ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ò! r(   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rM   rN   r    rO   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rS   s   @r&   rK   rK   o   s(   ø‡ € ñð
 -1€KØ26ÐØ:>€MØ7;€J÷! ƒ r(   rK   zT
    ClapAudio model output to mimic the output of the original implementation.
    c                   ó@   a € ] tR t^‚t o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚClapAudioModelOutputz£
audio_embeds (`torch.FloatTensor` of shape `(batch_size, hidden_size)`):
    The Audio embeddings obtained by applying the projection layer to the pooler_output.
Nc                óú   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )r8   NÚaudio_embedsrN   .r    rO   rP   )r>   rS   s   "€r&   r?   Ú!ClapAudioModelOutput.__annotate__‚   sy   ø‡ ‚ ñ ×#Ñ# dÕ*Ñ1ñ ñ ×(Ñ(¨4Õ/Ñ6ñ ñ ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ ñ ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ò r(   rU   )rV   rW   rX   rY   rZ   rb   rN   r    rO   r[   r\   r]   r^   s   @r&   r`   r`   ‚   s(   ø‡ € ñð
 .2€LØ26ÐØ:>€MØ7;€J÷ ƒ r(   r`   c                   ó^   a € ] tR t^”t o RtRtRtRtRtRt	Rt
RtV 3R lR ltV 3R ltRtV tR# )Ú
ClapOutputab  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `return_loss` is `True`):
    Contrastive loss for audio-text similarity.
logits_per_audio (`torch.FloatTensor` of shape `(audio_batch_size, text_batch_size)`):
    The scaled dot product scores between `audio_embeds` and `text_embeds`. This represents the audio-text
    similarity scores.
logits_per_text (`torch.FloatTensor` of shape `(text_batch_size, audio_batch_size)`):
    The scaled dot product scores between `text_embeds` and `audio_embeds`. This represents the text-audio
    similarity scores.
text_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The text embeddings obtained by applying the projection layer to the pooled output of [`ClapTextModel`].
audio_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The audio embeddings obtained by applying the projection layer to the pooled output of [`ClapAudioModel`].
text_model_output (`BaseModelOutputWithPooling`):
    The output of the [`ClapTextModel`].
audio_model_output (`BaseModelOutputWithPooling`):
    The output of the [`ClapAudioModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r8   r:   )rR   r   )r>   rS   s   "€r&   r?   ÚClapOutput.__annotate__³   s   ø€ ÷ _ñ _™%¡�*ñ _r(   c                ó’   € \         ;QJ d"    . R  V P                  4        4       F  NK  	  5# ! R  V P                  4        4       4      # )c              3   ór   "  € T F-  p\        V\        4      '       d   VP                  4       MTx € K/  	  R # 5i©N)Ú
isinstancer   Úto_tuple)Ú.0Úvs   & r&   Ú	<genexpr>Ú&ClapOutput.to_tuple.<locals>.<genexpr>´   s)   é € Ð^ÑP]È1¤Z°´;×%?Ò%?�Q—Z‘Z”\ÀQÔFÓP]ùs   ‚57)rR   Úvalues©Úselfs   &r&   rm   ÚClapOutput.to_tuple³   s8   € ßŒuÑ^ÐPT×P[ÑP[ÔP]Ó^�uÐ^ˆuÑ^ÐPT×P[ÑP[ÔP]Ó^Ó^Ð^r(   c                ó  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[;R&   S[;R&   # )	r8   NÚlossÚlogits_per_audioÚlogits_per_textrM   rb   Útext_model_outputÚaudio_model_output)r<   rQ   r   )r>   rS   s   "€r&   r?   rh   ”   s—   ø‡ ‚ ñ. ×
Ñ
˜dÕ
"Ñ)ñ/ ñ0 ×'Ñ'¨$Õ.Ñ5ñ1 ñ2 ×&Ñ&¨Õ-Ñ4ñ3 ñ4 ×"Ñ" TÕ)Ñ0ñ5 ñ6 ×#Ñ# dÕ*Ñ1ñ7 ñ8 2Ñ8ñ9 ñ: 3Ñ9ò; r(   rU   )rV   rW   rX   rY   rZ   rw   rx   ry   rM   rb   rz   r{   rm   r[   r\   r]   r^   s   @r&   re   re   ”   sE   ø‡ € ñð& &*€DØ15ÐØ04€OØ,0€KØ-1€LØ48ÐØ59Ð÷_ð _÷? ƒ r(   re   c                   óH   a a€ ] tR t^¸t oRtV3R lV 3R lltR tRtVtV ;t	# )ÚClapAudioAFFBlockzƒ
ATTENTIONAL FEATURE FUSION Block from CLAP, since in CLAP we are always in 2D mode, it is not needed to implement
the 1D version.
c                ó    <€ V ^8„  d   QhRS[ /# ©r8   Úconfig©r   )r>   rS   s   "€r&   r?   ÚClapAudioAFFBlock.__annotate__¾   s   ø€ ÷ $ñ $™ñ $r(   c                ó  <€ \         SV `  4        VP                  pVP                  p\	        W#,          4      p\
        P                  ! \
        P                  ! W$^^^ R7      \
        P                  ! V4      \
        P                  ! RR7      \
        P                  ! WB^^^ R7      \
        P                  ! V4      4      V n
        \
        P                  ! \
        P                  ! ^4      \
        P                  ! W$^^^ R7      \
        P                  ! V4      \
        P                  ! RR7      \
        P                  ! WB^^^ R7      \
        P                  ! V4      4      V n        \
        P                  ! 4       V n        R# )é   ©Úkernel_sizeÚstrideÚpaddingT)ÚinplaceN)ÚsuperÚ__init__Úpatch_embeds_hidden_sizeÚaff_block_rÚintr   Ú
SequentialÚConv2dÚBatchNorm2dÚReLUÚ	local_attÚAdaptiveAvgPool2dÚ
global_attÚSigmoidÚsigmoid)rt   r€   ÚchannelsÚdownsize_ratioÚinter_channelsÚ	__class__s   &&   €r&   r‹   ÚClapAudioAFFBlock.__init__¾   s  ø€ Ü‰ÑÔØ×2Ñ2ˆØ×+Ñ+ˆÜ˜XÕ7Ó8ˆäŸšÜ�IŠI�h¸AÀaÐQRÔSÜ�NŠN˜>Ó*Ü�GŠG˜DÔ!Ü�IŠI�n¸AÀaÐQRÔSÜ�NŠN˜8Ó$ó
ˆŒô Ÿ-š-Ü× Ò  Ó#Ü�IŠI�h¸AÀaÐQRÔSÜ�NŠN˜>Ó*Ü�GŠG˜DÔ!Ü�IŠI�n¸AÀaÐQRÔSÜ�NŠN˜8Ó$ó
ˆŒô —z’z“|ˆŽr(   c                óÞ   € W,           pV P                  V4      V P                  V4      ,           pV P                  V4      p^V,          V,          ^V,          ^V,
          ,          ,           pV# )r8   )r“   r•   r—   )rt   r    ÚresidualÚattention_inputÚfused_layer_outputÚoutputs   &&&   r&   ÚforwardÚClapAudioAFFBlock.forwardÖ   s`   € Ø'Õ2ˆà!Ÿ^™^¨OÓ<¸t¿¹ÈÓ?_Õ_ÐØ!Ÿ\™\Ð*<Ó=Ðà�]Õ"Ð%7Õ7¸!¸h½,È!ÐN`ÕJ`Õ:aÕaˆØˆr(   )r•   r“   r—   ©
rV   rW   rX   rY   rZ   r‹   r¢   r\   r]   Ú__classcell__©r›   rS   s   @@r&   r}   r}   ¸   s   ù‡ € ñ÷
$ó $÷0ò r(   r}   c                   óL   a a€ ] tR t^àt oRtV3R lV 3R lltRR ltRtVtV ;t	# )ÚClapAudioPatchEmbedz~
This module converts the hidden states reshaped as an image to patch embeddings ready to be passed to the
Transformer block.
c                ó    <€ V ^8„  d   QhRS[ /# r   r�   )r>   rS   s   "€r&   r?   Ú ClapAudioPatchEmbed.__annotate__æ   s   ø€ ÷ (ñ (™ñ (r(   c                ó¾  <€ \         SV `  4        \        VP                  \        4      '       d   VP                  VP                  3MVP                  p\        VP
                  \        4      '       d   VP
                  VP
                  3MVP
                  p\        VP                  \        4      '       d   VP                  VP                  3MVP                  pW n        W@n        V^ ,          V^ ,          ,          V^,          V^,          ,          3V n        V P                  ^ ,          V P                  ^,          ,          V n	        VP                  V n        VP                  V n        V^ ,          V^ ,          ,
          ^,          V^,          V^,          ,
          ^,          3pV P                  '       d   VP                  R8X  d   ^M^p\        P                  ! VP                   V,          VP"                  VVVR7      V n        VP&                  '       d!   \        P(                  ! VP"                  4      M\        P*                  ! 4       V n        V P                  '       du   \/        V4      V n        \        P                  ! VP                   VP"                  V^ ,          V^,          ^,          3V^ ,          V^,          ^,          3VR7      V n        R# R# )é    Úchannel_mapr…   N)rŠ   r‹   rl   Ú	spec_sizerŽ   Ú
patch_sizeÚpatch_strideÚimg_sizeÚ	grid_sizeÚnum_patchesÚflatten_patch_embedsÚflattenÚenable_fusionÚfusion_typer   r�   Úpatch_embed_input_channelsrŒ   ÚprojÚenable_patch_layer_normÚ	LayerNormÚIdentityÚnormr}   Úfusion_modelÚ
mel_conv2d)rt   r€   r±   r¯   r°   rˆ   Úscale_factorr›   s   &&     €r&   r‹   ÚClapAudioPatchEmbed.__init__æ   s9  ø€ Ü‰ÑÔÜ;EÀf×FVÑFVÔX[×;\Ò;\�F×$Ñ$ f×&6Ñ&6Ñ7Ðbh×brÑbrˆä6@À×ARÑARÔTW×6XÒ6XˆV×Ñ × 1Ñ 1Ñ2Ð^d×^oÑ^oð 	ô ;EÀV×EXÑEXÔZ]×:^Ò:^ˆV× Ñ  &×"5Ñ"5Ñ6Ðdj×dwÑdwð 	ð !ŒØ(Ôà" 1�+¨°a­Õ8¸(À1½+ÈÐVWÍÕ:XÐYˆŒØŸ>™>¨!Õ,¨t¯~©~¸aÕ/@Õ@ˆÔà×2Ñ2ˆŒØ#×1Ñ1ˆÔà˜q•M L°¥OÕ3¸Õ9¸JÀq½MÈLÐYZÍOÕ<[Ð`aÕ;aÐbˆà ×.×.Ð.°6×3EÑ3EÈÔ3V‘qÐ\]ˆä—I’IØ×-Ñ-°Õ<Ø×+Ñ+Ø"ØØô
ˆŒ	ð FL×Ec×EcÐEc”B—L’L ×!@Ñ!@ÔAÔik×itÒitÓivˆŒ	Ø××ÐÜ 1°&Ó 9ˆDÔÜ ŸišiØ×1Ñ1Ø×/Ñ/Ø'¨�]¨J°q­M¸AÕ,=Ð>Ø$ Q�¨°a­¸1Õ)<Ð=ØôˆDŽOñ r(   c                ó6  € V P                   '       Ed¹   VR,          pVP                  w  rErgW`P                  ^ ,          8w  g   WpP                  ^,          8w  d;   \        RV RV RV P                  ^ ,           RV P                  ^,           R2	4      hV P	                  V4      pVP                  R4      p\        V4      ^ 8”  Ed   WRR R 3,          P                  4       p	V	P                  w  rErgV	P                  WE,          ^Wg4      p	V P                  V	4      p	V	P                  w  r«rgV	P                  WEW¶V4      p	V	P                  R	4      P                  4       P                  ^4      p	V	P                  R4      p\        P                  P                  P                  V	^ WŒ,
          3R^ 4      p	V P!                  W2,          V	4      W2&   TpM‰VP                  w   r¦pW`P                  ^ ,          8w  g   WpP                  ^,          8w  d;   \        RV RV RV P                  ^ ,           RV P                  ^,           R2	4      hV P	                  V4      pV P                  '       d"   VP                  ^4      P#                  ^^4      pV P%                  V4      pV# )
r   zInput audio size (Ú*z) doesn't match model (z).ºr„   NNÚconstant)r   :r¬   r„   Nr   r   r*   )r¬   r8   é   r„   é   )r¶   r   r±   Ú
ValueErrorr¹   ÚsizerD   r.   r,   r¿   r-   rµ   r<   r   rE   Úpadr¾   Ú	transposer½   )rt   r    Úis_longer_idxÚglobal_hidden_statesr"   r2   r0   r1   Úoutput_widthÚlocal_hidden_statesÚ_ÚfeaturesÚlocal_widths   &&&          r&   r¢   ÚClapAudioPatchEmbed.forward  sŠ  € Ø××Ñà#0°Õ#>Ð ð 7K×6PÑ6PÑ3ˆJ fàŸ™ qÕ)Ô)¨U·m±mÀAÕ6FÔ-FÜ Ø(¨¨°°%°Ð8OÐPT×P]ÑP]Ð^_ÕP`ÐOaÐabÐcg×cpÑcpÐqrÕcsÐbtÐtvÐwóð ð $(§9¡9Ð-AÓ#BÐ Ø/×4Ñ4°RÓ8ˆLÜ�=Ó! AÕ%à&3À2ÀqÈ!Ð4KÕ&L×&WÑ&WÓ&YÐ#Ø:M×:SÑ:SÑ7�
¨&Ø&9×&>Ñ&>¸zÕ?XÐZ[Ð]cÓ&kÐ#à&*§o¡oÐ6IÓ&JÐ#à-@×-FÑ-FÑ*�˜VØ&9×&>Ñ&>¸zÐYaÐkpÓ&qÐ#Ø&9×&AÑ&AÀ/Ó&R×&]Ñ&]Ó&_×&gÑ&gÐhiÓ&jÐ#à1×6Ñ6°rÓ:�Ü&+§h¡h×&9Ñ&9×&=Ñ&=Ø'¨!¨\Õ-GÐ)HÈ*ÐVWó'Ð#ð 7;×6GÑ6GØ(Õ7Ð9Ló7Ð$Ñ3ð 1‰Mà"/×"5Ñ"5ÑˆAˆq˜%ØŸ™ qÕ)Ô)¨U·m±mÀAÕ6FÔ-FÜ Ø(¨¨°°%°Ð8OÐPT×P]ÑP]Ð^_ÕP`ÐOaÐabÐcg×cpÑcpÐqrÕcsÐbtÐtvÐwóð ð !ŸI™I mÓ4ˆMà�<�<ˆ<Ø)×1Ñ1°!Ó4×>Ñ>¸qÀ!ÓDˆMØŸ	™	 -Ó0ˆØÐr(   )
r¶   rµ   r¾   r²   r±   r¿   r½   r³   r°   r¹   rk   r¤   r¦   s   @@r&   r¨   r¨   à   s   ù‡ € ñ÷
(ó (÷T/ô /r(   r¨   c                   óN   a a€ ] tR tRt oV 3R ltRV3R lR lltR tRtVtV ;t	# )ÚClapAudioSelfAttentioniC  c                ó4  <€ \         SV `  4        W#,          ^ 8w  d   \        RV RV R24      hW0n        \	        W#,          4      V n        V P                  V P
                  ,          V n        \        V\        P                  P                  4      '       d   TMWD3V n        \        P                  ! \        P                  ! ^V P                  ^ ,          ,          ^,
          ^V P                  ^,          ,          ^,
          ,          V4      4      V n        \        P"                  ! V P%                  4       4      V n        \        P(                  ! V P                  V P                  VP*                  R7      V n        \        P(                  ! V P                  V P                  VP*                  R7      V n        \        P(                  ! V P                  V P                  VP*                  R7      V n        \        P2                  ! VP4                  4      V n        R# )r¬   úThe hidden size (ú6) is not a multiple of the number of attention heads (Ú)©ÚbiasN)rŠ   r‹   rÈ   Únum_attention_headsrŽ   Úattention_head_sizeÚall_head_sizerl   ÚcollectionsÚabcÚIterabler/   r   Ú	Parameterr<   ÚzerosÚrelative_position_bias_tableÚBufferÚcreate_relative_position_indexÚrelative_position_indexÚLinearÚqkv_biasÚqueryÚkeyÚvalueÚDropoutÚattention_probs_dropout_probÚdropout©rt   r€   ÚdimÚ	num_headsr/   r›   s   &&&&&€r&   r‹   ÚClapAudioSelfAttention.__init__D  s‚  ø€ Ü‰ÑÔØ�?˜aÔÜØ# C 5Ð(^Ð_hÐ^iÐijÐkóð ð $-Ô Ü#& s¥Ó#7ˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔä% k´;·?±?×3KÑ3K×LÒL‰KÐS^ÐRlð 	Ôô -/¯LªLÜ�KŠK˜˜T×-Ñ-¨aÕ0Õ0°1Õ4¸¸T×=MÑ=MÈaÕ=PÕ9PÐSTÕ9TÕUÐW`Óaó-
ˆÔ)ô (*§y¢y°×1TÑ1TÓ1VÓ'WˆÔ$ä—Y’Y˜t×1Ñ1°4×3EÑ3EÈFÏOÉOÔ\ˆŒ
Ü—9’9˜T×/Ñ/°×1CÑ1CÈ&Ï/É/ÔZˆŒÜ—Y’Y˜t×1Ñ1°4×3EÑ3EÈFÏOÉOÔ\ˆŒ
ä—z’z &×"EÑ"EÓFˆŽr(   c          	      óš   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[S[ P                  ,          /# ©r8   r    Úattention_maskNÚoutput_attentionsr:   ©r<   r=   rQ   ÚboolrR   )r>   rS   s   "€r&   r?   Ú#ClapAudioSelfAttention.__annotate__^  sO   ø€ ÷ 1ñ 1á—|‘|ð1ñ ×)Ñ)¨DÕ0ð1ñ   $�;ð	1ñ
 
‰u�|‰|Õ	ñ1r(   c                óè  € VP                   w  rEpWERV P                  3pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p	V P                  V4      P                  V4      P	                  ^^4      p
\        P                  ! W‰P	                  RR4      4      pV\        P                  ! V P                  4      ,          pV P                  V P                  P                  R4      ,          pVP                  V P                  ^ ,          V P                  ^,          ,          V P                  ^ ,          V P                  ^,          ,          R4      pVP                  ^^ ^4      P                  4       pW¼P!                  ^ 4      ,           pVez   VP                   ^ ,          pVP                  WM,          WÐP"                  WU4      pW²P!                  ^4      P!                  ^ 4      ,           pVP                  RV P"                  WU4      p\$        P&                  P)                  VRR7      pV P+                  V4      p\        P                  ! Wê4      pVP                  ^ ^^^4      P                  4       pVP-                  4       RR V P.                  3,           pVP                  V4      pV'       d   Wþ3pV# V3pV# )r„   N©rñ   r*   éþÿÿÿ)r   rÝ   rê   r,   rË   rë   rì   r<   ÚmatmulÚmathÚsqrträ   rç   r/   r-   r.   Ú	unsqueezerÜ   r   rE   Úsoftmaxrï   rÉ   rÞ   )rt   r    rö   r÷   r"   rñ   r2   Úhidden_shapeÚquery_layerÚ	key_layerÚvalue_layerÚattention_scoresÚrelative_position_biasÚ
mask_shapeÚattention_probsÚcontext_layerÚnew_context_layer_shapeÚoutputss   &&&&              r&   r¢   ÚClapAudioSelfAttention.forward^  s�  € ð )6×(;Ñ(;Ñ%ˆ
˜Ø"¨¨T×-EÑ-EÐFˆà—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆØ—H‘H˜]Ó+×0Ñ0°Ó>×HÑHÈÈAÓNˆ	Ø—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆô !Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐà+¬d¯iªi¸×8PÑ8PÓ.QÕQÐà!%×!BÑ!BÀ4×C_ÑC_×CdÑCdÐegÓChÕ!iÐØ!7×!<Ñ!<Ø×Ñ˜QÕ $×"2Ñ"2°1Õ"5Õ5°t×7GÑ7GÈÕ7JÈT×M]ÑM]Ð^_ÕM`Õ7`Ðbdó"
Ðð "8×!?Ñ!?ÀÀ1ÀaÓ!H×!SÑ!SÓ!UÐØ+×.NÑ.NÈqÓ.QÕQÐàÒ%à'×-Ñ-¨aÕ0ˆJØ/×4Ñ4ØÕ(¨*×6NÑ6NÐPSó Ðð  0×2JÑ2JÈ1Ó2M×2WÑ2WÐXYÓ2ZÕZÐØ/×4Ñ4°R¸×9QÑ9QÐSVÓ\Ðô Ÿ-™-×/Ñ/Ð0@ÀbÐ/ÓIˆð Ÿ,™, Ó7ˆäŸš _ÓBˆØ%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ñ*Ð+BÓCˆç6G�=Ð2ˆàˆð O\ÐM]ˆàˆr(   c                óØ  € \         P                  ! V P                  ^ ,          4      p\         P                  ! V P                  ^,          4      p\         P                  ! \         P                  ! W.RR7      4      p\         P
                  ! V^4      pVR,          VR,          ,
          pVP                  ^^^ 4      P                  4       pVR;;,          V P                  ^ ,          ^,
          ,          uu&   VR;;,          V P                  ^,          ^,
          ,          uu&   VR;;,          ^V P                  ^,          ,          ^,
          ,          uu&   VP                  R4      pV# )r¬   Úij)Úindexing)r   r   N)r   Nr   )r   r   r¬   )r   r   r„   r*   )	r<   rC   r/   ÚstackÚmeshgridrµ   r-   r.   Úsum)rt   Úcoords_hÚcoords_wÚcoordsÚcoords_flattenÚrelative_coordsrç   s   &      r&   ræ   Ú5ClapAudioSelfAttention.create_relative_position_index‘  s  € ä—<’< × 0Ñ 0°Õ 3Ó4ˆÜ—<’< × 0Ñ 0°Õ 3Ó4ˆÜ—’œUŸ^š^¨XÐ,@È4ÔPÓQˆÜŸš v¨qÓ1ˆØ(¨Õ4°~ÀjÕ7QÕQˆØ)×1Ñ1°!°Q¸Ó:×EÑEÓGˆØ˜×  D×$4Ñ$4°QÕ$7¸!Õ$;Õ;Ó Ø˜×  D×$4Ñ$4°QÕ$7¸!Õ$;Õ;Ó Ø˜×  A¨×(8Ñ(8¸Õ(;Õ$;¸aÕ$?Õ?Ó Ø"1×"5Ñ"5°bÓ"9ÐØ&Ð&r(   )
rÞ   rÝ   rï   rë   rÜ   rê   rä   rç   rì   r/   ©NF)
rV   rW   rX   rY   r‹   r¢   ræ   r\   r]   r¥   r¦   s   @@r&   rÕ   rÕ   C  s    ù‡ € õG÷41ò 1÷f'ò 'r(   rÕ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapAudioSelfOutputi¡  c                ó¤   <€ \         SV `  4        \        P                  ! W"4      V n        \        P
                  ! VP                  4      V n        R # rk   )rŠ   r‹   r   rè   Údenserí   rî   rï   ©rt   r€   rñ   r›   s   &&&€r&   r‹   ÚClapAudioSelfOutput.__init__¢  s4   ø€ Ü‰ÑÔÜ—Y’Y˜sÓ(ˆŒ
Ü—z’z &×"EÑ"EÓFˆŽr(   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©r8   r    Úinput_tensorr:   r;   )r>   rS   s   "€r&   r?   Ú ClapAudioSelfOutput.__annotate__§  ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r(   c                óJ   € V P                  V4      pV P                  V4      pV# rk   ©r  rï   ©rt   r    r$  s   &&&r&   r¢   ÚClapAudioSelfOutput.forward§  s$   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆàÐr(   r(  ©	rV   rW   rX   rY   r‹   r¢   r\   r]   r¥   r¦   s   @@r&   r  r  ¡  s   ù‡ € õG÷
÷ ð 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# )ÚClapAudioAttentioni¯  c                óf   <€ \         SV `  4        \        WW44      V n        \	        W4      V n        R # rk   )rŠ   r‹   rÕ   rt   r  r¡   rð   s   &&&&&€r&   r‹   ÚClapAudioAttention.__init__°  s(   ø€ Ü‰ÑÔÜ*¨6¸	ÓOˆŒ	Ü)¨&Ó6ˆŽr(   c          	      óš   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[S[ P                  ,          /# rõ   rø   )r>   rS   s   "€r&   r?   ÚClapAudioAttention.__annotate__µ  sO   ø€ ÷ 	ñ 	á—|‘|ð	ñ ×)Ñ)¨DÕ0ð	ñ   $�;ð		ñ
 
‰u�|‰|Õ	ñ	r(   c                ó~   € V P                  WV4      pV P                  V^ ,          V4      pV3VR,          ,           pV# ©r¬   rÄ   ©rt   r¡   )rt   r    rö   r÷   Úself_outputsÚattention_outputr  s   &&&&   r&   r¢   ÚClapAudioAttention.forwardµ  sA   € ð —y‘y Ð@QÓRˆØŸ;™; |°A¥¸ÓFÐØ#Ð%¨°RÕ(8Õ8ˆØˆr(   ©r¡   rt   r  r+  r¦   s   @@r&   r-  r-  ¯  s   ù‡ € õ7÷
	÷ 	ò 	r(   r-  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapAudioIntermediateiÂ  c                ó.  <€ \         SV `  4        \        P                  ! V\	        VP
                  V,          4      4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # rk   )rŠ   r‹   r   rè   rŽ   Ú	mlp_ratior  rl   Ú
hidden_actÚstrr   Úintermediate_act_fnr   s   &&&€r&   r‹   ÚClapAudioIntermediate.__init__Ã  sd   ø€ Ü‰ÑÔÜ—Y’Y˜s¤C¨×(8Ñ(8¸3Õ(>Ó$?Ó@ˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r8   r    r:   r;   )r>   rS   s   "€r&   r?   Ú"ClapAudioIntermediate.__annotate__Ë  ó#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r(   c                óJ   € V P                  V4      pV P                  V4      pV# rk   ©r  r?  ©rt   r    s   &&r&   r¢   ÚClapAudioIntermediate.forwardË  ó&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr(   rF  r+  r¦   s   @@r&   r:  r:  Â  ó   ù‡ € õ9÷÷ ð r(   r:  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapAudioOutputiÒ  c                óÚ   <€ \         SV `  4        \        P                  ! \	        VP
                  V,          4      V4      V n        \        P                  ! VP                  4      V n	        R # rk   )
rŠ   r‹   r   rè   rŽ   r<  r  rí   Úhidden_dropout_probrï   r   s   &&&€r&   r‹   ÚClapAudioOutput.__init__Ó  sF   ø€ Ü‰ÑÔÜ—Y’Yœs 6×#3Ñ#3°cÕ#9Ó:¸CÓ@ˆŒ
Ü—z’z &×"<Ñ"<Ó=ˆŽr(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rB  r;   )r>   rS   s   "€r&   r?   ÚClapAudioOutput.__annotate__Ø  rD  r(   c                óJ   € V P                  V4      pV P                  V4      pV# rk   r(  rG  s   &&r&   r¢   ÚClapAudioOutput.forwardØ  s$   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØÐr(   r(  r+  r¦   s   @@r&   rL  rL  Ò  s   ù‡ € õ>÷
÷ ð r(   rL  c                   ój   a a€ ] tR tRt oRtR
V3R lV 3R llltV3R lR ltV3R lR ltR	tVt	V ;t
# )ÚClapDropPathiß  zÃStochastic depth (DropPath) per sample, for residual blocks.

Identity when ``drop_prob`` is 0 or outside training. See `Deep Networks with Stochastic Depth
<https://arxiv.org/abs/1603.09382>`_.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r8   Ú	drop_probr:   N)Úfloat)r>   rS   s   "€r&   r?   ÚClapDropPath.__annotate__æ  s   ø€ ÷ #ñ #¡%ð #°$ñ #r(   c                ó0   <€ \         SV `  4        Wn        R # rk   )rŠ   r‹   rW  )rt   rW  r›   s   &&€r&   r‹   ÚClapDropPath.__init__æ  s   ø€ Ü‰ÑÔØ"Žr(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rB  r;   )r>   rS   s   "€r&   r?   rY  ê  s#   ø€ ÷ <ñ <¡U§\¡\ð <±e·l±lñ <r(   c                ó˜  € V P                   R 8X  g   V P                  '       g   V# ^V P                   ,
          pVP                  ^ ,          3RVP                  ^,
          ,          ,           p\        P
                  ! W1P                  VP                  R7      p\        P                  ! WB,           4      pVP                  V4      V,          # )ç        ©ÚdtyperB   )r„   )
rW  Útrainingr   Úndimr<   Úrandr`  rB   ÚfloorÚdiv)rt   r    Ú	keep_probr   Úrandom_tensors   &&   r&   r¢   ÚClapDropPath.forwardê  s•   € Ø�>‰>˜SÔ ¨¯¯¨Ø Ð Ø˜Ÿ™Õ&ˆ	Ø×$Ñ$ QÕ'Ð)¨D°M×4FÑ4FÈÕ4JÕ,KÕKˆÜŸ
š
 5×0CÑ0CÈM×L`ÑL`ÔaˆÜŸš MÕ$=Ó>ˆØ× Ñ  Ó+¨mÕ;Ð;r(   c                ó    <€ V ^8„  d   QhRS[ /# rg   )r>  )r>   rS   s   "€r&   r?   rY  ó  s   ø€ ÷ %ñ %™Cñ %r(   c                ó    € R V P                    2# )zp=©rW  rs   s   &r&   Ú
extra_reprÚClapDropPath.extra_repró  s   € Ø�D—N‘NÐ#Ð$Ð$r(   rk  ©r^  )rV   rW   rX   rY   rZ   r‹   r¢   rl  r\   r]   r¥   r¦   s   @@r&   rU  rU  ß  s-   ù‡ € ñ÷#õ #÷<ð <÷%÷ %ð %r(   rU  c                   ó^   a a€ ] tR tRt oR	V 3R lltR tR tR tR
V3R lR lltRt	Vt
V ;t# )ÚClapAudioLayeriø  c                óè  <€ \         SV `  4        VP                  V n        W`n        VP                  V n        W0n        \        P                  ! W!P                  R 7      V n	        \        WW@P                  R7      V n        VR8”  d   \        V4      M\        P                  ! 4       V n        \        P                  ! W!P                  R 7      V n        \!        W4      V n        \%        W4      V n        R# )©Úeps)r/   r^  N)rŠ   r‹   Úchunk_size_feed_forwardÚ
shift_sizer/   Úinput_resolutionr   r»   Úlayer_norm_epsÚlayernorm_beforer-  Ú	attentionrU  r¼   Ú	drop_pathÚlayernorm_afterr:  ÚintermediaterL  r¡   )rt   r€   rñ   rv  rò   Údrop_path_rateru  r›   s   &&&&&&&€r&   r‹   ÚClapAudioLayer.__init__ù  s¯   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$Ø$ŒØ!×-Ñ-ˆÔØ 0ÔÜ "§¢¨S×6KÑ6KÔ LˆÔÜ+¨F¸×P`ÑP`ÔaˆŒØ9GÈ#Ô9Mœ nÔ5ÔSU×S^ÒS^ÓS`ˆŒÜ!Ÿ|š|¨C×5JÑ5JÔKˆÔÜ1°&Ó>ˆÔÜ% fÓ2ˆŽr(   c                ó  € \        V4      V P                  8:  dq   \        ^ 4      V n        \        P
                  P                  4       '       d+   \        P                   ! \        P                  ! V4      4      M
\        V4      V n        R# R# )r¬   N)Úminr/   r   ru  r<   ÚjitÚ
is_tracingÚtensor)rt   rv  s   &&r&   Úset_shift_and_window_sizeÚ(ClapAudioLayer.set_shift_and_window_size  s_   € ÜÐÓ  D×$4Ñ$4Ô4ä'¨›lˆDŒOä=B¿Y¹Y×=QÑ=Q×=SÒ=S”—	’	œ%Ÿ,š,Ð'7Ó8Ô9ÔY\Ð]mÓYnð Öñ 5r(   c                ó0  € V P                   ^ 8:  d   R# \        P                  ! WR7      p\        P                  ! W$R7      pWQV P                  ,
          8¬  P	                  4       WQV P                   ,
          8¬  P	                  4       ,           pWbV P                  ,
          8¬  P	                  4       WbV P                   ,
          8¬  P	                  4       ,           pVR,          ^,          VR,          ,           P                  V4      p	\        W�P                  4      p
V
P                  RV P                  V P                  ,          4      p
V
P                  ^4      V
P                  ^4      ,
          pVP                  V^ 8g  R4      P                  V^ 8H  R4      pV# )um  Build the cyclic-shift attention mask for shifted-window MSA; returns None when shift_size is 0.

Each (h, w) position belongs to one of 9 cyclic-shift regions (3 along each axis), encoded
as ``h_region * 3 + w_region``. Regions per axis:
- 0: indices ``[0, axis - window_size)``
- 1: indices ``[axis - window_size, axis - shift_size)``
- 2: indices ``[axis - shift_size, axis)``
Implementation note: a single arithmetic pass on `torch.arange` (two comparisons +
broadcast add) replaces the original 9-iteration nested-Python-loop slice-assignment â€”
fully vectorised, no per-cell host-side scatter, no GPUâ†”host sync.
NrA   r^  )Nr   NN)NNr   Nr*   g      YÀ)
ru  r<   rC   r/   ÚlongÚtor4   r,   r  Úmasked_fill)rt   r0   r1   r`  rB   Úh_idxÚw_idxÚh_regionÚw_regionÚimg_maskÚmask_windowsÚ	attn_masks   &&&&&       r&   Úget_attn_maskÚClapAudioLayer.get_attn_mask  sJ  € ð �?‰?˜aÔÙÜ—’˜VÔ3ˆÜ—’˜UÔ2ˆØ d×&6Ñ&6Õ6Ñ6×<Ñ<Ó>À%ÐTX×TcÑTcÕKcÑBc×AiÑAiÓAkÕkˆØ T×%5Ñ%5Õ5Ñ5×;Ñ;Ó=ÀÐRV×RaÑRaÕJaÑAa×@gÑ@gÓ@iÕiˆØÐ0Õ1°AÕ5¸ÐATÕ8UÕU×YÑYÐZ_Ó`ˆÜ'¨×2BÑ2BÓCˆØ#×(Ñ(¨¨T×-=Ñ-=À×@PÑ@PÕ-PÓQˆØ ×*Ñ*¨1Ó-°×0FÑ0FÀqÓ0IÕIˆ	Ø×)Ñ)¨)°q©.¸&ÓA×MÑMÈiÐ[\ÉnÐ^aÓbˆ	ØÐr(   c                ó&  € V P                   W0P                   ,          ,
          V P                   ,          pV P                   W P                   ,          ,
          V P                   ,          p^ ^ ^ V^ V3p\        P                  P                  W4      pW3# ©r¬   )r/   r   rE   rÊ   )rt   r    r0   r1   Ú	pad_rightÚ
pad_bottomÚ
pad_valuess   &&&&   r&   Ú	maybe_padÚClapAudioLayer.maybe_pad'  sy   € Ø×%Ñ%¨×0@Ñ0@Õ(@Õ@ÀD×DTÑDTÕTˆ	Ø×&Ñ&¨×2BÑ2BÕ)BÕBÀd×FVÑFVÕVˆ
Ø˜˜A˜y¨!¨ZÐ8ˆ
ÜŸ™×)Ñ)¨-ÓDˆØÐ(Ð(r(   c                ó¼   <€ V ^8„  d   QhRS[ P                  RS[S[S[3,          RS[R,          RS[R,          RS[S[ P                  S[ P                  3,          /# ©r8   r    Úinput_dimensionsr÷   NÚalways_partitionr:   ©r<   r=   rR   rŽ   rù   )r>   rS   s   "€r&   r?   ÚClapAudioLayer.__annotate__.  sc   ø€ ÷ >ñ >á—|‘|ð>ñ  ¡¡S �/ð>ñ   $�;ð	>ñ
  �+ð>ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ>r(   c                ó&  € V'       g   V P                  V4       M Vw  rVVP                  4       w  rxp	Tp
V P                  V4      pVP                  WuWi4      pV P	                  WV4      w  rVP
                  w  rŒrØV P                  ^ 8”  d2   \        P                  ! WP                  ) V P                  ) 3RR7      pMTp\        WàP                  4      pVP                  RV P                  V P                  ,          V	4      pV P                  WÍVP                  VP                  R7      pV P                  VVVR7      pV^ ,          pVP                  RV P                  V P                  V	4      p\        VV P                  WÍ4      pV P                  ^ 8”  d1   \        P                  ! VV P                  V P                  3RR7      pMTpV^,          ^ 8„  ;'       g    V^,          ^ 8„  pV'       d    VRRV1RV1R3,          P!                  4       pVP                  WuV,          V	4      pW P#                  V4      ,           pV P%                  V4      pV P'                  V4      pWP)                  V4      ,           pV'       d   VV^,          3pV# V3pV# )r¬   )ÚshiftsÚdimsr_  )r÷   r   N)r„   r8   r*   )r„  rÉ   rx  r,   r˜  r   ru  r<   Úrollr4   r/   r‘  r`  rB   ry  r6   r.   rz  r{  r|  r¡   )rt   r    rœ  r÷   r�  r0   r1   r"   rÐ   r˜   Úshortcutr—  Ú
height_padÚ	width_padÚshifted_hidden_statesÚhidden_states_windowsr�  Úattention_outputsr6  Úattention_windowsÚshifted_windowsÚ
was_paddedÚlayer_outputÚlayer_outputss   &&&&&                   r&   r¢   ÚClapAudioLayer.forward.  s~  € ÷  Ø×*Ñ*Ð+;Õ<àØ(‰ˆØ"/×"4Ñ"4Ó"6Ñˆ
�xØ ˆà×-Ñ-¨mÓ<ˆà%×*Ñ*¨:¸uÓOˆð %)§N¡N°=È%Ó$PÑ!ˆà&3×&9Ñ&9Ñ#ˆ�yà�?‰?˜QÔÜ$)§J¢J¨}ÇÁÐFVÐY]×YhÑYhÐXhÐEiÐpvÔ$wÑ!à$1Ð!ô !1Ð1F×HXÑHXÓ YÐØ 5× :Ñ :¸2¸t×?OÑ?OÐRV×RbÑRbÕ?bÐdlÓ mÐØ×&Ñ&Ø¨×)<Ñ)<ÐEZ×EaÑEað 'ó 
ˆ	ð !ŸN™NÐ+@À)Ð_p˜NÓqÐà,¨QÕ/Ðà,×1Ñ1°"°d×6FÑ6FÈ×HXÑHXÐZbÓcÐÜ(Ð):¸D×<LÑ<LÈjÓdˆð �?‰?˜QÔÜ %§
¢
¨?ÀDÇOÁOÐUY×UdÑUdÐCeÐlrÔ sÑà /Ðà •] QÑ&×;Ð;¨*°Q­-¸!Ñ*;ˆ
ßØ 1°!°W°f°W¸f¸u¸fÀaÐ2GÕ H× SÑ SÓ UÐà-×2Ñ2°:È½~ÈxÓXÐà §>¡>Ð2CÓ#DÕDˆà×+Ñ+¨MÓ:ˆØ×(Ñ(¨Ó6ˆØ$§{¡{°<Ó'@Õ@ˆç@Q˜Ð'8¸Õ';Ð<ˆØÐð YeÐWfˆØÐr(   )
ry  rt  rz  rv  r|  r{  rx  r¡   ru  r/   )r^  r¬   ©FF)rV   rW   rX   rY   r‹   r„  r‘  r˜  r¢   r\   r]   r¥   r¦   s   @@r&   rp  rp  ø  s(   ù‡ € ÷3òòò2)÷>÷ >ò >r(   rp  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# )ÚClapAudioStageip  c                ó\  <€ \         S	V `  4        Wn        W n        \        P
                  ! \        V4       Uu. uF;  p\        TTTTWh,          V^,          ^ 8X  d   ^ MVP                  ^,          R7      NK=  	  up4      V n	        Ve   V! VR7      V n
        MRV n
        RV n        R# u upi )r8   )r€   rñ   rv  rò   r}  ru  Nrü   F)rŠ   r‹   r€   rñ   r   Ú
ModuleListÚrangerp  r/   ÚblocksÚ
downsampleÚpointing)
rt   r€   rñ   rv  Údepthrò   rz  r·  Úir›   s
   &&&&&&&& €r&   r‹   ÚClapAudioStage.__init__q  s¤   ø€ Ü‰ÑÔØŒØŒÜ—m’mô ˜uœó
ñ &�Aô Ø!ØØ%5Ø'Ø#,¥<Ø%&¨¥U¨a¤Z™q°f×6HÑ6HÈAÕ6M÷ñ &ñ
ó
ˆŒð Ò!Ù(¨SÔ1ˆD�Oà"ˆDŒOàˆŽùò'
s   ¹AB)c                ó¢   <€ V ^8„  d   QhRS[ P                  RS[S[S[3,          RS[R,          RS[R,          RS[S[ P                  ,          /# r›  rž  )r>   rS   s   "€r&   r?   ÚClapAudioStage.__annotate__‹  sZ   ø€ ÷ ñ á—|‘|ðñ  ¡¡S �/ðñ   $�;ð	ñ
  �+ðñ 
‰u�|‰|Õ	ñr(   c                ó8  € Vw  rV\        V P                  4       F  w  rxV! WW44      p	V	^ ,          pK  	  Tp
V P                  e6   V^,           ^,          V^,           ^,          rËWVW¼3pV P                  W¢4      pMWVWV3pWV3pV'       d   VX	R,          ,          pV# r3  )Ú	enumerater¶  r·  )rt   r    rœ  r÷   r�  r0   r1   rº  Úlayer_moduler®  Ú!hidden_states_before_downsamplingÚheight_downsampledÚwidth_downsampledÚoutput_dimensionsÚstage_outputss   &&&&&          r&   r¢   ÚClapAudioStage.forward‹  s®   € ð )‰ˆÜ(¨¯©Ö5‰OˆAÙ(¨ÐJ[ÓnˆMà)¨!Õ,ŠMñ  6ð
 -:Ð)Ø�?‰?Ò&Ø5;¸aµZÀAÕ4EÈÐPQÍ	ÐVWÕGWÐ 1Ø!'Ð0BÐ VÐØ ŸO™OÐ,MÓ`‰Mà!'°Ð >Ðà&ÐK\Ð]ˆçØ˜]¨2Õ.Õ.ˆMØÐr(   )r¶  r€   rñ   r·  r¸  r°  r+  r¦   s   @@r&   r²  r²  p  s   ù‡ € õ÷4÷ ò r(   r²  c                   óf   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltV3R lR ltR	tVt	V ;t
# )
ÚClapAudioPatchMergingi¨  zP
Patch Merging Layer.

Args:
    dim (`int`):
        Number of input channels.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r8   rñ   r:   N)rŽ   )r>   rS   s   "€r&   r?   Ú"ClapAudioPatchMerging.__annotate__±  s   ø€ ÷ *ñ *™Cð * Dñ *r(   c                óÀ   <€ \         SV `  4        \        P                  ! ^V,          ^V,          RR7      V n        \        P
                  ! ^V,          4      V n        R# )rÇ   FrÚ   N)rŠ   r‹   r   rè   Ú	reductionr»   r½   )rt   rñ   r›   s   &&€r&   r‹   ÚClapAudioPatchMerging.__init__±  s>   ø€ Ü‰ÑÔÜŸš 1 s¥7¨A°­G¸%Ô@ˆŒÜ—L’L  S¥Ó)ˆŽ	r(   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r8   Úinput_featurer0   r1   r:   )r<   r=   rŽ   )r>   rS   s   "€r&   r?   rÊ  ¶  s4   ø€ ÷ ñ ¡u§|¡|ð ¹Sð Éð ÑQV×Q]ÑQ]ñ r(   c           
     ó¦   € V^,          ^8X  g   V^,          ^8X  d5   \         P                  P                  V^ ^ ^ V^,          ^ V^,          34      pV# )zPPad input feature map to be divisible by 2 in both spatial dimensions if needed.)r   rE   rÊ   )rt   rÏ  r0   r1   s   &&&&r&   r˜  ÚClapAudioPatchMerging.maybe_pad¶  sL   € à�Q�J˜!ŒO ¨¥¨a¤ÜŸM™M×-Ñ-¨m¸aÀÀAÀuÈqÅyÐRSÐU[Ð^_ÕU_Ð=`ÓaˆMØÐr(   c                ój   <€ V ^8„  d   QhRS[ P                  RS[S[S[3,          RS[ P                  /# )r8   rÏ  rœ  r:   )r<   r=   rR   rŽ   )r>   rS   s   "€r&   r?   rÊ  ¼  s6   ø€ ÷ ñ ¡U§\¡\ð ÁUÉ3ÑPSÈ8Å_ð ÑY^×YeÑYeñ r(   c                ó¢  € Vw  r4VP                   w  rVpVP                  WSWG4      pV P                  WV4      p\        P                  ! \        ^4       UU	u. uF'  p\        ^4       F  q‘RV	R^1VR^1R3,          NK  	  K)  	  up	pRR7      pVP                  VR^V,          4      pV P                  V4      pV P                  V4      pV# u up	pi )r8   r   Nrü   r*   )r   r,   r˜  r<   Úcatrµ  r½   rÌ  )
rt   rÏ  rœ  r0   r1   r"   rñ   r2   ÚcolÚrows
   &&&       r&   r¢   ÚClapAudioPatchMerging.forward¼  sÑ   € Ø(‰ˆà(5×(;Ñ(;Ñ%ˆ
˜à%×*Ñ*¨:¸uÓSˆàŸ™ }¸eÓDˆäŸ	š	Ü<AÀ!¼HÔY¹H°SÔPUÐVWÖPXÈ˜1˜c˜f 1˜f c f¨1 f¨aÐ/×0Ð0ÑPXÑ0¹HÒYÐ_aô
ˆð &×*Ñ*¨:°r¸1¸|Õ;KÓLˆàŸ	™	 -Ó0ˆØŸ™ }Ó5ˆàÐùó Zs   Á-C
)r½   rÌ  )rV   rW   rX   rY   rZ   r‹   r˜  r¢   r\   r]   r¥   r¦   s   @@r&   rÈ  rÈ  ¨  s-   ù‡ € ñ÷*ó *÷
ð ÷÷ ð r(   rÈ  c                   óX   a a€ ] tR tRt oV 3R ltR t]RV3R lR ll4       tRtVt	V ;t
# )ÚClapAudioEncoderiÐ  c                ó2  <€ \         SV `  4        \        VP                  4      V n        Wn        \        V4      V n        VP                  V n        V P                  P                  V n	        VP                  V n
        VP                  VP                  ,          V n        \        VP                  ^V P                  ^,
          ,          ,          4      V n        \         P"                  ! ^ VP$                  \'        VP                  4      RR7       Uu. uF  q"P)                  4       NK  	  ppV P                  P*                  p\-        V P                  4       Uu. uF0  qT^ ,          ^V,          ,          V^,          ^V,          ,          3NK2  	  upV n        \0        P2                  ! \-        V P                  4       Uu. uF¼  p\5        T\        VP                  ^V,          ,          4      V P.                  V,          VP                  V,          VP6                  V,          V\'        VP                  RV 4      \'        VP                  RV^,            4       W`P                  ^,
          8  d   \8        MRR7      NK¾  	  up4      V n        RV n        \0        P>                  ! VP                  4      V n         \0        PB                  ! V P                  4      V n"        VP                  V n        \0        PF                  ! ^4      V n$        R# u upi u upi u upi )r8   ÚcpurA   N)r€   rñ   rv  r¹  rò   rz  r·  F)%rŠ   r‹   rD   ÚdepthsÚ
num_layersr€   r¨   Úpatch_embedr¶   r°   r®   Únum_mel_binsÚ
freq_ratiorŽ   rŒ   Únum_featuresr<   Úlinspacer}  r  Úitemr²   rµ  Úinput_resolutionsr   r´  r²  rÜ   rÈ  ÚlayersÚgradient_checkpointingr‘   Ú
batch_normr»   r½   ÚAdaptiveAvgPool1dÚavgpool)rt   r€   Úxr}  r²   rº  Úi_layerr›   s   &&     €r&   r‹   ÚClapAudioEncoder.__init__Ñ  s_  ø€ Ü‰ÑÔÜ˜fŸm™mÓ,ˆŒàŒÜ.¨vÓ6ˆÔØ#×1Ñ1ˆÔØ ×,Ñ,×9Ñ9ˆÔØ×)Ñ)ˆŒØ ×*Ñ*¨f×.AÑ.AÕAˆŒä × ?Ñ ?À!ÈÏÉÐZ[ÕH[ÕB\Õ \Ó]ˆÔä,1¯NªN¸1¸f×>SÑ>SÔUXÐY_×YfÑYfÓUgÐpuÕ,vÓwÑ,v qŸ&™&ž(Ñ,vˆÐwà×$Ñ$×.Ñ.ˆ	Ü\aÐbf×bqÑbqÔ\rÓ!sÑ\rÐWX¨Q¥<°A°qµDÕ#9¸9ÀQ½<ÈAÈqÍDÕ;QÓ"RÑ\rÑ!sˆÔä—m’mô  % T§_¡_Ô5óñ  6�Gô Ø!Ü˜F×;Ñ;¸aÀ½jÕHÓIØ%)×%;Ñ%;¸GÕ%DØ Ÿ-™-¨Õ0Ø$×8Ñ8¸ÕAØ,¬S°·±¸xÀÐ1HÓ-IÌCÐPV×P]ÑP]Ð^kÐ`gÐjkÕ`kÐPlÓLmÐnØ9@Ç?Á?ÐUVÕCVÔ9VÕ4Ð]a÷ñ  6ñó
ˆŒð ',ˆÔ#äŸ.š.¨×)<Ñ)<Ó=ˆŒÜ—L’L ×!2Ñ!2Ó3ˆŒ	Ø—m‘mˆŒÜ×+Ò+¨AÓ.ˆŽùò3 xùò "tùòs   ÄL
Å6LÆ=CLc                ó²  € VP                   w   r#p\        V P                  V P                  ,          4      pV P                  V P                  ,          pW58”  g   WF8”  d   \	        R4      hW58  d%   \
        P                  P                  WV3RRR7      pWF8  d%   \
        P                  P                  WV3RRR7      pVP                   w  rxršVP                  WxV P                  ,          W�P                  ,          V
4      pVP                  ^ ^^^4      P                  4       pVP                  WxW P                  ,          W�P                  ,          4      pV# )zÚ
The input is 4 normalized log mel spectrograms. It is reshape to the common shape of images. Each channel
should represent 1 of the 4 crops of the spectrogram. For more details, refer to the [`ClapFeatureExtractor`].
z@the wav size should be less than or equal to the swin input sizeÚbicubicT)ÚmodeÚalign_corners)r   rŽ   r®   rà  rÈ   r   rE   r'   r   r-   r.   )rt   Únormalized_input_featuresrÐ   r#   Úfreq_lengthÚ
spec_widthÚspec_heightÚbatchr˜   ÚtimeÚfreqs   &&         r&   Úreshape_mel2imgÚ ClapAudioEncoder.reshape_mel2imgù  sD  € ð
 *C×)HÑ)HÑ&ˆˆ1˜;ä˜Ÿ™¨$¯/©/Õ9Ó:ˆ
Ø—n‘n¨¯©Õ7ˆàÔ# {Ô'@ÜÐ_Ó`Ð`ð Ô#Ü(*¯©×(AÑ(AØ)¸Ð+DÈ9Ðdhð )Bó )Ð%ð Ô$Ü(*¯©×(AÑ(AØ)¸Ð+EÈIÐeið )Bó )Ð%ð '@×&EÑ&EÑ#ˆ˜ð %>×$EÑ$EØ˜dŸo™oÕ-¨t·±Õ/FÈó%
Ð!ð %>×$EÑ$EÀaÈÈAÈqÓ$Q×$\Ñ$\Ó$^Ð!Ø$=×$EÑ$EØ˜T§O¡OÕ3°T¿_¹_Õ5Ló%
Ð!ð )Ð(r(   c                ó¼   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )	r8   Ú	is_longerNr÷   Úoutput_hidden_statesÚ(output_hidden_states_before_downsamplingr�  Úreturn_dictr:   )r<   rQ   rù   rR   r`   )r>   rS   s   "€r&   r?   ÚClapAudioEncoder.__annotate__  s�   ø€ ÷ h
ñ h
ñ ×$Ñ$ tÕ+ðh
ñ   $�;ð	h
ñ
 # T�kðh
ñ 37¸µ+ðh
ñ  �+ðh
ñ ˜D•[ðh
ñ 
Ñ%Õ	%ñh
r(   c                óâ  € T;'       g    V P                   P                  pT;'       g    V P                   P                  pVP                  ^^4      pV P	                  V4      pVP                  ^^4      pRp	V P
                  '       d<   VP                  VP                  4      p
\        P                  ! V
^8H  4      ^ ,          p	V P                  V4      pVP                  ^,          pV P                  W¹4      pV'       d   RMRpV'       d   RMRpV'       d   RMRpV P                  ^ ,          pV'       dN   VP                  w  pppVP                  ! V.VOVN5!  pVP                  ^ ^^^4      pWÛ3,          pVV3,          p\!        V P"                  4       EF8  w  ppV P                  V,          pV! VVW64      pV^ ,          pV^,          pV^,          pVR,          VR,          3pV'       dh   V'       d`   VP                  w  pppVP                  ! V.V^ ,          V^,          3OVN5!  pVP                  ^ ^^^4      pVV3,          pVV3,          pM]V'       dV   V'       gN   VP                  w  pppVP                  ! V.VOVN5!  pVP                  ^ ^^^4      pWÛ3,          pVV3,          pV'       g   EK(  VVR,          ,          pEK;  	  V P%                  V4      pVP                  w  pppV^\'        V P(                  4      ^,
          ,          ,          V P*                  ^ ,          ,          pV^\'        V P(                  4      ^,
          ,          ,          V P*                  ^,          ,          pVP                  ^ ^^4      P-                  4       P/                  VVVV4      pVP                  w  ppppVV P0                  ,          p VP/                  VVVV ,          V V4      pVP                  ^ ^^^^4      P-                  4       P/                  VVV R4      pV P3                  \        P4                  ! V^4      4      p!\        P4                  ! V!^4      p!\7        VV!VVR7      # )r„   N:rÆ   NN)rN   Úpooler_outputr    rO   rU   rý   r*   )r€   rü  r÷   rË   rç  r¶   rˆ  rB   r<   Úwhererø  r   rÞ  rä  r,   r-   r¿  rå  r½   rD   rÜ  r°   r.   r   rà  ré  rµ   r   )"rt   Úinput_featuresrû  r÷   rü  rý  r�  rþ  rñ  Úis_longer_list_idxÚis_longer_listr    Ú
frames_numÚall_hidden_statesÚall_reshaped_hidden_statesÚall_self_attentionsrœ  r"   rÐ   Úhidden_sizeÚreshaped_hidden_staterº  rÀ  r®  rÁ  rÄ  rN   Ú
n_channelsÚ
freq_shapeÚtemporal_shapeÚn_frequenciesÚn_tempÚ
c_freq_binÚlatent_outputs"   &&&&&&&&                          r&   r¢   ÚClapAudioEncoder.forward  sW  € ð  4×WÐW°t·{±{×7WÑ7WÐØ-×NÐN°·±×1NÑ1NÐà'×1Ñ1°!°QÓ7ˆØ$(§O¡O°NÓ$CÐ!Ø$=×$GÑ$GÈÈ1Ó$MÐ!à!ÐØ××ÐØ&Ÿ\™\¨.×*?Ñ*?Ó@ˆNÜ!&§¢¨^¸qÑ-@Ó!AÀ!Õ!DÐà×,Ñ,Ð-FÓGˆà"×(Ñ(¨Õ+ˆ
à×(Ñ(¨ÓKˆç"6™B¸DÐß+?¡RÀTÐ"ß$5™b¸4Ðà×1Ñ1°!Õ4ÐçØ)6×)<Ñ)<Ñ&ˆJ˜˜;à$1×$6Ò$6°zÐ$bÐDTÐ$bÐVaÓ$bÐ!Ø$9×$AÑ$AÀ!ÀQÈÈ1Ó$MÐ!ØÐ!1Õ1ÐØ&Ð+@Ð*BÕBÐ&ä(¨¯©×5‰OˆAˆ|Ø#×5Ñ5°aÕ8Ðá(¨Ð8HÐJ[ÓnˆMà)¨!Õ,ˆMà0=¸aÕ0@Ð-Ø -¨aÕ 0Ðà 1°"Õ 5Ð7HÈÕ7LÐMÐç#×(PØ-N×-TÑ-TÑ*�
˜A˜{ð )J×(NÒ(NØð)Ø"3°AÕ"6Ð8IÈ!Õ8LÐ!Mð)ØOZó)Ð%ð )>×(EÑ(EÀaÈÈAÈqÓ(QÐ%Ø!Ð&GÐ%IÕIÐ!Ø*Ð/DÐ.FÕFÑ*ß%×.VØ-:×-@Ñ-@Ñ*�
˜A˜{à(5×(:Ò(:¸:Ð(fÐHXÐ(fÐZeÓ(fÐ%Ø(=×(EÑ(EÀaÈÈAÈqÓ(QÐ%Ø!Ð%5Õ5Ð!Ø*Ð/DÐ.FÕFÐ*ç Ò Ø# }°RÕ'8Õ8Ó#ñ?  6ðB !ŸI™I mÓ4Ðà$5×$;Ñ$;Ñ!ˆ
�A�zà A¬#¨d¯k©kÓ*:¸QÕ*>Õ$?Õ@ÀD×DUÑDUÐVWÕDXÕXˆ
Ø#¨¬c°$·+±+Ó.>ÀÕ.BÕ(CÕDÈ×HYÑHYÐZ[ÕH\Õ\ˆð ×%Ñ% a¨¨AÓ.×9Ñ9Ó;×CÑCÀJÐPZÐ\fÐhvÓwð 	ð 9J×8OÑ8OÑ5ˆ
�J ¨và" d§o¡oÕ5ˆ
Ø-×5Ñ5Ø˜
 M°ZÕ$?ÀÈVó
Ðð ×%Ñ% a¨¨A¨q°!Ó4×?Ñ?ÓA×IÑIÈ*ÐV`ÐblÐnpÓqð 	ð Ÿ™¤U§]¢]Ð3DÀaÓ%HÓIˆÜŸš m°QÓ7ˆä)Ø/Ø'Ø4Ø*ô	
ð 	
r(   )ré  rç  r€   rÜ  r¶   rà  ræ  rä  rå  r½   rá  rÝ  rÞ  r°   r®   )NFFFFT)rV   rW   rX   rY   r‹   rø  r   r¢   r\   r]   r¥   r¦   s   @@r&   rÙ  rÙ  Ð  s3   ù‡ € õ&/òP")ðH ÷h
ñ h
ó ÷h
ð h
r(   rÙ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚClapProjectionLayeri‰  c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r   )r   r   )r>   rS   s   "€r&   r?   Ú ClapProjectionLayer.__annotate__Š  s   ø€ ÷ Añ A™±Õ?ñ Ar(   c                ó  <€ \         SV `  4        Wn        VP                  pVP                  p\
        P                  ! W#4      V n        \        VP                  ,          V n
        \
        P                  ! W34      V n        R # rk   )rŠ   r‹   r€   r
  Úprojection_dimr   rè   Úlinear1r   Úprojection_hidden_actÚ
activationÚlinear2)rt   r€   r
  r  r›   s   &&  €r&   r‹   ÚClapProjectionLayer.__init__Š  s[   ø€ Ü‰ÑÔØŒØ×(Ñ(ˆØ×.Ñ.ˆä—y’y Ó=ˆŒÜ  ×!=Ñ!=Õ>ˆŒÜ—y’y Ó@ˆŽr(   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rk   )r  r  r  rG  s   &&r&   r¢   ÚClapProjectionLayer.forward”  s2   € ØŸ™ ]Ó3ˆØŸ™¨Ó6ˆØŸ™ ]Ó3ˆØÐr(   )r  r€   r  r  r+  r¦   s   @@r&   r  r  ‰  s   ù‡ € ÷Aó A÷ò r(   r  c                   óp   a a€ ] tR tRt oRtV 3R ltR	V3R lR llt]R 4       t]R
R l4       t	Rt
VtV ;t# )ÚClapTextEmbeddingsiœ  zGConstruct the embeddings from word, position and token_type embeddings.c                óˆ  <€ \         SV `  4        \        P                  ! VP                  VP
                  VP                  R 7      V n        \        P                  ! VP                  VP
                  4      V n	        \        P                  ! VP
                  VP                  R7      V n
        \        P                  ! VP                  4      V n        \        P                  ! \         P"                  ! VP$                  4      P'                  R4      RR7      V n        \        P                  ! \         P*                  ! V P(                  P-                  4       \         P.                  R7      RR7      V n        VP                  V n        \        P                  ! VP$                  VP
                  V P2                  R 7      V n        R# ))Úpadding_idxrr  T)Ú
persistent)r`  N©r„   r*   )rŠ   r‹   r   Ú	EmbeddingÚ
vocab_sizer
  Úpad_token_idÚword_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsr»   rw  rí   rN  rï   rå   r<   rC   Úmax_position_embeddingsÚexpandÚposition_idsrã   rÉ   r‡  Útoken_type_idsr$  Úposition_embeddings©rt   r€   r›   s   &&€r&   r‹   ÚClapTextEmbeddings.__init__Ÿ  s%  ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ%'§\¢\°&×2HÑ2HÈ&×J\ÑJ\Ó%]ˆÔ"äŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒäŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐosÔtˆÔÜ Ÿiši¬¯ª°D×4EÑ4E×4JÑ4JÓ4LÔTY×T^ÑT^Ô(_ÐlpÔqˆÔà!×.Ñ.ˆÔÜ#%§<¢<Ø×*Ñ*¨F×,>Ñ,>ÈD×L\ÑL\ô$
ˆÖ r(   c                óÚ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[RS[ P                  /# )r8   Ú	input_idsNr0  r/  Úinputs_embedsÚpast_key_values_lengthr:   )r<   Ú
LongTensorrQ   rŽ   r=   )r>   rS   s   "€r&   r?   ÚClapTextEmbeddings.__annotate__¯  sw   ø€ ÷ .ñ .á×#Ñ# dÕ*ð.ñ ×(Ñ(¨4Õ/ð.ñ ×&Ñ&¨Õ-ð	.ñ
 ×(Ñ(¨4Õ/ð.ñ !$ð.ñ 
�‰ñ.r(   c                ó4  € Vf=   Ve   V P                  WP                  V4      pMV P                  W@P                  4      pVe   VP                  4       pMVP                  4       R R pVw  rxVf¿   \	        V R4      '       dr   V P
                  P                  VP                  4      P                  VP                  ^ ,          R4      p	\        P                  ! V	^VR7      p	V	P                  Wx4      pM;\        P                  ! V\        P                  V P                  P                  R7      pVf   V P                  V4      pV P!                  V4      p
WJ,           pV P#                  V4      pW¼,           pV P%                  V4      pV P'                  V4      pV# )Nr0  )rñ   Úindexr_  r*   )Ú"create_position_ids_from_input_idsr$  Ú&create_position_ids_from_inputs_embedsrÉ   Úhasattrr0  rˆ  rB   r.  r   r<   Úgatherrã   r‡  r/  r*  r,  r1  r»   rï   )rt   r5  r0  r/  r6  r7  Úinput_shaper"   Ú
seq_lengthÚbuffered_token_type_idsr,  Ú
embeddingsr1  s   &&&&&&       r&   r¢   ÚClapTextEmbeddings.forward¯  st  € ð ÒØÒ$à#×FÑFØ×/Ñ/Ð1Gó ‘ð  $×JÑJÈ=×ZjÑZjÓk�àÒ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà!,Ñˆ
ð
 Ò!Ü�tÐ-×.Ò.à*.×*=Ñ*=×*@Ñ*@À×ATÑATÓ*U×*\Ñ*\Ð]i×]oÑ]oÐpqÕ]rÐtvÓ*wÐ'Ü*/¯,ª,Ð7NÐTUÐ]iÔ*jÐ'Ø!8×!?Ñ!?À
Ó!W‘ä!&§¢¨[ÄÇ
Á
ÐSW×SdÑSd×SkÑSkÔ!l�àÒ Ø ×0Ñ0°Ó;ˆMØ $× :Ñ :¸>Ó JÐØ"Õ:ˆ
à"×6Ñ6°|ÓDÐØÕ5ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐr(   c                ó  € V P                  4       RR pV^,          p\        P                  ! V^,           W1,           ^,           \        P                  V P                  R7      pVP                  ^ 4      P                  V4      # )z¯
We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids.

Args:
    inputs_embeds: torch.Tensor

Returns: torch.Tensor
Nr_  r*   )rÉ   r<   rC   r‡  rB   r  r.  )r6  r$  r@  Úsequence_lengthr/  s   &&   r&   r=  Ú9ClapTextEmbeddings.create_position_ids_from_inputs_embedsß  sn   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø˜!�O˜_Õ:¸QÕ>ÄeÇjÁjÐYf×YmÑYmô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<r(   c                óØ   € V P                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,           V,          pVP                  4       V,           # )zí
Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding symbols
are ignored. This is modified from fairseq's `utils.make_positions`.

Args:
    x: torch.Tensor x:

Returns: torch.Tensor
rü   )ÚnerŽ   r<   ÚcumsumÚtype_asr‡  )r5  r$  r7  ÚmaskÚincremental_indicess   &&&  r&   r<  Ú5ClapTextEmbeddings.create_position_ids_from_input_idsñ  sW   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÐI_Õ_ÐcgÕgÐØ"×'Ñ'Ó)¨KÕ7Ð7r(   )r»   rï   r$  r1  r/  r,  r0  r*  )NNNNr¬   r”  )rV   rW   rX   rY   rZ   r‹   r¢   Ústaticmethodr=  r<  r\   r]   r¥   r¦   s   @@r&   r"  r"  œ  sE   ù‡ € ÙQõ
÷ .ò .ð` ñ=ó ð=ð" ó8ó ÷8ð 8r(   r"  c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# )	r8   Úmodulerê   rë   rì   rö   NÚscalingrï   )r   ÚModuler<   r=   rX  )r>   s   "r&   r?   r?     sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r(   c                 óÎ  € \         P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P                  P                  VR\         P                  R7      P                  VP                  4      p\        P                  P                  W†V P                  R7      p\         P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )r8   )rñ   r`  )Úpra  r*   )r<   rþ   rË   r   rE   r  Úfloat32rˆ  r`  rï   ra  r.   )
rQ  rê   rë   rì   rö   rR  rï   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r&   Úeager_attention_forwardrZ    s°   € ô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KØÐ$Ð$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# )ÚClapTextSelfAttentioni  c                ó\  <€ \         SV `  4        VP                  VP                  ,          ^ 8w  d9   \	        VR4      '       g'   \        RVP                   RVP                   R24      hWn        VP                  V n        \        VP                  VP                  ,          4      V n        V P                  V P                  ,          V n	        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                   4      V n        VP                   V n        V P                  R,          V n        R# )r¬   Úembedding_sizer×   rØ   rÙ   Nç      à¿)rŠ   r‹   r
  rÜ   r>  rÈ   r€   rŽ   rÝ   rÞ   r   rè   rê   rë   rì   rí   rî   rï   Úattention_dropoutrR  r2  s   &&€r&   r‹   ÚClapTextSelfAttention.__init__  sD  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸aÔ?ÌÐPVÐXh×HiÒHiÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð
 ŒØ#)×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÕ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔä—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
Ü—9’9˜V×/Ñ/°×1CÑ1CÓDˆŒÜ—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
ä—z’z &×"EÑ"EÓFˆŒØ!'×!DÑ!DˆÔØ×/Ñ/°Õ5ˆŽr(   c                óÄ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# ©r8   r    rö   NrW  r:   )r<   r=   rQ   r   r   rR   )r>   rS   s   "€r&   r?   Ú"ClapTextSelfAttention.__annotate__0  s_   ø€ ÷ )ñ )á—|‘|ð)ñ ×)Ñ)¨DÕ0ð)ñ Ñ+Õ,ð	)ñ
 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ)r(   c                ó†  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! V VVVV3RV P                  '       g   RMV P                  RV P                  /VB w  r«V
P                  ! . VORN5!  P!                  4       p
W«3# )Nrï   r^  rR  r*   )r   rÝ   rê   r,   rË   rë   rì   r   Úget_interfacer€   Ú_attn_implementationrZ  ra  r`  rR  r   r.   )rt   r    rö   rW  r@  r  Úquery_statesÚ
key_statesÚvalue_statesÚattention_interfacerY  rX  s   &&&,        r&   r¢   ÚClapTextSelfAttention.forward0  sA  € ð $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆà—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆØ—X‘X˜mÓ,×1Ñ1°,Ó?×IÑIÈ!ÈQÓOˆ
Ø—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØÐ(Ð(r(   )
rÞ   r`  rÝ   r€   rï   rë   rÜ   rê   rR  rì   rk   r+  r¦   s   @@r&   r\  r\    s   ù‡ € õ6÷*)÷ )ò )r(   r\  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapTextSelfOutputiQ  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  4      V n
        R# ©rr  N)rŠ   r‹   r   rè   r
  r  r»   rw  rí   rN  rï   r2  s   &&€r&   r‹   ÚClapTextSelfOutput.__init__R  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr(   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# r#  r;   )r>   rS   s   "€r&   r?   ÚClapTextSelfOutput.__annotate__X  r&  r(   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# rk   ©r  rï   r»   r)  s   &&&r&   r¢   ÚClapTextSelfOutput.forwardX  ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr(   ©r»   r  rï   r+  r¦   s   @@r&   rn  rn  Q  ó   ù‡ € õ>÷÷ ð r(   rn  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# )ÚClapTextAttentioni`  c                ód   <€ \         SV `  4        \        V4      V n        \	        V4      V n        R # rk   )rŠ   r‹   r\  rt   rn  r¡   r2  s   &&€r&   r‹   ÚClapTextAttention.__init__a  s&   ø€ Ü‰ÑÔÜ)¨&Ó1ˆŒ	Ü(¨Ó0ˆŽr(   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# rc  ©r<   r=   rQ   r   r   )r>   rS   s   "€r&   r?   ÚClapTextAttention.__annotate__f  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñr(   c                óZ   € TpV P                   ! V3R V/VB w  rV P                  W4      pV# ©rö   r4  )rt   r    rö   rW  rž   rÐ   s   &&&,  r&   r¢   ÚClapTextAttention.forwardf  sE   € ð !ˆØŸ9š9Øñ
à)ð
ð ñ
Ñˆð
 Ÿ™ MÓ<ˆØÐr(   r8  rk   r+  r¦   s   @@r&   r{  r{  `  s   ù‡ € õ1÷
÷ ò r(   r{  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapTextIntermediateiw  c                ó"  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # rk   )rŠ   r‹   r   rè   r
  Úintermediate_sizer  rl   r=  r>  r   r?  r2  s   &&€r&   r‹   ÚClapTextIntermediate.__init__x  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rB  r;   )r>   rS   s   "€r&   r?   Ú!ClapTextIntermediate.__annotate__€  rD  r(   c                óJ   € V P                  V4      pV P                  V4      pV# rk   rF  rG  s   &&r&   r¢   ÚClapTextIntermediate.forward€  rI  r(   rF  r+  r¦   s   @@r&   r…  r…  w  rJ  r(   r…  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapTextOutputi‡  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# rp  )rŠ   r‹   r   rè   r‡  r
  r  r»   rw  rí   rN  rï   r2  s   &&€r&   r‹   ÚClapTextOutput.__init__ˆ  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr(   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# r#  r;   )r>   rS   s   "€r&   r?   ÚClapTextOutput.__annotate__Ž  r&  r(   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# rk   ru  r)  s   &&&r&   r¢   ÚClapTextOutput.forwardŽ  rw  r(   rx  r+  r¦   s   @@r&   rŽ  rŽ  ‡  ry  r(   rŽ  c                   óN   a a€ ] tR tRt oV 3R ltRV3R lR lltR tRtVtV ;t	# )ÚClapTextLayeri–  c                ó´   <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        \        V4      V n        \        V4      V n	        R# )r„   N)
rŠ   r‹   rt  Úseq_len_dimr{  ry  r…  r|  rŽ  r¡   r2  s   &&€r&   r‹   ÚClapTextLayer.__init__—  sI   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ*¨6Ó2ˆŒÜ0°Ó8ˆÔÜ$ VÓ,ˆŽr(   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# rc  r  )r>   rS   s   "€r&   r?   ÚClapTextLayer.__annotate__Ÿ  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñr(   c                óˆ   € V P                   ! V3R V/VB p\        V P                  V P                  V P                  V4      pV# r‚  )ry  r   Úfeed_forward_chunkrt  r˜  )rt   r    rö   rW  s   &&&,r&   r¢   ÚClapTextLayer.forwardŸ  sW   € ð ŸšØñ
à)ð
ð ñ
ˆô 2Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUbó
ˆð Ðr(   c                óJ   € V P                  V4      pV P                  W!4      pV# rk   )r|  r¡   )rt   r6  Úintermediate_outputr­  s   &&  r&   r�  Ú ClapTextLayer.feed_forward_chunk±  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐr(   )ry  rt  r|  r¡   r˜  rk   )
rV   rW   rX   rY   r‹   r¢   r�  r\   r]   r¥   r¦   s   @@r&   r–  r–  –  s   ù‡ € õ-÷ò ÷$ò 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# )ÚClapTextEncoderi¸  c                óÖ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n        R V n	        R# u upi )FN)
rŠ   r‹   r€   r   r´  rµ  Únum_hidden_layersr–  Úlayerræ  )rt   r€   rº  r›   s   && €r&   r‹   ÚClapTextEncoder.__init__¹  sR   ø€ Ü‰ÑÔØŒÜ—]’]Ä5È×IaÑIaÔCbÓ#cÑCb¸a¤M°&Ö$9ÑCbÑ#cÓdˆŒ
Ø&+ˆÖ#ùò $ds   ½A&c                óx   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[/# rc  )r<   r=   rQ   r   r   r
   )r>   rS   s   "€r&   r?   ÚClapTextEncoder.__annotate__¿  sH   ø€ ÷ 
ñ 
á—|‘|ð
ñ ×)Ñ)¨DÕ0ð
ñ Ñ+Õ,ð	
ñ
 
ñ
r(   c                óT   € V P                    F  pV! VV3/ VB pK  	  \        VR 7      # ))rN   )r¦  r
   )rt   r    rö   rW  rÀ  s   &&&, r&   r¢   ÚClapTextEncoder.forward¿  s>   € ð !ŸJœJˆLÙ(ØØñð ñŠMñ 'ô Ø+ô
ð 	
r(   )r€   ræ  r¦  rk   r+  r¦   s   @@r&   r£  r£  ¸  s   ù‡ € õ,÷
÷ 
ò 
r(   r£  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚClapTextPooleriÒ  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # rk   )rŠ   r‹   r   rè   r
  r  ÚTanhr  r2  s   &&€r&   r‹   ÚClapTextPooler.__init__Ó  s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽr(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rB  r;   )r>   rS   s   "€r&   r?   ÚClapTextPooler.__annotate__Ø  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r(   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )r   )r   r¬   )r  r  )rt   r    Úfirst_token_tensorÚpooled_outputs   &&  r&   r¢   ÚClapTextPooler.forwardØ  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐr(   )r  r  r+  r¦   s   @@r&   r­  r­  Ò  s   ù‡ € õ$÷
÷ ð r(   r­  c                   ó~   a a€ ] tR tRt oRtRtRt]P                  ! 4       V3R lV 3R ll4       t	V3R lt
RtVtV ;t# )	ÚClapPreTrainedModeliá  ÚclapFc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r8   rQ  ©r   rS  )r>   rS   s   "€r&   r?   Ú ClapPreTrainedModel.__annotate__é  s   ø€ ÷ `ñ `¡B§I¡Iñ `r(   c                ó¬  <€ \         SV `  V4       V P                  P                  p\	        V\
        4      '       dê   \        P                  ! VP                  P                  RVR,          R7       \        P                  ! VP                  P                  RVR,          R7       \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P!                  R4      4       \        P"                  ! VP$                  4       R# \	        V\&        4      '       d•   \        P(                  ! VP*                  \,        P.                  ! V P                  P0                  4      4       \        P(                  ! VP2                  \,        P.                  ! V P                  P0                  4      4       R# \	        V\4        P6                  4      '       d-   \        P                  ! VP                  RVR,          R7       R# \	        V\4        P8                  \4        P:                  34      '       d¢   V P                  P<                  R,          ^V P                  P>                  ,          R,          ,          V,          p\        P                  ! VP                  VR7       VP@                  e#   \        P"                  ! VP@                  4       R# R# \	        V\B        4      '       dR   \        P"                  ! VPD                  4       \        P                  ! VPF                  VPI                  4       4       R# R# )	zInitialize the weightsr^  g{®Gáz”?)ÚmeanÚstd)r¿  Nr*   r&  r_  )%rŠ   Ú_init_weightsr€   Úinitializer_factorrl   r"  ÚinitÚnormal_r1  Úweightr,  Úcopy_r/  r<   rC   r   r.  Úzeros_r0  Ú	ClapModelÚ	constant_Úlogit_scale_arÿ   ÚlogÚlogit_scale_init_valueÚlogit_scale_tr   r'  r�   rè   r
  r¥  rÛ   rÕ   rä   rç   ræ   )rt   rQ  ÚfactorÚin_proj_stdr›   s   &&  €r&   rÀ  Ú!ClapPreTrainedModel._init_weightsè  s  ø€ ô 	‰Ñ˜fÔ%Ø—‘×/Ñ/ˆä�fÔ0×1Ò1Ü�LŠL˜×3Ñ3×:Ñ:ÀÈ&ÐSWÍ-ÕXÜ�LŠL˜×5Ñ5×<Ñ<À3ÈFÐUYÍMÕZÜ�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÔhÜ�KŠK˜×-Ñ-Ö.Ü˜¤	×*Ò*Ü�NŠN˜6×/Ñ/´·²¸$¿+¹+×:\Ñ:\Ó1]Ô^Ü�NŠN˜6×/Ñ/´·²¸$¿+¹+×:\Ñ:\Ó1]Ö^Ü˜¤§¡×-Ò-Ü�LŠL˜Ÿ™¨S°f¸tµm×DÜ˜¤§¡¬B¯I©IÐ 6×7Ò7ØŸ;™;×2Ñ2°DÕ8¸aÀ$Ç+Á+×B_ÑB_Õ>_ÐdhÕ=hÕiÐlrÕrˆKÜ�LŠL˜Ÿ™¨KÕ8Ø�{‰{Ò&Ü—’˜FŸK™KÖ(ñ 'ä˜Ô 6×7Ò7Ü�KŠK˜×;Ñ;Ô<Ü�JŠJ�v×5Ñ5°v×7\Ñ7\Ó7^Ö_ñ 8r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   ©r   )r>   rS   s   "€r&   r?   r¼  á  ó   ø‡ ‚ áÑò r(   rU   )ÚaudioÚtext)rV   rW   rX   rY   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingr<   Úno_gradrÀ  r[   r\   r]   r¥   r¦   s   @@r&   r¸  r¸  á  s@   ù‡ € ð ÐØ(ÐØ&+Ð#à
‡]‚]ƒ_÷`ò `ó ð`÷ … r(   r¸  c                   ó„   a a€ ] tR tRt oRtRt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4       t	V3R
 lt
RtVtV ;t# )ÚClapAudioModeli  r  rÓ  c                ó    <€ V ^8„  d   QhRS[ /# r   r�   )r>   rS   s   "€r&   r?   ÚClapAudioModel.__annotate__  s   ø€ ÷ ñ ™ñ r(   c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # rk   )rŠ   r‹   rÙ  Úaudio_encoderÚ	post_initr2  s   &&€r&   r‹   ÚClapAudioModel.__init__  s'   ø€ Ü‰Ñ˜Ô Ü-¨fÓ5ˆÔà�‰Ör(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rg   r»  )r>   rS   s   "€r&   r?   rÜ    s   ø€ ÷ 3ñ 3¡b§i¡iñ 3r(   c                óB   € V P                   P                  P                  # rk   )rÞ  rÞ  r¹   rs   s   &r&   Úget_input_embeddingsÚ#ClapAudioModel.get_input_embeddings  s   € Ø×!Ñ!×-Ñ-×2Ñ2Ð2r(   c          	      ó–   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# ©r8   r  Nrû  rW  r:   )r<   rQ   Ú
BoolTensorr   r   rR   r   )r>   rS   s   "€r&   r?   rÜ    sU   ø€ ÷  
ñ  
á×)Ñ)¨DÕ0ð 
ñ ×#Ñ# dÕ*ð 
ñ Ñ+Õ,ð	 
ñ
 
Ñ+Õ	+ñ 
r(   c                ó.   € V P                   ! RRVRV/VB # )aì  
is_longer (`torch.FloatTensor`, of shape `(batch_size, 1)`, *optional*):
    Whether the audio clip is longer than `max_length`. If `True`, a feature fusion will be enabled to enhance
    the features.

Examples:

```python
>>> from datasets import load_dataset
>>> from transformers import AutoProcessor, ClapAudioModel

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> model = ClapAudioModel.from_pretrained("laion/clap-htsat-fused")
>>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-fused")

>>> inputs = processor(audio=audio_sample, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
```r  rû  rU   ©rÞ  )rt   r  rû  rW  s   &&&,r&   r¢   ÚClapAudioModel.forward  s1   € ð: ×!Ò!ñ 
Ø)ð
àð
ð ñ
ð 	
r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   r�   )r>   rS   s   "€r&   r?   rÜ    s   ø‡ ‚ ÙÑò r(   ré  ©NN)rV   rW   rX   rY   Úmain_input_namerÖ  r‹   rã  r   r¢   r[   r\   r]   r¥   r¦   s   @@r&   rÚ  rÚ    sD   ù‡ € à&€OØÐ÷ó ÷3ð 3ð ÷ 
ñ  
ó ð 
÷ … r(   rÚ  a0  
    The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
    cross-attention is added between the self-attention layers, following the architecture described in *Attention is
    all you need*_ by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz
    Kaiser and Illia Polosukhin.

    To behave as an decoder the model needs to be initialized with the `is_decoder` argument of the configuration set
    to `True`. To be used in a Seq2Seq model, the model needs to initialized with both `is_decoder` argument and
    `add_cross_attention` set to `True`; an `encoder_hidden_states` is then expected as an input to the forward pass.

    .. _*Attention is all you need*: https://huggingface.co/papers/1706.03762
    c                   ó’   a a€ ] tR tRt oRtR]R]/tRV 3R lltR t	R t
]]]RV3R lR ll4       4       4       tV3R	 ltR
tVtV ;t# )ÚClapTextModeli4  r    rO   c                óÆ   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        V'       d   \        V4      MRV n        V P                  4        R# )z^
add_pooling_layer (bool, *optional*, defaults to `True`):
    Whether to add a pooling layer
N)
rŠ   r‹   r€   r"  rC  r£  Úencoderr­  Úpoolerrß  )rt   r€   Úadd_pooling_layerr›   s   &&&€r&   r‹   ÚClapTextModel.__init__J  sK   ø€ ô
 	‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ& vÓ.ˆŒç0A”n VÔ,ÀtˆŒð 	�‰Ör(   c                ó.   € V P                   P                  # rk   ©rC  r*  rs   s   &r&   rã  Ú"ClapTextModel.get_input_embeddingsZ  s   € Ø�‰×.Ñ.Ð.r(   c                ó&   € WP                   n        R # rk   rö  ©rt   rì   s   &&r&   Úset_input_embeddingsÚ"ClapTextModel.set_input_embeddings]  s   € Ø*/�‰Ö'r(   c                óþ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )	r8   r5  Nrö   r0  r/  r6  rW  r:   )r<   r=   r   r   r   )r>   rS   s   "€r&   r?   ÚClapTextModel.__annotate__c  s„   ø€ ÷ 1
ñ 1
á—<‘< $Õ&ð1
ñ Ÿ™ tÕ+ð1
ñ Ÿ™ tÕ+ð	1
ñ
 —l‘l TÕ)ð1
ñ —|‘| dÕ*ð1
ñ Ñ+Õ,ð1
ñ 
$ñ1
r(   c                ó&  € Ve   Ve   \        R4      hVe#   V P                  W4       VP                  4       pM#Ve   VP                  4       R R pM\        R4      hVw  r‰Ve   VP                  MVP                  p
Vf   \        P
                  ! W‰3V
R7      pV P                  VVVVR7      p\        V P                  VVR7      pV P                  ! V3RV/VB pV^ ,          pV P                  e   V P                  V4      MR p\        VVR7      # )	NzDYou cannot specify both input_ids and inputs_embeds at the same timez5You have to specify either input_ids or inputs_embedsrA   )r5  r/  r0  r6  )r€   r6  rö   rö   )rN   r  r*   )rÈ   Ú%warn_if_padding_and_no_attention_maskrÉ   rB   r<   ÚonesrC  r   r€   rñ  rò  r   )rt   r5  rö   r0  r/  r6  rW  r@  r"   rA  rB   Úembedding_outputÚencoder_outputsÚsequence_outputrµ  s   &&&&&&,        r&   r¢   ÚClapTextModel.forward`  s2  € ð Ò  ]Ò%>ÜÐcÓdÐdØÒ"Ø×6Ñ6°yÔQØ#Ÿ.™.Ó*‰KØÒ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐTÓUÐUà!,Ñˆ
Ø%.Ò%:�×!Ò!À×@TÑ@TˆàÒ!Ü"ŸZšZ¨*Ð)AÈ6ÔRˆNàŸ?™?ØØ%Ø)Ø'ð	 +ó 
Ðô 3Ø—;‘;Ø*Ø)ô
ˆð Ÿ,š,Øñ
à)ð
ð ñ
ˆð
 *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä)Ø-Ø'ô
ð 	
r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   ©r   )r>   rS   s   "€r&   r?   rý  4  s   ø‡ ‚ ñ Ñò r(   )r€   rC  rñ  rò  ©rÔ  )T)NNNNN)rV   rW   rX   rY   rÖ  r–  r\  Ú_can_record_outputsr‹   rã  rú  r   r   r   r¢   r[   r\   r]   r¥   r¦   s   @@r&   rï  rï  4  s`   ù‡ € ð  !Ðà˜ØÐ+ðÐ÷
ò /ò0ð  ØØ÷1
ñ 1
ó ó ó  ð1
÷_ … r(   rï  c                   óÈ   a a€ ] tR tRt oV3R lV 3R llt]]RV3R lR ll4       4       t]]RV3R lR ll4       4       t]]RV3R lR	 ll4       4       t	V3R
 lt
RtVtV ;t# )rÇ  i—  c                ó    <€ V ^8„  d   QhRS[ /# r   rÑ  )r>   rS   s   "€r&   r?   ÚClapModel.__annotate__›  s   ø€ ÷ ñ ™zñ r(   c                óT  <€ \         SV `  V4       \        VP                  \        4      '       g#   \        R \        VP                  4       R24      h\        VP                  \        4      '       g#   \        R\        VP                  4       R24      hVP                  pVP                  p\        P                  ! \        P                  ! \        P                  ! VP                  4      4      4      V n        \        P                  ! \        P                  ! \        P                  ! VP                  4      4      4      V n        VP$                  V n        \'        V4      V n        \+        V4      V n        \/        V4      V n        \+        V4      V n        V P5                  4        R# )zKconfig.text_config is expected to be of type ClapTextConfig but is of type Ú.zMconfig.audio_config is expected to be of type ClapAudioConfig but is of type N)rŠ   r‹   rl   Útext_configr   Ú	TypeErrorÚtypeÚaudio_configr   r   râ   r<   rƒ  rÿ   rÊ  rË  rÉ  rÌ  r  rï  Ú
text_modelr  Útext_projectionrÚ  Úaudio_modelÚaudio_projectionrß  )rt   r€   r  r  r›   s   &&  €r&   r‹   ÚClapModel.__init__›  sC  ø€ Ü‰Ñ˜Ô ä˜&×,Ñ,¬n×=Ò=ÜðÜ˜×+Ñ+Ó,Ð-¨Qð0óð ô
 ˜&×-Ñ-¬×?Ò?ÜðÜ˜×,Ñ,Ó-Ð.¨að1óð ð
 ×(Ñ(ˆØ×*Ñ*ˆäŸ\š\¬%¯,ª,´t·x²xÀ×@]Ñ@]Ó7^Ó*_Ó`ˆÔÜŸ\š\¬%¯,ª,´t·x²xÀ×@]Ñ@]Ó7^Ó*_Ó`ˆÔà$×3Ñ3ˆÔä'¨Ó4ˆŒÜ2°;Ó?ˆÔä)¨,Ó7ˆÔÜ 3°LÓ AˆÔð 	�‰Ör(   c                ó°   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r8   r5  rö   Nr/  rW  r:   ©r<   r=   r   r   rR   r   )r>   rS   s   "€r&   r?   r  ½  s_   ø€ ÷ ñ á—<‘<ðñ Ÿ™ tÕ+ðñ —l‘l TÕ)ð	ñ
 Ñ+Õ,ðñ 
Ñ+Õ	+ñr(   c           	     ó¦   € V P                   ! RRVRVRV/VB pV P                  VP                  4      p\        P                  ! VRR7      Vn        V# )a±  
Examples:

```python
>>> import torch
>>> from transformers import AutoTokenizer, ClapModel

>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused")

>>> inputs = tokenizer(["the sound of a cat", "the sound of a dog"], padding=True, return_tensors="pt")
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)
```r5  rö   r/  rü   rU   r*   )r  r  r  ÚFÚ	normalize)rt   r5  rö   r/  rW  Útext_outputsÚtext_featuress   &&&&,  r&   Úget_text_featuresÚClapModel.get_text_features»  sg   € ð. 48·?²?ñ 4
Øð4
à)ð4
ð &ð4
ð ñ	4
ˆð ×,Ñ,¨\×-GÑ-GÓHˆÜ%&§[¢[°ÀBÔ%GˆÔ"àÐr(   c                ó°   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r8   r  rû  Nrö   rW  r:   r  )r>   rS   s   "€r&   r?   r  ß  s_   ø€ ÷  ñ  áŸ™ð ñ —<‘< $Õ&ð ñ Ÿ™ tÕ+ð	 ñ
 Ñ+Õ,ð ñ 
Ñ+Õ	+ñ r(   c                ó¢   € V P                   ! RRVRV/VB pV P                  VP                  4      p\        P                  ! VRR7      Vn        V# )a–  
is_longer (`torch.FloatTensor`, of shape `(batch_size, 1)`, *optional*):
    Whether the audio clip is longer than `max_length`. If `True`, a feature fusion will be enabled to enhance
    the features.

Examples:

```python
>>> import torch
>>> from transformers import AutoFeatureExtractor, ClapModel

>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> feature_extractor = AutoFeatureExtractor.from_pretrained("laion/clap-htsat-unfused")
>>> random_audio = torch.rand((16_000))

>>> inputs = feature_extractor(random_audio, return_tensors="pt")
>>> with torch.inference_mode():
...     audio_features = model.get_audio_features(**inputs)
```r  rû  rü   rU   r*   )r  r  r  r  r  )rt   r  rû  rö   rW  Úaudio_outputsÚaudio_featuress   &&&&,  r&   Úget_audio_featuresÚClapModel.get_audio_featuresÝ  s]   € ð8 59×4DÒ4Dñ 5
Ø)ð5
Ø5>ð5
ØBHñ5
ˆð ×.Ñ.¨}×/JÑ/JÓKˆÜ&'§k¢k°.ÀbÔ&IˆÔ#àÐr(   c                ó"  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          R	S[S[	,          /# )
r8   r5  Nr  rû  rö   r/  Úreturn_lossrW  r:   )
r<   r8  rQ   rç  r=   rù   r   r   rR   re   )r>   rS   s   "€r&   r?   r    s©   ø€ ÷ P
ñ P
á×#Ñ# dÕ*ðP
ñ ×)Ñ)¨DÕ0ðP
ñ ×#Ñ# dÕ*ð	P
ñ
 Ÿ™ tÕ+ðP
ñ ×&Ñ&¨Õ-ðP
ñ ˜D•[ðP
ñ Ñ+Õ,ðP
ñ 
‘Õ	ñP
r(   c           
     óî  € V P                   ! RRVRV/VB pV P                  ! RRVRVRV/VB p	VP                  p
V P                  V
4      p
V	P                  pV P	                  V4      pWªP                  ^RRR7      ,          p
W»P                  ^RRR7      ,          pV P                  P                  4       pV P                  P                  4       p\        P                  ! WºP                  4       4      V,          p\        P                  ! W«P                  4       4      V,          pRpV'       d5   \        V4      p\        VP                  4       4      pVV,           R	,          p\        VVVVV
V	VR
7      # )a*  
is_longer (`torch.FloatTensor`, of shape `(batch_size, 1)`, *optional*):
    Whether the audio clip is longer than `max_length`. If `True`, a feature fusion will be enabled to enhance
    the features.
return_loss (`bool`, *optional*):
    Whether or not to return the contrastive loss.

Examples:

```python
>>> from datasets import load_dataset
>>> from transformers import AutoProcessor, ClapModel

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> model = ClapModel.from_pretrained("laion/clap-htsat-unfused")
>>> processor = AutoProcessor.from_pretrained("laion/clap-htsat-unfused")

>>> input_text = ["Sound of a dog", "Sound of vacuum cleaner"]

>>> inputs = processor(text=input_text, audio=audio_sample, return_tensors="pt", padding=True)

>>> outputs = model(**inputs)
>>> logits_per_audio = outputs.logits_per_audio  # this is the audio-text similarity score
>>> probs = logits_per_audio.softmax(dim=-1)  # we can take the softmax to get the label probabilities
```r  rû  r5  rö   r/  T)rU  rñ   ÚkeepdimNg       @)rw   rx   ry   rM   rb   rz   r{   rU   r*   )r  r  r  r  r  r½   rÌ  ÚexprÉ  r<   rþ   ÚtrH   re   )rt   r5  r  rû  rö   r/  r'  rW  r"  r  rb   rM   Úlogit_scale_textÚlogit_scale_audiory   rx   rw   Úcaption_lossÚ
audio_losss   &&&&&&&,           r&   r¢   ÚClapModel.forward  sŠ  € ðN ×(Ò(ñ 
Ø)ð
àð
ð ñ
ˆð —’ñ 
Øð
à)ð
ð &ð
ð ñ	
ˆð %×2Ñ2ˆØ×,Ñ,¨\Ó:ˆà"×0Ñ0ˆØ×*Ñ*¨;Ó7ˆð $×&7Ñ&7¸!ÀÈTÐ&7Ó&RÕRˆØ!×$4Ñ$4°q¸bÈ$Ð$4Ó$OÕOˆð  ×-Ñ-×1Ñ1Ó3ÐØ ×.Ñ.×2Ñ2Ó4ÐÜŸ,š, {·N±NÓ4DÓEÐHXÕXˆÜ Ÿ<š<¨·m±m³oÓFÐIZÕZÐàˆßÜ+¨OÓ<ˆLÜ)Ð*:×*<Ñ*<Ó*>Ó?ˆJØ  :Õ-°Õ4ˆDäØØ-Ø+Ø#Ø%Ø*Ø,ô
ð 	
r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   rÑ  )r>   rS   s   "€r&   r?   r  —  rÒ  r(   )r  r  rÉ  rÌ  r  r  r  rì  )NNNNNN)rV   rW   rX   rY   r‹   r   r   r  r$  r¢   r[   r\   r]   r¥   r¦   s   @@r&   rÇ  rÇ  —  s€   ù‡ € ÷ó ð@ Ø÷ñ ó ó ðð@ Ø÷ ñ  ó ó ð ðD Ø÷P
ñ P
ó ó ðP
÷Y … r(   rÇ  c                   óœ   a a€ ] tR tRt oRtR]R]/tV3R lV 3R lltV3R lR lt	R t
]]RV3R	 lR
 ll4       4       tV3R ltRtVtV ;t# )ÚClapTextModelWithProjectioniV  r    rO   c                ó    <€ V ^8„  d   QhRS[ /# r   r  )r>   rS   s   "€r&   r?   Ú(ClapTextModelWithProjection.__annotate___  s   ø€ ÷ ñ ™~ñ r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # rk   )rŠ   r‹   rï  r  r  r  rß  r2  s   &&€r&   r‹   Ú$ClapTextModelWithProjection.__init___  s3   ø€ Ü‰Ñ˜Ô Ü'¨Ó/ˆŒÜ2°6Ó:ˆÔà�‰Ör(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rg   r»  )r>   rS   s   "€r&   r?   r5  f  s   ø€ ÷ :ñ :¡b§i¡iñ :r(   c                óB   € V P                   P                  P                  # rk   ©r  rC  r*  rs   s   &r&   rã  Ú0ClapTextModelWithProjection.get_input_embeddingsf  s   € Ø�‰×)Ñ)×9Ñ9Ð9r(   c                ó:   € WP                   P                  n        R # rk   r:  rù  s   &&r&   rú  Ú0ClapTextModelWithProjection.set_input_embeddingsi  s   € Ø5:�‰×"Ñ"Ö2r(   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r8   r5  Nrö   r/  rW  r:   )r<   r=   r   r   rR   rK   )r>   rS   s   "€r&   r?   r5  n  sd   ø€ ÷ #
ñ #
á—<‘< $Õ&ð#
ñ Ÿ™ tÕ+ð#
ñ —l‘l TÕ)ð	#
ñ
 Ñ+Õ,ð#
ñ 
Ñ$Õ	$ñ#
r(   c           	     óÆ   € V P                   ! RRVRVRV/VB pVP                  pV P                  V4      p\        VVP                  VP
                  VP                  R7      # )aª  
Examples:

```python
>>> from transformers import AutoTokenizer, ClapTextModelWithProjection

>>> model = ClapTextModelWithProjection.from_pretrained("laion/clap-htsat-unfused")
>>> tokenizer = AutoTokenizer.from_pretrained("laion/clap-htsat-unfused")

>>> inputs = tokenizer(["a sound of a cat", "a sound of a dog"], padding=True, return_tensors="pt")

>>> outputs = model(**inputs)
>>> text_embeds = outputs.text_embeds
```r5  rö   r/  )rM   rN   r    rO   rU   )r  r  r  rK   rN   r    rO   )rt   r5  rö   r/  rW  r  rµ  rM   s   &&&&,   r&   r¢   Ú#ClapTextModelWithProjection.forwardl  s~   € ð. 48·?²?ñ 4
Øð4
à)ð4
ð &ð4
ð ñ	4
ˆð %×2Ñ2ˆØ×*Ñ*¨=Ó9ˆä"Ø#Ø*×<Ñ<Ø&×4Ñ4Ø#×.Ñ.ô	
ð 	
r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   r  )r>   rS   s   "€r&   r?   r5  V  s   ø‡ ‚ áÑò r(   )r  r  r  )NNN)rV   rW   rX   rY   rÖ  r–  r\  r  r‹   rã  rú  r   r   r¢   r[   r\   r]   r¥   r¦   s   @@r&   r3  r3  V  sa   ù‡ € ð !Ðà˜ØÐ+ðÐ÷
ó ÷:ð :ò;ð Ø÷#
ñ #
ó ó ð#
÷1 … r(   r3  c                   óŽ   a a€ ] tR tRt oRtRt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4       4       t
V3R
 ltRtVtV ;t# )ÚClapAudioModelWithProjectioni”  r  rÓ  c                ó    <€ V ^8„  d   QhRS[ /# r   r�   )r>   rS   s   "€r&   r?   Ú)ClapAudioModelWithProjection.__annotate__š  s   ø€ ÷ ñ ™ñ r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # rk   )rŠ   r‹   rÚ  r  r  r  rß  r2  s   &&€r&   r‹   Ú%ClapAudioModelWithProjection.__init__š  s4   ø€ Ü‰Ñ˜Ô Ü)¨&Ó1ˆÔÜ 3°FÓ ;ˆÔà�‰Ör(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rg   r»  )r>   rS   s   "€r&   r?   rE  ¡  s   ø€ ÷ ?ñ ?¡b§i¡iñ ?r(   c                óV   € V P                   P                  P                  P                  # rk   )r  rÞ  rÞ  r¹   rs   s   &r&   rã  Ú1ClapAudioModelWithProjection.get_input_embeddings¡  s    € Ø×Ñ×-Ñ-×9Ñ9×>Ñ>Ð>r(   c          	      ó–   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# ræ  )r<   rQ   rç  r   r   rR   r`   )r>   rS   s   "€r&   r?   rE  ¦  sU   ø€ ÷ (
ñ (
á×)Ñ)¨DÕ0ð(
ñ ×#Ñ# dÕ*ð(
ñ Ñ+Õ,ð	(
ñ
 
Ñ%Õ	%ñ(
r(   c                ó¾   € V P                   ! RRVRV/VB pV P                  VP                  4      p\        VVP                  VP
                  VP                  R7      # )aý  
is_longer (`torch.FloatTensor`, of shape `(batch_size, 1)`, *optional*):
    Whether the audio clip is longer than `max_length`. If `True`, a feature fusion will be enabled to enhance
    the features.

Examples:

```python
>>> from datasets import load_dataset
>>> from transformers import ClapAudioModelWithProjection, ClapProcessor

>>> model = ClapAudioModelWithProjection.from_pretrained("laion/clap-htsat-fused")
>>> processor = ClapProcessor.from_pretrained("laion/clap-htsat-fused")

>>> dataset = load_dataset("hf-internal-testing/ashraq-esc50-1-dog-example")
>>> audio_sample = dataset["train"]["audio"][0]["array"]

>>> inputs = processor(audio=audio_sample, return_tensors="pt")
>>> outputs = model(**inputs)
>>> audio_embeds = outputs.audio_embeds
```r  rû  )rb   rN   rO   r    rU   )r  r  r  r`   rN   rO   r    )rt   r  rû  rW  r"  rb   s   &&&,  r&   r¢   Ú$ClapAudioModelWithProjection.forward¤  sq   € ð: 59×4DÒ4Dñ 5
Ø)ð5
àð5
ð ñ5
ˆð ×,Ñ,¨]×-HÑ-HÓIˆä#Ø%Ø+×=Ñ=Ø$×/Ñ/Ø'×5Ñ5ô	
ð 	
r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r   r�   )r>   rS   s   "€r&   r?   rE  ”  s   ø‡ ‚ áÑò r(   )r  r  rì  )rV   rW   rX   rY   rí  rÖ  r‹   rã  r   r   r¢   r[   r\   r]   r¥   r¦   s   @@r&   rC  rC  ”  sN   ù‡ € ð '€OØÐ÷ó ÷?ð ?ð Ø÷(
ñ (
ó ó ð(
÷% … r(   rC  rn  )rÇ  r¸  rï  r3  rÚ  rC  )YrZ   rß   rÿ   Úcollections.abcr   Údataclassesr   Útypingr   r<   Útorch.nn.functionalr   rE   r  Ú r   rÂ  Úactivationsr   Úmasking_utilsr   Úmodeling_layersr	   Úmodeling_outputsr
   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úconfiguration_clapr   r   r   Ú
get_loggerrV   Úloggerr'   r4   r6   rH   rK   r`   re   rS  r}   r¨   rÕ   r  r-  r:  rL  rU  rp  r²  rÈ  rÙ  r  r"  rZ  r\  rn  r{  r…  rŽ  r–  r£  r­  r¸  rÚ  rï  rÇ  r3  rC  Ú__all__rU   r(   r&   Ú<module>rb     s*  ðñ ã Û Ý $Ý !Ý ã ß Ð Ý å &Ý !Ý 6Ý 9÷÷ GÝ &Ý 6ß j× jÝ 7Ý 5ß KÑ Kð 
×	Ò	˜HÓ	%€òò"ò*õ*7ñ
 ðôð
 ô	<˜+ó 	<ó óð	<ñ ðôð
 ô	<˜;ó 	<ó óð	<ð Ø
ô_�ó _ó ó ð_ôB%˜Ÿ	™	ô %ôP_˜"Ÿ)™)ô _ôFZ'˜RŸY™Yô Z'ô|
˜"Ÿ)™)ô 
ô˜Ÿ™ô ô&˜BŸI™Iô ô 	�b—i‘iô 	ô%�2—9‘9ô %ô2t�R—Y‘Yô tôp4Ð/ô 4ôp%˜BŸI™Iô %ôPv
�r—y‘yô v
ôr˜"Ÿ)™)ô ô&c8˜Ÿ™ô c8÷N%ô.3)˜BŸI™Iô 3)ôn˜Ÿ™ô ô˜Ÿ	™	ô ô.˜2Ÿ9™9ô ô �R—Y‘Yô ôÐ.ô ôD
�b—i‘iô 
ô4�R—Y‘Yô ð ô`˜/ó `ó ð`ô@/
Ð(ô /
ñd ðôôR
Ð'ó R
óðR
ðj ô{
Ð#ó {
ó ð{
ð| ô:
Ð"5ó :
ó ð:
ðz ô9
Ð#6ó 9
ó ð9
òx‚r(   