+
    UV-jj4  ã                   óÔ  € ^ RI HtHtHtHt ^ RIHt ^ RIH	t	 ^RI
Ht ^RIHt RtR R ltR"R R	 lltR
 R ltR t ! R R]	P&                  4      t ! R R]	P&                  4      tR tR tR tR R lt ! R R]	P&                  4      t ! R R]	P&                  4      t ! R R]	P&                  4      t ! R R]	P&                  4      tR#R R llt ! R  R!]	P&                  4      tR# )$é    )ÚListÚOptionalÚSequenceÚTupleN)Úbicubic_interpolate©ÚVisionConfiggñhãˆµøä>c                ó\   € V ^8„  d   QhR\         \        \        \        3,          ,          /# ©é   Úreturn©r   r   Úint)Úformats   "Úu/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/models/locateanything/vision.pyÚ__annotate__r      s#   € ÷ Dñ Dœt¤E¬#¬s¨(¥OÕ4ñ Dó    c                 ó¼   € \        V R 4      '       d   V P                  4       MT pV Uu. uF'  p\        V^ ,          4      \        V^,          4      3NK)  	  up# u upi )Útolist)Úhasattrr   r   )Úgrid_hwsÚ
raw_shapesÚshapes   &  r   Ú_as_hw_shapesr      sI   € Ü&-¨h¸×&AÒ&A�—‘Ô"Àx€JÙ8BÓC¹
¨uŒS��q•‹]œC  a¥›MÓ*¹
ÑCÐCùÒCs   ©-Ac                ó\   € V ^8„  d   QhR\         \        \        \        3,          ,          /# r   r   )r   s   "r   r   r      s#   € ÷ Oñ O´d¼5ÄÄcÀ½?Õ6Kñ Or   c                 ó,   € \        Ve   V4      # T 4      # ©N)r   )r   Úgrid_shapess   &&r   Ú_resolve_hw_shapesr      s   € Ü¨Ò(?˜ÓNÐNÀXÓNÐNr   c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )r   Ú
cu_seqlensÚ
seq_lengthr   )ÚmxÚarrayr   )r   s   "r   r   r      s)   € ÷ 2ñ 2¬"¯(©(ð 2Äð 2ÌÏÉñ 2r   c                 ó¦   € \         P                  ! V4      p\         P                  ! VR,          V R,          8¬  ^ R7      pVR,          VR,          8H  # )N©Úaxis)NºNNN):é   NNN)r(   N)r#   ÚarangeÚsum)r!   r"   ÚposÚblock_ids   &&  r   Úmake_block_attention_maskr.      sC   € Ü
�)Š)�JÓ
€CÜ�vŠv�c˜'•l j°Õ&:Ñ:ÀÔC€HØ�GÕ ¨Õ 1Ñ1Ð1r   c                 ót   € V P                   p\        V4      ^8w  d   R# Vw  r#rEW#8¼  d   W$8¼  d	   W48X  d   R# R# )é   FT)r   Úlen)Úarrr   Úout_channelsÚkHÚKWÚ_s   &     r   Úcheck_array_shaper7      s8   € Ø�I‰I€Eä
ˆ5ƒz�Q„Ùà#Ñ€L�bàÔ Ô!3¸"¼(Ùár   c                   ój   a a€ ] tR t^)t oRV3R lV 3R llltV3R lR ltR	V3R lR lltRtVtV ;t	# )
ÚLearnable2DInterpPosEmbc          
      ó6   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RR/# )r   ÚheightÚwidthÚdimÚinterpolation_moder   N)r   Ústr)r   Ú__classdict__s   "€r   r   Ú$Learnable2DInterpPosEmb.__annotate__*   s5   ø€ ÷ 4ñ 4Ùð4Ù"%ð4Ù,/ð4ÙEHð4à	ñ4r   c                ó‚   <€ \         SV `  4        Wn        W n        W@n        \
        P                  ! WV34      V n        R # r   )ÚsuperÚ__init__r;   r<   r>   r#   ÚonesÚweight)Úselfr;   r<   r=   r>   Ú	__class__s   &&&&&€r   rD   Ú Learnable2DInterpPosEmb.__init__*   s5   ø€ ô 	‰ÑÔØŒØŒ
