+
    TV-jÀ-  ã                   ó  € ^ RI t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t
 ^ RIHt ^ RIHtHtHt ^RIHtHtHt ^RIHtHt ^RIHt ^R	IHt ] ! R
 R]4      4       tRR lt]! ]
P<                  RR7      RR R ll4       t ! R R]P@                  4      t! ! R R]P@                  4      t" ! R R]P@                  4      t# ! R R]P@                  4      t$ ! R R]P@                  4      t% ! R R]P@                  4      t&R# )é    N)Ú	dataclass)Úpartial)ÚAnyÚOptional)Úshard_inplaceÚshard_linearÚsum_gradients)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCache)Úinitialize_rope)Ú	SwitchGLUc                   óh   a € ] tR t^t o Rt^$t^€t^tRtRt	Rt
Rt^@t^@t^t^€tRtRtRtV 3R ltRtV tR# )	Ú	ModelArgsÚgpt_ossi€ gñhãˆµøä>i@  iðI Nc                óÎ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   Ú
model_typeÚnum_hidden_layersÚnum_local_expertsÚnum_experts_per_tokÚ
vocab_sizeÚrms_norm_epsÚhidden_sizeÚintermediate_sizeÚhead_dimÚnum_attention_headsÚnum_key_value_headsÚsliding_windowÚ
rope_thetaÚrope_scalingÚlayer_types)ÚstrÚintÚfloatr   Úlist)ÚformatÚ__classdict__s   "€Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/gpt_oss.pyÚ__annotate__ÚModelArgs.__annotate__   sÆ   ø‡ ‚ áÑñ ñ Ññ ñ Ñ ñ	 ñ
 Ñ ñ ñ Ññ ñ Ññ ñ Ññ ñ Ñ!ñ ñ Ññ ñ Ñ!ñ ñ Ñ ñ ñ Ññ ñ Ññ ñ Ññ ñ  Ñò! ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r*   s   @r+   r   r      s]   ø‡ € à€JØÐØ ÐØ ÐØ€JØ€LØ€KØ!ÐØ€HØ!ÐØ ÐØ€NØ€JØ€LØ€K÷! ƒ r.   r   c                ó†   € \         P                  ! W) VR7      pVRV) R13,          p\         P                  ! WVR7      pWT3# )zMLX equivalent of torch.topk)ÚkthÚaxis.N©r9   )ÚmxÚargpartitionÚtake_along_axis)ÚaÚkr9   Úpartitioned_indicesÚtop_k_indicesÚtop_k_valuess   &&&   r+   Úmlx_topkrC   &   sB   € äŸ/š/¨!°¸$Ô?Ðà'¨¨a¨R©S¨Õ1€Mä×%Ò% a¸TÔB€LØÐ&Ð&r.   T)Ú	shapelessc                ó0   € V ^8„  d   QhR\         R\         /# )r   ÚalphaÚlimit)r'   )r)   s   "r+   r,   r,   1   s   € ÷ 
$ñ 
$¤5ð 
$¼ñ 
$r.   c                 óÐ   € \         P                  ! VR VR7      p\         P                  ! W) VR7      p W!,          p\         P                  ! V4      pW,          pW`^,           ,          # )N)Úa_minÚa_max)r;   ÚclipÚsigmoid)Úx_linearÚx_glurF   rG   Ú
glu_scaledÚsigÚout_glus   &&&&   r+   ÚswiglurR   0   sQ   € ô �GŠG�E ¨UÔ3€EÜ�wŠw�x v°UÔ;€Hà•€JÜ
�*Š*�ZÓ
 €Cà�k€Gà •lÕ#Ð#r.   c                   ó8   a a€ ] tR t^>t oV 3R ltR tRtVtV ;t# )ÚSwiGLUc                ó$   <€ \         SV `  4        R # ©N)ÚsuperÚ__init__)ÚselfÚ	__class__s   &€r+   rX   ÚSwiGLU.__init__?   s   ø€ Ü‰ÑÖr.   c                ó   € \        W4      # rV   )rR   )rY   ÚxÚgates   &&&r+   Ú__call__ÚSwiGLU.__call__B   s   € Ü�a‹Ðr.   r/   ©	r0   r1   r2   r3   rX   r_   r5   r6   Ú__classcell__©rZ   r*   s   @@r+   rT   rT   >   s   ù‡ € õ÷ò r.   rT   c                   óT   a a€ ] tR t^Ft oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚAttentionBlockc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfig©r   )r)   r*   s   "€r+   r,   ÚAttentionBlock.__annotate__G   s   ø€ ÷ !