Ø"4ÔÜ—g’g˜v¨cÐ2Ó3ˆŽr   c                óP   <€ V ^8„  d   QhRS[ S[S[3,          RS[P                  /# )r   r   r   )r   r   r#   r$   )r   r@   s   "€r   r   rA   3   s'   ø€ ÷ 
ñ 
¡%©©S¨¥/ð 
±b·h±hñ 
r   c           	     óP  € WP                   P                  R R 8X  d   V P                   P                  ^R7      # \        \        P
                  ! V P                   P                  ^^ ^4      ^ R7      VR7      P                  ^ 4      P                  ^^^ 4      P                  ^R7      # )N)Úend_axisr&   )Úsizeéÿÿÿÿ)rF   r   Úflattenr   r#   Úexpand_dimsÚ	transposeÚsqueeze)rG   r   s   &&r   Ú_get_pos_embÚ$Learnable2DInterpPosEmb._get_pos_emb3   s‰   € Ø—K‘K×%Ñ% c rÐ*Ô*Ø—;‘;×&Ñ&°Ð&Ó2Ð2ô  Ü—’˜tŸ{™{×4Ñ4°Q¸¸1Ó=ÀAÔFØô÷ ‰W�Q‹Zß‰Y�q˜!˜QÓß‰W˜aˆWÓ ð	
r   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Úxr   r   ©r#   r$   )r   r@   s   "€r   r   rA   A   s.   ø€ ÷ ñ ™"Ÿ(™(ð ©b¯h©hð ÉRÏXÉXñ r   c                óÔ   € \        W#4      pV Uu. uF  qPP                  V4      NK  	  ppV\        P                  ! V^ R7      P	                  VP
                  4      ,           pV# u upi )r   r&   )r   rS   r#   ÚconcatenateÚastypeÚdtype)rG   rV   r   r   Úshapesr   Úpos_embsÚouts   &&&&    r   Ú__call__Ú Learnable2DInterpPosEmb.__call__A   sX   € Ü# HÓ:ˆÙ:@ÓA¹&°×%Ñ% eÖ,¹&ˆÐAØ”"—.’. °Ô2×9Ñ9¸!¿'¹'ÓBÕBˆØˆ
ùò Bs   �A%)r;   r>   rF   r<   )Úbicubicr   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rD   rS   r_   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rH   r@   s   @@r   r9   r9   )   s(   ù‡ € ÷4õ 4÷
ð 
÷÷ ò r   r9   c                   óX   a a€ ] tR t^Ht oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )Ú
PatchEmbedc                ó<   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[ RR/# )r   Ú
patch_sizeÚnum_channelsÚ	embed_dimÚinit_pos_emb_heightÚinit_pos_emb_widthr   N©r   )r   r@   s   "€r   r   ÚPatchEmbed.__annotate__I   sG   ø€ ÷ 
ñ 
áð
ñ ð
ñ ð	
ñ
 !ð