ñ !
™yñ !
r.   c                óî  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        VP                  VP                  ,          V n        \        P                  ! VP                  34      V n        \        P                  ! VP                  VP                  V P                  ,          R R7      V n        \        P                  ! VP                  VP                  V P                  ,          R R7      V n        \        P                  ! VP                  VP                  V P                  ,          R R7      V n        \        P                  ! V P                  VP                  ,          VP                  R R7      V n        ^\         P"                  ! VP                  4      ,          V n        \'        V P                  VP(                  RVP*                  R7      V n        R# )T©ÚbiasF)ÚtraditionalÚscaling_configN)rW   rX   r   r   r    Únum_key_value_groupsr;   ÚzerosÚsinksÚnnÚLinearr   Úq_projÚk_projÚv_projÚo_projÚmathÚsqrtÚsm_scaler   r"   r#   Úrope©rY   rh   rZ   s   &&€r+   rX   ÚAttentionBlock.__init__G   si  ø€ Ü‰ÑÔàŸ™ˆŒØ#)×#=Ñ#=ˆÔ Ø#)×#=Ñ#=ˆÔ à×&Ñ&¨&×*DÑ*DÕDð 	Ô!ô —X’X˜v×9Ñ9Ð;Ó<ˆŒ
ä—i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQUô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQUô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQUô
ˆŒô —i’iØ�M‰M˜F×6Ñ6Õ6¸×8JÑ8JÐQUô
ˆŒð œDŸIšI f§o¡oÓ6Õ6ˆŒä#Ø�M‰MØ×ÑØØ!×.Ñ.ô	
ˆŽ	r.   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©r   r]   ÚmaskÚreturn©r;   Úarray)r)   r*   s   "€r+   r,   rj   j   s3   ø€ ÷ Cñ C™"Ÿ(™(ð C©"¯(©(ð CÁ2Ç8Á8ñ Cr.   c           
     ó  € VP                   w  rEpV P                  pV P                  pV P                  V4      P	                  WERV4      P                  ^^4      p	V P                  V4      P	                  WERV4      P                  ^^4      p
V P                  V4      P	                  WERV4      P                  ^^4      pVeM   V P                  W“P                  R7      p	V P                  W£P                  R7      p
VP                  W«4      w  r«M"V P                  V	4      p	V P                  V
4      p
\        WšW³V P                  W P                  R7      pV P                  VP                  ^^4      P	                  WER4      4      # )é   )Úoffset)r�   rr   éÿÿÿÿ)Úshaper   r    ru   ÚreshapeÚswapaxesrv   rw   r|   r‡   Úupdate_and_fetchr   r{   rr   rx   )rY   r]   r�   ÚcacheÚBÚLÚ_ÚDÚHkÚqr?   ÚvÚv_hats   &&&&         r+   r_   ÚAttentionBlock.__call__j   s>  € Ø—'‘'‰ˆˆaØ�M‰MˆØ×%Ñ%ˆà�K‰K˜‹N×"Ñ" 1¨¨QÓ/×8Ñ8¸¸AÓ>ˆØ�K‰K˜‹N×"Ñ" 1¨¨QÓ/×8Ñ8¸¸AÓ>ˆØ�K‰K˜‹N×"Ñ" 1¨¨QÓ/×8Ñ8¸¸AÓ>ˆàÒØ—	‘	˜!§L¡L�	Ó1ˆAØ—	‘	˜!§L¡L�	Ó1ˆAØ×)Ñ)¨!Ó/‰DˆAˆqà—	‘	˜!“ˆAØ—	‘	˜!“ˆAä,Ø�!˜DŸM™M°¿J¹Jô
ˆð �{‰{˜5Ÿ>™>¨!¨QÓ/×7Ñ7¸¸bÓAÓBÐBr.   )r   rv   r   rp   r    rx   ru   r|   rr   r{   rw   rV   ra   rc   s   @@r+   re   re   F   s"   ù‡ € ÷!
ó !
÷FC÷ Cò Cr.   re   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# )ÚMLPBlockc                ó    <€ V ^8„  d   QhRS[ /# rg   ri   )r)   r*   s   "€r+   r,   ÚMLPBlock.__annotate__ƒ   s   ø€ ÷ #ñ #™yñ #r.   c                ór  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        \        VP                  VP                  VP                  \        4       R R7      V n        \        P                  ! VP                  VP                  R R7      V n        RV n        R# )T)Ú
input_dimsÚhidden_dimsÚnum_expertsÚ
activationrm   rl   N)rW   rX   r   r   r   r   r   rT   Úexpertsrs   rt   ÚrouterÚsharding_groupr}   s   &&€r+   rX   ÚMLPBlock.__init__ƒ   s’   ø€ Ü‰ÑÔà!×-Ñ-ˆÔØ!'×!9Ñ!9ˆÔØ#)×#=Ñ#=ˆÔ ä Ø×)Ñ)Ø×0Ñ0Ø×0Ñ0Ü“xØô
ˆŒô —i’i × 2Ñ 2°F×4LÑ4LÐSWÔXˆŒØ"ˆÖr.   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r]   r‚   rƒ   )r)   r*   s   "€r+   r,   rš   ”   s#   ø€ ÷ ñ ™"Ÿ(™(ð ¡r§x¡xñ r.   c                óÒ  € V P                   e   \        V P                   4      ! V4      pV P                  V4      p\        W P                  RR7      w  r4\
        P                  ! VRRR7      pV P                  W4      pV\
        P                  ! VRR7      ,          pVP                  RR7      pV P                   e+   \
        P                  P                  W`P                   R7      pV# )N)r?   r9   T)r9   Úpreciser:   ©Úgrouprˆ   éþÿÿÿ)r¢   r	   r¡   rC   r   r;   Úsoftmaxr    Úexpand_dimsÚsumÚdistributedÚall_sum)rY   r]   Úgr    ÚindicesÚexpert_weightsÚys   &&     r+   r_   ÚMLPBlock.__call__”   s¹   € Ø×ÑÒ*Ü˜d×1Ñ1Ô2°1Ó5ˆAà�K‰K˜‹NˆÜ# A×)AÑ)AÈÔKÑˆÜŸš G°"¸dÔCˆð �L‰L˜Ó$ˆà”—’˜~°BÔ7Õ7ˆà�E‰E�rˆE‹Nˆà×ÑÒ*Ü—‘×&Ñ& q×0CÑ0CÐ&ÓDˆAàˆr.   )r    r   r   r   r¡   r¢   ra   rc   s   @@r+   r˜   r˜   ‚   s   ù‡ € ÷#ó #÷"÷ ð r.   r˜   c                   óT   a a€ ] tR t^©t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚTransformerBlockc                ó    <€ V ^8„  d   QhRS[ /# rg   ri   )r)   r*   s   "€r+   r,   ÚTransformerBlock.__annotate__ª   s   ø€ ÷ 
ñ 
™yñ 
r.   c                ó$  <€ \         SV `  4        \        V4      V n        \	        V4      V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! VP                  VP                  4      V n        R # rV   )rW   rX   re   Ú	self_attnr˜   Úmlprs   ÚRMSNormr   r   Úinput_layernormÚpost_attention_layernormr}   s   &&€r+   rX   ÚTransformerBlock.__init__ª   sg   ø€ Ü‰ÑÔÜ'¨Ó/ˆŒÜ˜FÓ#ˆŒÜ!Ÿzšz¨&×*<Ñ*<¸f×>QÑ>QÓRˆÔÜ(*¯
ª
Ø×Ñ × 3Ñ 3ó)
ˆÖ%r.   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# r€   rƒ   )r)   r*   s   "€r+   r,   r·   ³   s.   ø€ ÷ 
ñ 
™"Ÿ(™(ð 
©"¯(©(ð 
Á2Ç8Á8ñ 
r.   c                ó¸   € TpV P                  V4      pV P                  WV4      pWA,           pTpV P                  V4      pV P                  V4      pWA,           pV# rV   )r¼   r¹   r½   rº   )rY   r]   r�   r�   Úresiduals   &&&& r+   r_   ÚTransformerBlock.__call__³   s\   € ØˆØ× Ñ  Ó#ˆØ�N‰N˜1 EÓ*ˆØ�LˆàˆØ×)Ñ)¨!Ó,ˆØ�H‰H�Q‹KˆØ�LˆØˆr.   )r¼   rº   r½   r¹   rV   ra   rc   s   @@r+   rµ   rµ   ©   s   ù‡ € ÷
ó 
÷
÷ 
ò 
r.   rµ   c                   óT   a a€ ] tR t^Àt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚGptOssMoeModelc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargsri   )r)   r*   s   "€r+   r,   ÚGptOssMoeModel.__annotate__Á   s   ø€ ÷ ?ñ ?™Yñ ?r.   c                ó`  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  4      V n	        VP                  ;'       g    R R.VP                  ^,          ,          V n
        \        VP                  4       Uu. uF  p\        V4      NK  	  upV n        VP                  V n        V P                  P#                  R 4      V n        V P                  P#                  R4      V n        R# u upi )Úsliding_attentionÚfull_attentionN)rW   rX   rs   Ú	Embeddingr   r   Úembed_tokensr»   r   Únormr$   r   Úrangerµ   Úlayersr!   Úwindow_sizeÚindexÚswa_idxÚga_idx)rY   rÇ   r�   rZ   s   && €r+   rX   ÚGptOssMoeModel.__init__Á   sò   ø€ Ü‰ÑÔÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔÜ—J’J˜t×/Ñ/°×1BÑ1BÓCˆŒ	Ø×+Ñ+÷ *ð *ØØð0
ð ×#Ñ# qÕ(õ0*ˆÔô 8=¸T×=SÑ=SÔ7TÓUÑ7T°!Ô'¨Ö-Ñ7TÑUˆŒØ×.Ñ.ˆÔØ×'Ñ'×-Ñ-Ð.AÓBˆŒØ×&Ñ&×,Ñ,Ð-=Ó>ˆŽùò Vs   Â<D+c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# )r   ÚinputsÚinput_embeddings)r;   r„   r   )r)   r*   s   "€r+   r,   rÈ   Î   s,   ø€ ÷ ñ á—‘ðñ #¡2§8¡8Õ,ñ	r.   c                óž  € Ve   TpMV P                  V4      pVf   R .\        V P                  4      ,          p\        WBV P                  ,          4      p\        WBV P
                  ,          V P                  R7      p\        V P                  W P                  4       F  w  rxp	V	R8X  d   TMTp
V! WJV4      pK  	  V P                  V4      pV# )N)rÑ   rË   )
rÍ   ÚlenrÐ   r   rÔ   rÓ   rÑ   Úzipr$   rÎ   )rY   r×   r�   rØ   r]   Ú	full_maskÚswa_maskÚlayerÚcÚ
layer_typer�   s   &&&&       r+   r_   ÚGptOssMoeModel.__call__Î   s¼   € ð Ò'Ø ‰Aà×!Ñ! &Ó)ˆAàŠ=Ø�FœS §¡Ó-Õ-ˆEä)¨!°4·;±;Õ-?Ó@ˆ	Ü(Ø�T—\‘\Õ"°×0@Ñ0@ô
ˆô %(¨¯©°U×<LÑ<LÖ$MÑ ˆE�jØ *Ð.>Ô >‘9ÀHˆDÙ�a˜qÓ!ŠAñ %Nð �I‰I�a‹LˆØˆr.   )rÍ   rÔ   r$   rÐ   rÎ   rÓ   rÑ   )NNra   rc   s   @@r+   rÄ   rÄ   À   s   ù‡ € ÷?ó ?÷÷ ò r.   rÄ   c                   ó–   a a€ ] tR t^èt oV3R lV 3R lltRV3R lR lltR tRV3R lR llt]R 4       t	]R	 4       t
R
 tRtVtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# rÆ   ri   )r)   r*   s   "€r+   r,   ÚModel.__annotate__é   s   ø€ ÷ Pñ P™Yñ Pr.   c                óÖ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        \        P                  ! VP                  VP                  R R7      V n
        R# )Frl   N)rW   rX   rÇ   r   rÄ   Úmodelrs   rt   r   r   Úlm_head)rY   rÇ   rZ   s   &&€r+   rX   ÚModel.__init__é   sH   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ# DÓ)ˆŒ