ñ  ð
ð 
ñ
r   c                ó¬   <€ \         SV `  4        Wn        W n        W0n        \
        P                  ! VVVVR R7      V n        \        WEVR7      V n	        R# )T)Úkernel_sizeÚstrideÚbias)r;   r<   r=   N)
rC   rD   rm   rn   ro   ÚnnÚConv2dÚprojr9   Úpos_emb)rG   rm   rn   ro   rp   rq   rH   s   &&&&&&€r   rD   ÚPatchEmbed.__init__I   sR   ø€ ô 	‰ÑÔØ$ŒØ(ÔØ"Œä—I’IØØØ"ØØô
ˆŒ	ô /Ø&Àiô
ˆŽr   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r   Úhidden_statesÚgrid_thwr   rW   )r   r@   s   "€r   r   rs   a   s1   ø€ ÷ ñ ÙŸX™XðÙ13·±ðá	�‰ñr   c                ó´   € V P                  V4      P                  ^^4      pVP                  VP                  ^ ,          R4      pV P	                  WVR7      pV# )r)   ©r   rN   )rz   ÚswapaxesÚreshaper   r{   )rG   r~   r   r   s   &&&&r   r_   ÚPatchEmbed.__call__a   sT   € ð Ÿ	™	 -Ó0×9Ñ9¸!¸QÓ?ˆØ%×-Ñ-¨m×.AÑ.AÀ!Õ.DÀbÓIˆØŸ™ ]È+˜ÓVˆØÐr   )ro   rn   rm   r{   rz   )é   é   i€  é@   r‡   r   ©	rb   rc   rd   re   rD   r_   rf   rg   rh   ri   s   @@r   rk   rk   H   s   ù‡ € ÷
õ 
÷0÷ ò r   rk   c                 óú  € V P                   VP                   ^,           8X  g   Q V P                  VP                  34       hV P                  RR VP                  RR 8X  g   Q V P                  VP                  34       hV P                  R,          ^VP                  R,          ,          8X  g   Q V P                  VP                  34       hVP                  \        P                  8X  g   Q VP                  4       hR# )r)   NéþÿÿÿrN   )Úndimr   r[   r#   Ú	complex64)rV   Ú	freqs_ciss   &&r   Ú_apply_rope_input_validationrŽ   j   s¹   € Ø�6‰6�Y—^‘^ aÕ'Ô'ÐC¨!¯'©'°9·?±?Ð)CÓCÐ'Ø�7‰7�3�Bˆ<˜9Ÿ?™?¨3¨BÐ/Ô/ÐK°!·'±'¸9¿?¹?Ð1KÓKÐ/Ø�7‰7�2�;˜!˜iŸo™o¨bÕ1Õ1Ô1ÐM°A·G±G¸Y¿_¹_Ð3MÓMÐ1Ø�?‰?œbŸl™lÔ*Ð;¨I¯O©OÓ;Ò*r   c                 óD   € V R,          V R,          r!VRV,          ,           # ).ù              ð?).r   ).r)   © ©rV   ÚrealÚimags   &  r   Úview_as_complexr•   q   s    € Ø�6•˜A˜f�Iˆ$Ø�"�t•)ÕÐr   c                 óŒ   € \         P                  ! V 4      p\         P                  ! V 4      p\         P                  ! W.RR7      # )r)   r&   rN   )r#   r“   r”   Ústackr’   s   &  r   Úview_as_realr˜   v   s/   € Ü�7Š7�1‹:€DÜ�7Š7�1‹:€DÜ�8Š8�T�L rÔ*Ð*r   c          
      óÎ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  \         P                  3,          /# )r   ÚqÚkr�   r   )r#   r$   Útuple)r   s   "r   r   r   |   sJ   € ÷ 8ñ 8Ü	‡x�xð8Ü—H‘Hð8Ü)+¯©ð8ä
Œ2�8‰8”R—X‘XÐÕñ8r   c                 ór  € \        W4       \        W4       \        P                  ! VRR7      p\        V P	                  \        P
                  4      P                  ! . V P                  RR ORN^N5!  4      p\        VP	                  \        P
                  4      P                  ! . VP                  RR ORN^N5!  4      p\        W2,          4      P                  R4      p\        WB,          4      P                  R4      pVP	                  V P                  4      VP	                  VP                  4      3# )r   r&   NrŠ   rN   )rŽ   r#   rP   r•   rZ   Úfloat32rƒ   r   r˜   rO   r[   )rš   r›   r�   Úq_Úk_Úq_outÚk_outs   &&&    r   Ú
apply_roper£   |   sé   € ô ! Ô.Ü  Ô.ä—’˜y¨rÔ2€IÜ	˜Ÿ™¤"§*¡*Ó-×5Ò5ÐK°q·w±w¸sÀ°|ÐKÀRÐKÈÓKÓ	L€BÜ	˜Ÿ™¤"§*¡*Ó-×5Ò5ÐK°q·w±w¸sÀ°|ÐKÀRÐKÈÓKÓ	L€BÜ˜�Ó(×0Ñ0°Ó4€EÜ˜�Ó(×0Ñ0°Ó4€EØ�<‰<˜Ÿ™Ó  %§,¡,¨q¯w©wÓ"7Ð7Ð7r   c                   óX   a a€ ] tR t^Št oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )Ú	Attentionc                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r   r=   Ú	num_headsr   Nrr   )r   r@   s   "€r   r   ÚAttention.__annotate__‹   s"   ø€ ÷ 1ñ 1™Cð 1©Cð 1¸ñ 1r   c                óì   <€ \         SV `  4        W n        W,          ;V n        pVR,          V n        \
        P                  ! W^,          RR7      V n        \
        P                  ! WRR7      V n        R# )g      à?T)rw   Ng      à¿)	rC   rD   r§   Úhead_dimÚscalerx   ÚLinearÚwqkvÚwo)rG   r=   r§   rª   rH   s   &&& €r   rD   ÚAttention.__init__‹   sU   ø€ Ü‰ÑÔØ"ŒØ#&Õ#3Ð3ˆŒ˜Ø˜t•^ˆŒ