Ü—y’y ×!1Ñ!1°4·?±?ÈÔOˆŽr.   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r×   rƒ   )r)   r*   s   "€r+   r,   rå   ð   s   ø€ ÷ 7ñ 7™rŸx™xñ 7r.   c                óB   € V P                  V P                  W4      4      # rV   )rè   rç   )rY   r×   r�   s   &&&r+   r_   ÚModel.__call__ð   s   € Ø�|‰|˜DŸJ™J vÓ5Ó6Ð6r.   c                óŠ  € \         ;QJ d*    R  VP                  4        4       F  '       g   K   RM	  RM! R  VP                  4        4       4      '       d   V# / pVP                  4        EFÓ  w  r4RV9   dÈ   RV9  dÁ   RV9   dA   VP                  \        P
                  4      P                  R4      pVP                  RR4      pRV9   d   VP                  RR4      p\        P                  ! VR,          4      W#P                  RR	4      &   \        P                  ! VR,          4      W#P                  RR
4      &   KÔ  RV9   do   RV9  dh   RV9   dA   VP                  \        P
                  4      P                  R4      pVP                  RR4      pRV9   d   VP                  RR4      pWBV&   EKI  RV9   db   \        P                  ! VR,          4      W#P                  RR4      &   \        P                  ! VR,          4      W#P                  RR4      &   EK±  RV9   d   WBVP                  RR4      &   EKÏ  WBV&   EKÖ  	  V# )c              3   ó,   "  € T F
  pR V9   x € K  	  R# 5i)zgate_proj.weightNr/   )Ú.0r?   s   & r+   Ú	<genexpr>Ú!Model.sanitize.<locals>.<genexpr>ô   s   é € Ð?±¨1Ð! QÖ&³ùs   ‚TFÚgate_up_projrm   Ú_blocksz.weightÚ_scalesz.scalesÚ	gate_projÚup_projÚ	down_projÚgate_up_proj_biaszgate_proj.biaszup_proj.biasÚdown_proj_biaszdown_proj.biasr©   ).ºNNr   ºNNN).ºr†   Nr   rû   ).rú   ).rü   )	ÚanyÚkeysÚitemsÚviewr;   Úuint32ÚflattenÚreplaceÚ
contiguous)rY   ÚweightsÚnew_weightsr?   r”   s   &&   r+   ÚsanitizeÚModel.sanitizeó   sÔ  € ß‹3Ñ?°·±´Ó?�3�3Š3Ñ?°·±´Ó?×?Ò?ØˆNàˆØ—M‘M—O‰DˆAØ Ô" v°Q¤Ø ”>ØŸ™œrŸy™yÓ)×1Ñ1°"Ó5�AØŸ	™	 )¨YÓ7�AØ ”>ØŸ	™	 )¨YÓ7�AÜFHÇmÂmØ�k•NóG�ŸI™I n°kÓBÑCô EGÇMÂMØ�l•OóE�ŸI™I n°iÓ@ÓAð  Ô! f°A¤oØ ”>ØŸ™œrŸy™yÓ)×1Ñ1°"Ó5�AØŸ	™	 )¨YÓ7�AØ ”>ØŸ	™	 )¨YÓ7�AØ!"˜A”Ø$¨Ô)ä—M’M ! H¥+Ó.ð ŸI™IÐ&9Ð;KÓLÑMô —M’M ! I¥,Ó/ð ŸI™IÐ&9¸>ÓJÔKð " QÔ&ØMN˜AŸI™IÐ&6Ð8HÓIÔJà!"˜A”ñ= $ð@ Ðr.   c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )r   r¨   )r   r;   r­   ÚGroup)r)   r*   s   "€r+   r,   rå     s#   ø€ ÷ '-ñ '-™8¡B§N¡N×$8Ñ$8Õ9ñ '-r.   c                óÈ  € T;'       g    \         P                  P                  4       pVP                  4       pVP	                  4       pV P
                  P                   EF~  p\        VP                  P                  R VR7      VP                  n	        \        VP                  P                  R VR7      VP                  n
        \        VP                  P                  R VR7      VP                  n        \        VP                  P                  RVR7      VP                  n        VP                  ;P                  V,          un        VP                  ;P                  V,          un        VP                  P                  VP                  P                  ,          VP                  n        VP                  P                   VP                  P                  V,          VP                  P                  V^,           ,           VP                  n        \#        VP$                  P&                  P(                  R VR7       \#        VP$                  P&                  P*                  RVR7       VP$                  P&                  P*                  ;P,                  V,          un        \#        VP$                  P&                  P.                  R VR7       WP$                  n        EK�  	  R# )zall-to-sharded)Úshardingr¨   zsharded-to-allr§   N)r;   r­   ÚinitÚsizeÚrankrç   rÐ   r   r¹   ru   rv   rw   rx   r   r    rp   rr   r   rº   r    rõ   r÷   rm   rö   r¢   )rY   r¨   ÚNÚRrÞ   s   &&   r+   ÚshardÚModel.shard  s  € Ø×.Ð.œŸ™×,Ñ,Ó.ˆØ�J‰J‹LˆØ�J‰J‹Lˆà—Z‘Z×&Õ&ˆEÜ%1Ø—‘×&Ñ&Ð1AÈô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð1AÈô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð1AÈô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð1AÈô&ˆE�O‰OÔ"ð �O‰O×/Ò/°AÕ5Õ/Ø�O‰O×/Ò/°AÕ5Õ/à—‘×3Ñ3Ø—?‘?×6Ñ6õ7ð �O‰OÔ0ð
 %*§O¡O×$9Ñ$9Ø—‘×3Ñ3ØõØ—o‘o×9Ñ9Ø�q•5õð%ˆE�O‰OÔ!ô ˜%Ÿ)™)×+Ñ+×5Ñ5Ð7GÈuÕUÜ˜%Ÿ)™)×+Ñ+×5Ñ5Ð7GÈuÕUØ�I‰I×Ñ×'Ñ'×,Ò,°Õ1Õ,ÜØ—	‘	×!Ñ!×)Ñ)Ð4DÈEõð (-�I‰I×$óE 'r.   c                ó.   € V P                   P                  # rV   )rç   rÐ   )rY   s   &r+   rÐ   ÚModel.layersC  s   € à�z‰z× Ñ Ð r.   c                ó   € R  pV# )c                 ó@   € V P                  R 4      '       d   R^@R^/# R# )r¡   Ú
group_sizeÚbitsT)Úendswith)Úpathr�   s   &&r+   Ú	predicateÚ(Model.quant_predicate.<locals>.predicateI  s#   € Ø�}‰}˜X×&Ò&Ø$ b¨&°!Ð4Ð4Ùr.   r/   )rY   r  s   & r+   Úquant_predicateÚModel.quant_predicateG  s   € ò	ð
 Ðr.   c                óæ   € . pV P                   P                   FT  pVR 8X  d   VP                  \        4       4       K%  VP                  \	        V P
                  P                  R7      4       KV  	  V# )rË   )Úmax_size)rç   r$   Úappendr   r   rÇ   r!   )rY   ÚcachesÚlts   &  r+   Ú
make_cacheÚModel.make_cacheP  sT   € ØˆØ—*‘*×(Ô(ˆBØÐ%Ô%Ø—‘œg›iÖ(à—‘œo°t·y±y×7OÑ7OÔPÖQñ	 )ð
 ˆr.   )rÇ   rè   rç   r   rV   )r0   r1   r2   r3   rX   r_   r  r  ÚpropertyrÐ   r  r%  r5   r6   rb   rc   s   @@r+   rã   rã   è   s^   ù‡ € ÷Pó P÷7ò 7ò%÷N'-ò '-ðR ñ!ó ð!ð ñó ð÷ò r.   rã   )rˆ   )g¬Zd;û?g      @)'ry   Údataclassesr   Ú	functoolsr   Útypingr   r   Úmlx.coreÚcorer;   Úmlx.nnrs   Úmlx.nn.layers.distributedr   r   r	   Úbaser
   r   r   r�   r   r   Ú
rope_utilsr   Úswitch_layersr   r   rC   ÚcompilerR   ÚModulerT   re   r˜   rµ   rÄ   rã   r/   r.   r+   Ú<module>r4     sÔ   ðó Ý !Ý ß  å Ý ß PÑ Pç TÑ Tß +Ý 'Ý $ð ô�ó ó ðô&'ñ 	ˆ�‰˜tÔ$ö
$ó %ð
$ôˆR�Y‰Yô ô9C�R—Y‘Yô 9Côx$ˆr�y‰yô $ôN�r—y‘yô ô.%�R—Y‘Yô %ôPoˆB�I‰Iö or.   