Ü—I’I˜c¨¥7°Ô6ˆŒ	Ü—)’)˜C¨4Ô0ˆŽr   c          
      ó¼   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[ P                  RS[S[ P                  ,          RS[ P                  /# )r   rV   r!   Úrotary_pos_embÚattention_maskr   )r#   r$   r   )r   r@   s   "€r   r   r¨   “   s[   ø€ ÷ "$ñ "$á�8‰8ð"$ñ ™RŸX™XÕ&ð"$ñ Ÿ™ð	"$ñ
 !¡§¡Õ*ð"$ñ 
�‰ñ"$r   c                óF  € VP                   ^ ,          pV P                  V4      P                  V^V P                  V P                  4      P                  ^^ ^^4      p\        P                  ! V^4      w  rxp	VP                  ^ 4      pVP                  ^ 4      pV	P                  ^ 4      p	\        WxV4      w  rxVf   Vf   \        R4      hVf$   VP                   ^ ,          ^8”  d   \        W%4      pVP                  ^^ ^4      R,          pVP                  ^^ ^4      R,          pV	P                  ^^ ^4      R,          p	\        P                  P                  WxW�P                  VR7      p
V
P                  ^ ^^^4      p
V
P                  VR4      p
V P                  V
4      # )r   z5Either attention_mask or cu_seqlens must be provided.)r«   Úmask)N.rN   )r   r­   rƒ   r§   rª   rQ   r#   ÚsplitrR   r£   Ú
ValueErrorr.   ÚfastÚscaled_dot_product_attentionr«   r®   )rG   rV   r!   r±   r²   r"   Úqkvrš   r›   ÚvÚattn_outputs   &&&&&      r   r_   ÚAttention.__call__“   so  € ð —W‘W˜Q•Zˆ
à�I‰I�a‹Lß‰W�Z  D§N¡N°D·M±MÓBß‰Y�q˜!˜Q Ó"ð 	ô
 —(’(˜3 Ó"‰ˆˆaØ�I‰I�a‹LˆØ�I‰I�a‹LˆØ�I‰I�a‹Lˆä˜! Ó/‰ˆàÒ! jÒ&8ÜÐTÓUÐUØÒ! j×&6Ñ&6°qÕ&9¸AÔ&=Ü6°zÓNˆNà�K‰K˜˜1˜aÓ  Õ+ˆØ�K‰K˜˜1˜aÓ  Õ+ˆØ�K‰K˜˜1˜aÓ  Õ+ˆä—g‘g×:Ñ:Ø�!Ÿ:™:¨Nð ;ó 
ˆð "×+Ñ+¨A¨q°!°QÓ7ˆØ!×)Ñ)¨*°bÓ9ˆØ�w‰w�{Ó#Ð#r   )rª   r§   r«   r®   r­   )é   )NNNrˆ   ri   s   @@r   r¥   r¥   Š   s   ù‡ € ÷1õ 1÷"$÷ "$ò "$r   r¥   c                   óD   a a€ ] tR t^¸t oV 3R ltV3R lR ltRtVtV ;t# )ÚMLPc                óÈ   <€ \         SV `  4        \        P                  ! R R7      V n        \        P
                  ! W4      V n        \        P
                  ! W!4      V n        R# )Úprecise)ÚapproxN)rC   rD   rx   ÚGELUÚactivation_fnr¬   Úfc0Úfc1)rG   r=   Ú
hidden_dimrH   s   &&&€r   rD   ÚMLP.__init__¹   s?   ø€ Ü‰ÑÔÜŸWšW¨IÔ6ˆÔÜ—9’9˜SÓ-ˆŒÜ—9’9˜ZÓ-ˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rV   r   rW   )r   r@   s   "€r   r   ÚMLP.__annotate__¿   s#   ø€ ÷ ñ ™"Ÿ(™(ð ¡r§x¡xñ r   c                óh   € V P                  V P                  V4      4      pV P                  V4      pV# r   ©rÄ   rÅ   rÆ   )rG   rV   s   &&r   r_   ÚMLP.__call__¿   s,   € Ø×Ñ˜tŸx™x¨›{Ó+ˆØ�H‰H�Q‹KˆØˆr   rÌ   rˆ   ri   s   @@r   r¿   r¿   ¸   s   ù‡ € õ.÷÷ ð r   r¿   c                   óP   a a€ ] tR t^Åt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚQwen2VLVisionBlockc                ó$   <€ V ^8„  d   QhRS[ RR/# ©r   Úconfigr   Nr   )r   r@   s   "€r   r   ÚQwen2VLVisionBlock.__annotate__Æ   s   ø€ ÷ Rñ R™|ð R°ñ Rr   c                óh  <€ \         SV `  4        \        P                  ! VP                  \
        R 7      V n        \        P                  ! VP                  \
        R 7      V n        \        VP                  VP                  R7      V n
        \        VP                  VP                  R7      V n        R# )©Úeps)r=   r§   )r=   rÇ   N)rC   rD   rx   Ú	LayerNormro   ÚLAYER_NORM_EPSÚnorm0Únorm1r¥   r§   Úattnr¿   Úintermediate_sizeÚmlp)rG   rÒ   rH   s   &&€r   rD   ÚQwen2VLVisionBlock.__init__Æ   sr   ø€ Ü‰ÑÔÜ—\’\ &×"2Ñ"2¼ÔGˆŒ
Ü—\’\ &×"2Ñ"2¼ÔGˆŒ
ä &×"2Ñ"2¸f×>NÑ>NÔOˆŒ	Ü˜6×+Ñ+¸×8PÑ8PÔQˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r²   r   rW   )r   r@   s   "€r   r   rÓ   Î   s%   ø€ ÷ 
ñ 
ÙIKÏÉð
á	�‰ñ
r   c                ó¦   € WP                  V P                  V4      VVVR 7      ,           pWP                  V P                  V4      4      ,           pV# )©r!   r±   r²   )rÛ   rÙ   rÝ   rÚ   )rG   r~   r!   r±   r²   s   &&&&&r   r_   ÚQwen2VLVisionBlock.__call__Î   sS   € ð &¯	©	Ø�J‰J�}Ó%Ø!Ø)Ø)ð	 )2ó )
õ 
ˆð &¯©°·±¸MÓ1JÓ(KÕKˆØÐr   )rÛ   rÝ   rÙ   rÚ   rˆ   ri   s   @@r   rÏ   rÏ   Å   s    ù‡ € ÷Ró R÷
÷ 
ð 
r   rÏ   c                   óp   a a€ ] tR t^Ût oR	V3R lV 3R llltR tV3R lR ltR
V3R lR lltRtVt	V ;t
# )ÚRope2DPosEmbc                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r   r=   Ú
max_heightÚ	max_widthrr   )r   r@   s   "€r   r   ÚRope2DPosEmb.__annotate__Ü   s"   ø€ ÷ %ñ %™Cð %©Sð %¹Sñ %r   c                ó’   <€ \         SV `  4        Wn        V P                  ^,          ^ 8X  g   Q R4       hW n        W0n        W@n        R# )r0   zdim must be divisible by 4N)rC   rD   r=   ræ   rç   Ú
theta_base)rG   r=   ræ   rç   rê   rH   s   &&&&&€r   rD   ÚRope2DPosEmb.__init__Ü   s>   ø€ Ü‰ÑÔØŒØ�x‰x˜!�|˜qÔ Ð>Ð">Ó>Ð Ø$ŒØ"ŒØ$Žr   c                ón   € R V P                    RV P                   RV P                   RV P                   2# )zdim=z, max_height=z, max_width=z, theta_base=©r=   ræ   rç   rê   )rG   s   &r   Ú
extra_reprÚRope2DPosEmb.extra_reprä   s8   € Ø�d—h‘h�Z˜}¨T¯_©_Ð,=¸\È$Ï.É.ÐIYÐYfÐgk×gvÑgvÐfwÐxÐxr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r   rW   )r   r@   s   "€r   r   rè   ç   s   ø€ ÷ ñ ¡r§x¡xñ r   c                óˆ  € V P                   V P                  ,          p\        P                  ! ^ V\        P                  R7      pW P                  ,          pW P                  ,          p\        P                  ! ^ V P
                  ^4      RV P
                  ^,           P                  \        P                  4      pRV P                  WPP
                  ,          ,          ,          p\        P                  ! W64      p\        P                  ! WF4      p\        P                  ! V4      R\        P                  ! V4      ,          ,           p	\        P                  ! V4      R\        P                  ! V4      ,          ,           p
\        P                  ! Wš.RR7      pVP                  V P                   V P                  R4      pV# )r   ©r[   Ng      ð?r�   r&   rN   )ræ   rç   r#   r*   rž   r=   rZ   rê   ÚouterÚcosÚsinr—   rƒ   )rG   ÚNÚflat_posÚx_posÚy_posÚ	dim_rangeÚfreqsÚx_freqsÚy_freqsÚx_cisÚy_cisr�   s   &           r   Ú_precompute_freqs_cisÚ"Rope2DPosEmb._precompute_freqs_cisç   s  € Ø�O‰O˜dŸn™nÕ,ˆÜ—9’9˜Q ¬¯©Ô4ˆØŸ>™>Õ)ˆØŸN™NÕ*ˆÜ—I’I˜a §¡¨1Ó-Ð.?°·±¸QµÐ@×GÑGÌÏ
É
ÓSˆ	Ø�t—‘¨9·x±xÕ+?Õ@ÕAˆÜ—(’(˜5Ó(ˆÜ—(’(˜5Ó(ˆä—’�w“ "¤r§v¢v¨g£Õ"6Õ6ˆÜ—’�w“ "¤r§v¢v¨g£Õ"6Õ6ˆä—H’H˜e˜^°"Ô5ˆ	à×%Ñ% d§o¡o°t·~±~ÀrÓJˆ	ØÐr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r   r   rW   )r   r@   s   "€r   r   rè   ù   s#   ø€ ÷ ñ ¡b§h¡hð ÁRÇXÁXñ r   c                óÂ  a € S P                  4       p\        W4      p\        ;QJ d    V 3R  lV 4       F  '       d   K   RM	  RM! V 3R  lV 4       4      '       g   Q VS P                  S P                  34       h. pV FD  w  rgVP                  VRV1RV13,          P                  RS P                  ^,          4      4       KF  	  \        P                  ! V^ R7      pV# )c              3   ó¸   <"  € T FO  w  r^Tu;8*  ;'       d    SP                   8*  Mu ;'       d!    ^Tu;8*  ;'       d    SP                  8*  Mu x € KQ  	  R# 5i)r)   N)ræ   rç   )Ú.0ÚhÚwrG   s   &  €r   Ú	<genexpr>Ú-Rope2DPosEmb.get_freqs_cis.<locals>.<genexpr>ü   sC   øé € ð 
ÙOUÁtÀqˆA�×%Ô%�d—o‘oÔ%×BÐB¨!¨q×*BÔ*B°D·N±NÔ*BÔBËvùs   ƒ-A±AÁ AFTNr&   rN   )
r   r   Úallræ   rç   Úappendrƒ   r=   r#   rY   )	rG   r   r   Úfreqs_cis_fullr\   Úfreqs_cis_listr  r  r�   s	   f&&      r   Úget_freqs_cisÚRope2DPosEmb.get_freqs_cisù   sÑ   ø€ Ø×3Ñ3Ó5ˆÜ# HÓ:ˆß‹sô 
ÙOUó
�s�sŠsô 
ÙOUó
÷ 
ò 
ð 	
ð Ø�O‰OØ�N‰Nð
ó	
ð 
ð ˆÛ‰DˆAØ×!Ñ! .°°!°°R°a°R°Õ"8×"@Ñ"@ÀÀTÇXÁXÐQRÅ]Ó"SÖTñ ô —N’N >¸Ô:ˆ	ØÐr   rí   )i'  r   )rb   rc   rd   re   rD   rî   r   r  rf   rg   rh   ri   s   @@r   rä   rä   Û   s.   ù‡ € ÷%õ %òy÷ð ÷$÷ ò r   rä   c          	      óà   € V ^8„  d   QhR\         P                  R\        \        \        \        3,          ,          R\
        \        \        3,          R\        \         P                  ,          /# )r   rV   r   Úmerge_kernel_sizer   )r#   r$   r   r   r   Úlistr   )r   s   "r   r   r     sQ   € ÷ ñ Ü	‡x�xðä”uœS¤#˜X•Õ'ðô œC¤˜H•~ðô
 
Œ"�(‰(…^ñr   c                 ó4  € V P                   R,          pVw  rV\        W4      pV UU	u. uF  w  r‰W‰,          NK  	  p
pp	. p^ pV
RR  F  pWÍ,          pVP                  V4       K  	  V'       d   \        P                  ! W^ R7      MV .p. p\        Wç4       Fw  w  pw  ppVV,          VV,          ppVP                  VVVWd4      p\        P                  ! VR4      pVP                  VV,          WV,          R4      pVP                  V4       Ky  	  V# u up	pi )r)   Nr&   rN   )r   r   r)   r†   r0   )r   r   r  r#   rµ   Úziprƒ   rQ   )rV   r   r  r   Úd_modelÚkernel_heightÚkernel_widthr\   r  r  ÚlengthsÚsplit_pointsÚrunningÚlengthÚ	sequencesÚoutputsÚseqr;   r<   Ú
new_heightÚ	new_widthÚreshaped_seqÚ
padded_seqs   &&&&                   r   Úpatch_mergerr#    s  € ð �g‰g�b�k€GØ"3Ñ€MÜ Ó6€Fá!'Ô(¡™˜ˆq�uˆu¡€GÑ(Ø€LØ€GØ˜#˜2“,ˆØÕˆØ×Ñ˜GÖ$ñ ÷ 6B”—’˜¨qÕ1ÈÀs€IØ€GÜ # IÖ 6Ñˆ‰_ˆf�eØ &¨-Õ 7¸À,Õ9N�Iˆ
Ø—{‘{Ø˜ y°,ó
ˆô —|’| L°/ÓBˆØ!×)Ñ)Ø˜Õ" MÕ$@À"ó
ˆ
ð 	�‰�zÖ"ñ !7ð €Nùó) )s   ¨Dc                   óZ   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tR tRtVtV ;t	# )	ÚVisionModeli-  c                ó$   <€ V ^8„  d   QhRS[ RR/# rÑ   r   )r   r@   s   "€r   r   ÚVisionModel.__annotate__/  s   ø€ ÷ =ñ =™|ð =°ñ =r   c                óš  <€ \         SV `  4        Wn        VP                  V n        V P                  R 8w  d   \	        RV P                   24      hVP
                  V n        VP                  V n        \        VP                  VP                  VP                  VP                  VP                  R7      V n        VP                  VP                  ,          p\        VP                   4       Uu. uF  p\#        V4      NK  	  upV n        \&        P(                  ! VP*                  \,        R7      V n        \1        VRR4      V n        R# u upi )ÚmoonvitzUnsupported model type: )rm   rn   ro   rp   rq   rÕ   i   N)rC   rD   rÒ   Ú
model_typer¶   Úspatial_merge_sizer  rk   rm   rn   ro   rp   rq   Úpatch_embedr§   ÚrangeÚdepthrÏ   Úblocksrx   r×   Úhidden_sizerØ   Úfinal_layernormrä   Úrope_pos_emb)rG   rÒ   rª   r6   rH   s   &&  €r   rD   ÚVisionModel.__init__/  s	  ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒØ�?‰?˜iÔ'ÜÐ7¸¿¹Ð7HÐIÓJÐJØ"(×";Ñ";ˆÔØ!'×!9Ñ!9ˆÔä%Ø×(Ñ(Ø×,Ñ,Ø×&Ñ&Ø &× :Ñ :Ø%×8Ñ8ô
ˆÔð ×#Ñ# v×'7Ñ'7Õ7ˆä;@ÀÇÁÔ;NÓOÑ;N°aÔ)¨&Ö1Ñ;NÑOˆŒÜ!Ÿ|š|¨F×,>Ñ,>ÄNÔSˆÔÜ(¨°3¸Ó<ˆÖùò Ps   Ã-Ec                óº   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[S[S[S[S[3,          ,          ,          RS[ P                  /# )r   r~   r   Úoutput_hidden_statesr   r   )r#   r$   r   Úboolr   r   r   )r   r@   s   "€r   r   r'  F  s_   ø€ ÷ 1ñ 1á—x‘xð1ñ —(‘(ð1ñ '¡t�nð	1ñ
 ™d¡5©©c¨¥?Õ3Õ4ð1ñ 
�‰ñ1r   c                ó¦  € V P                  WVR 7      pV P                  P                  W$R 7      p\        P                  ! \        P
                  ! RVP                  R7      VR,          VR,          ,          34      p\        P                  ! VP                  \        P                  4      ^ R7      pVP                  ^ ,          ^8”  d   \        WqP                  ^ ,          4      MRpV'       d   V3MRp	V P                   F"  p
V
! VVVVR7      pV'       g   K  W‘3,           p	K$  	  V P                  V4      p\        VVV P                  VR7      pV# )	r�   rò   r&   Nrá   )r  r   )r)   )r(   r   )r(   r)   )r,  r2  r  r#   rY   Úzerosr[   ÚcumsumrZ   Úint32r   r.   r/  r1  r#  r  )rG   r~   r   r5  r   r±   r  r!   r²   Úencoder_statesÚblks   &&&&&      r   r_   ÚVisionModel.__call__F  s@  € ð ×(Ñ(Ø°ð )ó 
ˆð ×*Ñ*×8Ñ8Øð 9ó 
ˆô —.’.ä—’˜ X§^¡^Ô4Ø˜• ¨$¥Õ/ðó
ˆô —Y’Y˜wŸ~™~¬b¯h©hÓ7¸aÔ@ˆ
ð �~‰~˜aÕ  1Ô$ô & j×2EÑ2EÀaÕ2HÔIàð 	÷ .B˜-Ñ)Àtˆà—;”;ˆCÙØØ%Ø-Ø-ô	ˆM÷ $Ñ#Ø!/Ð2BÕ!B’ñ ð ×,Ñ,¨]Ó;ˆä$ØØØ"×4Ñ4Ø#ô	
ˆð Ðr   c                óV  € / pVP                  4        F’  w  r4R V9   d   K  RV9   d0   \        V4      '       d   WBV&   K,  VP                  ^ ^^^4      W#&   KD  RV9   dD   RV9  d7   RV9   g   RV9   d)   VP                  RR4      P                  RR4      pWBV&   Kˆ  WBV&   KŽ  WBV&   K”  	  V# )Úposition_idszpatch_embed.proj.weightzvision_tower.blocksrÛ   r­   r®   z	attn.wqkvzattn.wo)Úitemsr7   rQ   Úreplace)rG   ÚweightsÚsanitized_weightsr›   rº   Únew_keys   &&    r   ÚsanitizeÚVisionModel.sanitizey  s°   € ØÐØ—M‘M–O‰DˆAØ Ô"ÙØ*¨aÔ/Ü$ Q×'Ò'Ø+, aÓ(à+,¯;©;°q¸!¸QÀÓ+BÐ%Ó(Ø&¨!Ô+Ø ”?¨°!¬°t¸q´yØŸi™i¨°Ó<×DÑDÀTÈ9ÓU�GØ12 gÓ.à+, aÓ(à'( !Ó$ñ $ð" !Ð r   )r/  rÒ   r1  r  r*  r,  r2  r+  )NN)
rb   rc   rd   re   rD   r_   rE  rf   rg   rh   ri   s   @@r   r%  r%  -  s$   ù‡ € ÷=ó =÷.1ò 1÷f!ò !r   r%  r   ))r   r   N) Útypingr   r   r   r   Úmlx.coreÚcorer#   Úmlx.nnrx   Úkernelsr   rÒ   r	   rØ   r   r   r.   r7   ÚModuler9   rk   rŽ   r•   r˜   r£   r¥   r¿   rÏ   rä   r#  r%  r‘   r   r   Ú<module>rM     sÁ   ðß 2Ó 2å Ý å )Ý  à€õD÷
Oõ2òô˜bŸi™iô ô>�—‘ô òD<òò
+õ8ô+$�—	‘	ô +$ô\
ˆ"�)‰)ô 
ô˜Ÿ™ô ô,.�2—9‘9ô .÷bôB_!�"—)‘)ö _!r   