+
    œ°³j®¯  ã                   ó>  a € Rb t_0 t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI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 ^R	IHtHt ^R
IHt ^RIHtHtHtHtH t H!t!H"t"H#t# ^RI$H%t% ]'       d   ^RI&H't' ^RI(H)t) ^RI*H+t+ ] ! 4       '       d   ^ RI,t,^ RI-H.t. ]P^                  ! ]04      t1R] R] R] R2t2]Pf                  Pi                  RR4      Pk                  4       t6]6]9   t7RRRRRRRRRRRRR RR!R"R#R"/	t8R$R%/t9]! 4       '       dW   ^ R&I:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtB ^ R'I:HCtD ^ R(I:HEtF ^ R)I:HGtH ^ R*I:HItJ R+ R, ltGR- R. ltIR/ R0 ltKRsL] ^ k R1 R2 ltMR3 R4 ltNRcR5 ltOM2R6t7R7 tGR8 tIR9 tK ! R: R;4      t= ! R< R=4      t> ! R> R?4      tPR@ tARA t@RB tORCRDRERF^/RGRDRHRF^/RIRDRJRKRL/RMRDRNRF^//tQ] ^k ^^^^ /tR] ^k ^tS/ tT] ^k RO RP ltURQ RR ltVRdRS RT lltW]T3RU RV lltXRcRW RX lltEReRY RZ lltCRcR[ R\ lltYR6sZ]
R] 4       t[R^ R_ lt\R` Ra lt]. RfOt^R# )gé    N©ÚCallable)Úcontextmanager)ÚPath)Ú
ModuleType)ÚTYPE_CHECKING)Ú!get_checkpoint_conversion_mappingÚ&register_checkpoint_conversion_mapping)Úregister_patch_mapping)ÚENV_VARS_TRUE_VALUESÚlogging)Úis_flash_attention_requested)ÚKERNELS_MAX_VERSIONÚKERNELS_MIN_VERSIONÚis_kernels_availableÚis_rocm_platformÚis_torch_availableÚis_torchdynamo_compilingÚis_torchdynamo_exportingÚresolve_internal_import)Úflash_attention_forward)ÚPretrainedConfig)ÚPreTrainedModel)ÚKernelConfigzh`kernels` is either not installed or uses an incompatible version. Please install a compatible version (z <= version < z), e.g. `pip install kernels==Ú`ÚUSE_HUB_KERNELSÚYESÚ	chunk_kdazops.kdaÚfused_recurrent_kdaÚchunk_gated_delta_rulezops.gated_delta_ruleÚ fused_recurrent_gated_delta_ruleÚ mamba_split_conv1d_scan_combinedzops.triton.ssd_combinedÚselective_state_updatez!ops.triton.selective_state_updateÚmamba_chunk_scan_combinedÚmamba_inner_fnzops.selective_scan_interfaceÚselective_scan_fnÚflazflash-linear-attention)ÚCUDAPropertiesÚDeviceÚLayerRepositoryÚLocalLayerRepositoryÚModeÚregister_kernel_mappingÚreplace_kernel_forward_from_hubÚuse_kernel_mapping)Ú
get_kernel)Ú	kernelize)Úuse_kernel_forward_from_hub)Úuse_kernelized_funcc                ó$   € V ^8„  d   QhR\         /# ©é   Ú
layer_name©Ústr)Úformats   "Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/integrations/hub_kernels.pyÚ__annotate__r<   i   s   € ÷ #ñ #´ñ #ó    c                 ón   € \         '       d   \        V 4      # \        P                  R \         24       R # )úFkernels hub usage is disabled through the environment USE_HUB_KERNELS=c                 ó   € V # ©N© ©Úclss   &r;   Ú<lambda>Ú-use_kernel_forward_from_hub.<locals>.<lambda>p   ó   € ™sr=   )Ú_kernels_enabledÚ$_kernels_use_kernel_forward_from_hubÚloggerÚwarning_onceÚ_TRANSFORMERS_USE_HUB_KERNELS©r7   s   &r;   r2   r2   i   s5   € ßÓÜ7¸
ÓCÐCä×ÑØXÔYvÐXwÐxôñ #Ð"r=   c                óP   € V ^8„  d   QhR\         \        ,          \        ,          /# )r6   Úmodule_names)Úlistr   )r:   s   "r;   r<   r<   r   s   € ÷ 	#ñ 	#¬$¬x­.¼8Õ*Cñ 	#r=   c                 óœ   € \         '       d#   \        V \        4      '       d   V .p \        V !  # \        P                  R \         24       R # )r?   c                 ó   € V # rA   rB   rC   s   &r;   rE   Ú%use_kernelized_func.<locals>.<lambda>{   rG   r=   )rH   Ú
isinstancer   Ú_kernels_use_kernelized_funcrJ   rK   rL   )rO   s   &r;   r3   r3   r   sI   € ßÓÜ˜,¬×1Ò1Ø ,˜~�Ü/°Ñ>Ð>ä×ÑØXÔYvÐXwÐxôñ #Ð"r=   c                ó$   € V ^8„  d   QhR\         /# r5   r8   )r:   s   "r;   r<   r<   }   s   € ÷ 
#ñ 
#¬Sñ 
#r=   c                 ó˜   € \         '       d!   \        P                  R 4       \        V 4      # \        P                  R\         24       R # )z“`use_kernel_func_from_hub` is deprecated in transformers v5.16 and will be removed in the future. Please use `use_kernel_forward_from_hub` instead.r?   c                 ó   € V # rA   rB   rC   s   &r;   rE   Ú*use_kernel_func_from_hub.<locals>.<lambda>‡   rG   r=   )rH   rJ   rK   rI   rL   rM   s   &r;   Úuse_kernel_func_from_hubrZ   }   sK   € ßÓÜ×Ñð fôô 8¸
ÓCÐCä×ÑØXÔYvÐXwÐxôñ #Ð"r=   c                ó$   € V ^8„  d   QhR\         /# ©r6   Úreturn©Údict)r:   s   "r;   r<   r<   �   s   € ÷ Zñ Z¤4ñ Zr=   c                   ó<  € / R R\        RR ^R7      /bR\        R\        ^y^yR7      R7      \        RRRR	R
7      /bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P                  \        RR^R7      \        P
                  \        RR^R7      //bRR\        P
                  \        RRRR	R
7      //bRR\        P
                  \        P                  ,          \        RR^R7      \        P                  \        P                  ,          \        RR^R7      //bRR\        P
                  \        P                  ,          \        RR ^R7      \        P                  \        P                  ,          \        RR!^R7      //bR"R\        P                  \        P                  ,          \        RR#^R7      //bR$R\        P                  \        RR%^R7      \        P
                  \        RR%^R7      /R&\        P                  \        RR%^R7      \        P
                  \        RR%^R7      /R'\        P
                  \        R(R$^R7      /R)\        P
                  \        R*R$^R7      /R+\        P                  \        RR%^R7      \        P
                  \        RR%^R7      //bR,R\        P                  \        RR-^R7      \        P
                  \        RR-^R7      //bR.R\        P                  \        R/R.^R7      \        P
                  \        R/R.^R7      /R&\        P                  \        R/R.^R7      \        P
                  \        R/R.^R7      /R'\        P
                  \        R/R.^R7      /R0\        P
                  \        R/R1^R7      //R2R\        P
                  \        P                  ,          \        R3R2^R7      //R4R\        P
                  \        P                  ,          \        R3R4^R7      //R5R\        P
                  \        P                  ,          \        R3R5^R7      //R6R\        P
                  \        P                  ,          \        R3R7^R7      //R8R\        P
                  \        P                  ,          \        R3R9^R7      //R:R\        P
                  \        P                  ,          \        R3R:^R7      //R;R\        P                  \        RR<^R7      \        P
                  \        RR<^R7      //R=R\        P                  \        RR>^R7      \        P
                  \        RR>^R7      //R?R'\        P
                  \        R@RA^R7      /R\        R@RA^R7      R&\        P
                  \        RBRA^R7      //RCR\        P                  \        P                  ,          \        RRD^R7      ///Cp V # )EÚMultiScaleDeformableAttentionÚcudaz!kernels-community/deformable-detr)Úrepo_idr7   ÚversionÚQwen3_5GatedDeltaNet)Úmin_capabilityÚmax_capability)ÚtypeÚ
propertieszAtlas-Inference/gdnÚ(ef12347fc77d6ddf1cb72c0bd0af1c7d6cc69172T)rc   r7   ÚrevisionÚtrust_remote_codeÚcausal_conv1d_fnzkernels-community/mamba-ssmÚcausal_conv1d_updater    zkernels-community/flar!   Úrecurrent_gated_delta_ruler$   r"   r%   r&   r#   ÚEsmFold2TriangleMultiplicationzbiohub/esmfold2-trimulÚESMFold2TriangleMultiplicationÚ(9bcafd5b29a6c81645ae299d5364f5b9e503aca8Ú	SwiGLUMLPzkernels-community/liger-kernelsÚLigerSwiGLUMLPÚLigerTiledSwiGLUMLPÚGeGLUMLPÚLigerGEGLUMLPÚLigerTiledGEGLUMLPÚLinearÚLigerLinearÚRMSNormÚLigerRMSNormÚrocmÚxpuzkernels-community/rmsnormÚmpszkernels-community/mlx_rmsnormÚnpuÚRMSNormGatedÚFusedRMSNormGatedÚMegaBlocksMoeMLPzkernels-community/megablocksÚcpuÚCPUMegaBlocksMoeMLPÚFastGELUzkernels-community/activationÚ	QuickGELUÚNewGELUÚSiLUÚSiluÚGeLUÚGeluÚGeluTanhr   Úchunk_kimi_delta_attentionr   Úrecurrent_kimi_delta_attentionÚrotary_pos_embzkernels-community/rotaryÚapply_rotary_transformerszkernels-community/aiter-ropeÚForCausalLMLossÚLigerForCausalLMLossLayer)r*   r)   r(   r,   ÚTRAININGÚ	INFERENCEÚTORCH_COMPILE)Ú_KERNEL_MAPPINGs    r;   Ú_build_kernel_mappingr˜   �   sª  € ðWi
Ø+ØœØ?Ø>Øôð.ðWi
ð" #ÜØÜ-¸SÐQTÔUôô #Ø1Ø5ØGà&*ôð	%ð#Wi
ð: ØÜ—M‘M¤?Ø =Ø#5Ø !ô$ô
 —N‘N¤OØ =Ø#5Ø !ô%ðð!ð;Wi
ðV #ØÜ—M‘M¤?Ø =Ø#9Ø !ô$ô
 —N‘N¤OØ =Ø#9Ø !ô%ðð%ðWWi
ðr %ØÜ—M‘M¤?Ø 7Ø#;Ø !ô$ô
 —N‘N¤OØ 7Ø#;Ø !ô%ðð'ðsWi
ðN /ØÜ—M‘M¤?Ø 7Ø#?Ø !ô$ô
 —N‘N¤OØ 7Ø#?Ø !ô%ðð1ðOWi
ðj (ØÜ—M‘M¤?Ø =Ø#>Ø !ô$ô
 —N‘N¤OØ =Ø#>Ø !ô%ðð*ðkWi
ðF /ØÜ—M‘M¤?Ø =Ø#EØ !ô$ô
 —N‘N¤OØ =Ø#EØ !ô%ðð1ðGWi
ðb ØÜ—M‘M¤?Ø =Ø#3Ø !ô$ô
 —N‘N¤OØ =Ø#3Ø !ô%ðððcWi
ð~  ØÜ—M‘M¤?Ø =Ø#6Ø !ô$ô
 —N‘N¤OØ =Ø#6Ø !ô%ðð"ðWi
ðZ %ØÜ—M‘M¤?Ø =Ø#;Ø !ô$ô
 —N‘N¤OØ =Ø#;Ø !ô%ðð'ð[Wi
ðv -ØÜ—N‘N¤OØ 8Ø#CØ!KØ*.ô	%ðð	/ðwWi
ðJ ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø AØ#3Ø !ô:ô
 —M‘M¤D×$6Ñ$6Õ6¼Ø AØ#8Ø !ô9ðððKWi
ðf ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø AØ#2Ø !ô:ô
 —M‘M¤D×$6Ñ$6Õ6¼Ø AØ#7Ø !ô9ðððgWi
ðB ØÜ—M‘M¤D×$6Ñ$6Õ6¼Ø AØ#0Ø !ô9ðððCWi
ðT àÜ—M‘M¤?Ø AØ#1Ø !ô$ô
 —N‘N¤OØ AØ#1Ø !ô%ðð Ü—M‘M¤?Ø AØ#1Ø !ô$ô
 —N‘N¤OØ AØ#1Ø !ô%ðð Ü—N‘N¤OØ ;Ø#,Ø !ô%ðð Ü—N‘N¤OØ ?Ø#,Ø !ô%ðð Ü—M‘M¤?Ø AØ#1Ø !ô$ô
 —N‘N¤OØ AØ#1Ø !ô%ððQ4ðUWi
ð~ ØÜ—M‘M¤?Ø 7Ø#6Ø !ô$ô
 —N‘N¤OØ 7Ø#6Ø !ô%ðððWi
ðZ ØÜ—M‘M¤?Ø >Ø#5Ø !ô$ô
 —N‘N¤OØ >Ø#5Ø !ô%ðð Ü—M‘M¤?Ø >Ø#5Ø !ô$ô
 —N‘N¤OØ >Ø#5Ø !ô%ðð Ü—N‘N¤OØ >Ø#5Ø !ô%ðð Ü—N‘N¤OØ >Ø#8Ø !ô%ððA'!ðP ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >Ø#-Ø !ô:ððð ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >Ø#.Ø !ô:ððð ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >Ø#,Ø !ô:ððð ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >È6Ð[\ô:ððð ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >È6Ð[\ô:ððð ØÜ—N‘N¤T×%7Ñ%7Õ7¼Ø >È:Ð_`ô:ððð ØÜ—M‘M¤?Ø 7Ø#?Ø !ô$ô
 —N‘N¤OØ 7Ø#?Ø !ô%ððð "ØÜ—M‘M¤?Ø 7Ø#CØ !ô$ô
 —N‘N¤OØ 7Ø#CØ !ô%ðð$ð ØÜ—N‘N¤OØ :ÐGbÐlmô%ðð
 œØ6ÐC^Ðhiôð Ü—N‘N¤OØ >ÐKfÐpqô%ððð ØÜ—M‘M¤D×$6Ñ$6Õ6¼Ø AÐNiÐstô9ðð ñaWi
ˆðr Ðr=   c                ó$   € V ^8„  d   QhR\         /# r\   r^   )r:   s   "r;   r<   r<   +  s   € ÷ %ñ %¬Tñ %r=   c                 ó2   € \         f   \        4       s \         # )zPReturn the default transformers kernel mapping, building it lazily on first use.)Ú_KERNEL_MAPPING_CACHEr˜   rB   r=   r;   Úget_kernel_mapping_transformersrœ   +  s   € ô !Ò(Ü$9Ó$;Ð!Ü$Ð$r=   c                 ó8   € V f   \        4       p \        V 4       R # rA   )rœ   r-   )Úmappings   &r;   Ú$register_kernel_mapping_transformersrŸ   2  s   € ØŠ?Ü5Ó7ˆGÜ Ö(r=   Fc                  ó   € R  pV# )c                 ó   € V # rA   rB   rC   s   &r;   Ú	decoratorÚ.use_kernel_forward_from_hub.<locals>.decorator=  ó   € ØˆJr=   rB   ©ÚargsÚkwargsr¢   s   *, r;   r2   r2   <  ó   € ò	ð Ðr=   c                  ó   € R  pV# )c                 ó   € V # rA   rB   rC   s   &r;   r¢   Ú&use_kernelized_func.<locals>.decoratorC  r¤   r=   rB   r¥   s   *, r;   r3   r3   B  r¨   r=   c                  ó   € R  pV# )c                 ó   € V # rA   rB   rC   s   &r;   r¢   Ú+use_kernel_func_from_hub.<locals>.decoratorI  r¤   r=   rB   r¥   s   *, r;   rZ   rZ   H  r¨   r=   c                   ó,   a € ] tR tRt o R tR tRtV tR# )r*   iN  c                ó   € \        R 4      h)zNLayerRepository requires `kernels` to be installed. Run `pip install kernels`.©ÚRuntimeError©Úselfr¦   r§   s   &*,r;   Ú__init__ÚLayerRepository.__init__O  s   € ÜÐoÓpÐpr=   c                ó   € \        R 4      h)zMLayerRepository requires `kernels` to be installed. Run `pip install kernels.©ÚNotImplementedError©r´   s   &r;   ÚloadÚLayerRepository.loadR  s   € Ü%Ð&uÓvÐvr=   rB   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rµ   r»   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r;   r*   r*   N  s   ø‡ € ò	q÷	wð 	wr=   r*   c                   ó,   a € ] tR tRt o R tR tRtV tR# )r+   iU  c                ó   € \        R 4      h)zSLocalLayerRepository requires `kernels` to be installed. Run `pip install kernels`.r±   r³   s   &*,r;   rµ   ÚLocalLayerRepository.__init__V  s   € ÜÐtÓuÐur=   c                ó   € \        R 4      h)zRLocalLayerRepository requires `kernels` to be installed. Run `pip install kernels.r¸   rº   s   &r;   r»   ÚLocalLayerRepository.loadY  s   € Ü%Ødóð r=   rB   Nr½   rÄ   s   @r;   r+   r+   U  s   ø‡ € ò	v÷	ð 	r=   r+   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚFuncRepositoryi^  c                ó   € \        R 4      h)zMFuncRepository requires `kernels` to be installed. Run `pip install kernels`.r±   r³   s   &*,r;   rµ   ÚFuncRepository.__init___  s   € ÜÐnÓoÐor=   rB   N)r¾   r¿   rÀ   rÁ   rµ   rÂ   rÃ   rÄ   s   @r;   rÌ   rÌ   ^  s   ø‡ € ÷	pð 	pr=   rÌ   c                  ó   € \        R 4      h)z^replace_kernel_forward_from_hub requires `kernels` to be installed. Run `pip install kernels`.r±   ©r¦   r§   s   *,r;   r.   r.   b  s   € ÜØló
ð 	
r=   c                  ó   € \        R 4      h)zVregister_kernel_mapping requires `kernels` to be installed. Run `pip install kernels`.r±   rÐ   s   *,r;   r-   r-   g  s   € ÜÐsÓtÐtr=   c                  ó   € \        R 4      h)zcregister_kernel_mapping_transformers requires `kernels` to be installed. Run `pip install kernels`.r±   rÐ   s   *,r;   rŸ   rŸ   j  s   € ÜØqó
ð 	
r=   zfinegrained-fp8rc   z!kernels-community/finegrained-fp8rd   z	deep-gemmzkernels-community/deep-gemmz	sonic-moezkernels-community/sonic-moerk   z
ep-supportÚnvfp4zkernels-community/nvfp4-gemmc                ó>   € V ^8„  d   QhR\         R,          R\        /# )r6   Úattn_implementationNr]   )r9   Úbool)r:   s   "r;   r<   r<   „  s   € ÷ ñ ¤3¨¥:ð ´$ñ r=   c                óL   € V RJ;'       d    \         P                  ! RV 4      RJ# )zJCheck whether `attn_implementation` matches a kernel pattern from the hub.Nz'^[^/:]+/[^/:]+(?:@[^/:]+)?(?::[^/:]+)?$)ÚreÚsearch)rÕ   s   &r;   Ú	is_kernelrÚ   „  s3   € ð 	 4Ð'÷ 	cð 	cÜ�IŠIÐ@ÐBUÓVÐ^bÐbðr=   c                ó0   € V ^8„  d   QhR\         R\        /# )r6   rc   r]   )r9   Úint)r:   s   "r;   r<   r<   Œ  s   € ÷ (ñ (¤Sð (¬Sñ (r=   c                ót   € \         P                  4        F  w  r\        WR7      '       g   K  Vu # 	  \        # )zpReturn the major version of the hub kernel repo `repo_id` to load, e.g. `3` for `kernels-community/flash-attn2`.)Ú"requested_attention_implementationrd   )Ú"_FLASH_ATTN_KERNEL_VERSION_MAPPINGÚitemsr   Ú_DEFAULT_ATTN_KERNEL_VERSION)rc   Úflash_attn_versionÚkernel_versions   &  r;   Úget_attn_kernel_versionrä   Œ  s3   € ä.P×.VÑ.VÖ.XÑ*ÐÜ'È7×oÕoØ!Ò!ñ /Yô (Ð'r=   c          	      ód   € V ^8„  d   QhR\         R\        R,          R\        R\        R,          /# )r6   rÕ   Úattention_wrapperNÚallow_all_kernelsr]   )r9   r   rÖ   r   )r:   s   "r;   r<   r<   ”  s;   € ÷ Lñ LÜðLÜ19¸DµðLÜ\`ðLä�$ÕñLr=   c                óÈ  € ^RI Hp ^RIHp RV 9   d   V P	                  R4      ^,          MT p\        V4      '       g   R# \        4       '       g   \        \        4      hRV9   d%   VP	                  R4      w  rgVP                  4       pMTpRpVP                  4       pVP                  R4      w  rhp	VP                  4       pV	'       d   V	P                  4       MRp	Rp
V	f   \        V4      p
 \        WiW¢R7      pRp\        TR4      '       d   Tf   \         pTpMk\        TR4      '       d   ^RIHp Te   TMTpRpMH\        TR4      '       d(   \        TR4      '       d   Te   TMTP&                  pRpMTe   \)        Y·4      pTP+                  T X4       TP+                  YT,          4       T#   \         d    h \         d   p\        RT R	T R
24      hRp?ii ; i)aÚ  
Load and register the kernel associated to `attn_implementation`.

Args:
    attn_implementation: A string, usually a kernel repo like "kernels-community/flash-mla".
    attention_wrapper: a callable for the wrapper around the attention implementation. In `transformers` we
        have a wrapper around the `flash_attn_var_len` call, and the same goes for `sdpa` and `eager`.
        They just prepare the arguments properly. This is mostly used for continuous batching, where we
        want the `paged` wrapper, which calls the paged cache.
    allow_all_kernels (`bool`, optional):
        Whether to load kernels from unverified hub repos, if it is a custom kernel outside of the `kernels-community`
        hub repository.
)ÚALL_MASK_ATTENTION_FUNCTIONS)ÚALL_ATTENTION_FUNCTIONSÚ|NÚ:Ú@©rk   rd   rç   z-An error occurred while trying to load from 'z': Ú.Úflash_attention_2Úflash_attn_varlen_funcÚsparse_atten_func)Úmsa_attention_forwardÚsdpaÚflash_attn_forwardÚsupports_flash_attn)Úmasking_utilsré   Úmodeling_utilsrê   ÚsplitrÚ   r   ÚImportErrorÚ_MISSING_KERNELS_MESSAGEÚstripÚ	partitionrä   r0   Ú
ValueErrorÚ	ExceptionÚhasattrr   Úmsa_attentionró   rõ   ÚgetattrÚregister)rÕ   ræ   rç   ré   rê   Úactual_attn_namerc   Úkernel_nameÚ_Úrevrd   ÚkernelÚeÚmask_implementationÚkernel_functionró   s   &&&             r;   Úload_and_register_attn_kernelr  ”  så  € õ  =Ý8à<?ÐCVÔ<VÐ*×0Ñ0°Ó5°aÖ8Ð\oÐÜÐ%×&Ò&ÙÜ×!Ò!ÜÔ2Ó3Ð3ð ÐÔØ/×5Ñ5°cÓ:ÑˆØ!×'Ñ'Ó)‰à"ˆØˆØ�m‰m‹o€Gà×'Ñ'¨Ó,�O€G�Ø�m‰m‹o€G÷ ˆ#�)‰)Œ+ $€CØ€GØ
‚{Ü)¨'Ó2ˆð[Ü˜G¸7Ôhˆð .ÐÜˆvÐ/×0Ò0ØÒ$Ü 7ÐØ+‰Ü	�Ð,×	-Ò	-õ
 	9à/@Ò/LÑ+ÐRgˆØ$ÑÜ	�Ð-×	.Ò	.´7¸6ÐCX×3YÒ3YØ/@Ò/LÑ+ÐRX×RkÑRkˆØ$ÑØ	Ò	 Ü! &Ó6ˆð ×$Ñ$Ð%8¸/ÔJØ ×)Ñ)Ð*=Ð\oÕ?pÔqà€Møô= ô ØÜô [ÜÐHÈÈ	ÐQTÐUVÐTWÐWXÐYÓZÐZûð[ús   Ã/F4 Æ4G!Ç	G!Ç
GÇG!c                ó`   € V ^8„  d   QhR\         R\        \         \        R,          3,          /# )r6   r  rž   N)r9   r_   r   )r:   s   "r;   r<   r<   ã  s)   € ÷ / ñ / ¤#ð / ´´S¼*ÀtÕ:KÐ5KÕ0Lñ / r=   c                 óè  € W9   d%   \        W,          \        4      '       d	   W,          # V \        9  d    \        P	                  R V  R24       RW&   R# \        4       '       d„   \        '       dx    \        V ,          R,          p\        V ,          P                  RR4      p\        V ,          P                  RR4      pVf   Vf   ^p\        W#V\        R7      pWQV &   W,          # V P                  R	R
4      pRV R2p \        P                  ! R\        4      p	\!        W˜R4      p
\%        V
4      '       d,   V
! 4       '       d    \        P                  ! V 4      pW±V &   V# RW&   W,          #   \         d1   pRY&   \        P	                  RT  RT 24        Rp?Y,          # Rp?i\         d    RY&    Y,          # i ; i  \"         d    Rp
 L¬i ; i  \"         d    RY&    Y,          # i ; i)zKernel z! not found in _HUB_KERNEL_MAPPINGNrc   rk   rd   rî   zFailed to load kernel z: Ú-r  Úis_Ú
_availablez..utils.import_utils)rT   r   Ú_HUB_KERNEL_MAPPINGrJ   rK   r   rH   Úgetr0   ÚALLOW_ALL_KERNELSÚFileNotFoundErrorÚAssertionErrorÚreplaceÚ	importlibÚimport_moduleÚ__package__r  rÿ   Úcallable)r  rž   rc   rk   rd   r  r	  Únew_kernel_nameÚ	func_nameÚ	utils_modÚis_kernel_availableÚmodules   &&          r;   Úlazy_load_kernelr!  ã  s   € ØÔ¤*¨WÕ-AÄ:×"NÒ"NØÕ#Ð#ØÔ-Ô-Ü×Ñ˜g k ]Ð2SÐTÔUØ#ˆÑÙÜ×Ò×"2Ó"2ð	(Ü)¨+Õ6°yÕAˆGÜ*¨;Õ7×;Ñ;¸JÈÓMˆHÜ)¨+Õ6×:Ñ:¸9ÀdÓKˆGàŠ 8Ò#3Ø�ä ÀGÔ_pÔqˆFØ#)�KÑ ð< ÕÐð) &×-Ñ-¨c°3Ó7ˆØ˜/Ð*¨*Ð5ˆ	ð	'Ü!×/Ò/Ð0FÌÓTˆIÜ")¨)ÀÓ"EÐô Ð'×(Ò(Ñ-@×-BÒ-Bð,Ü"×0Ò0°OÐ3DÓF�Ø'-˜Ñ$Ø�ð $(ˆGÑ àÕÐøô; !ô 	MØ#'ˆGÑ Ü×ÑÐ"8¸¸ÀRÈÀsÐ K×LÐLð6 ÕÐûô5 ô 	(à#'ˆGÒ ð0 ÕÐð5	(ûô ô 	'Ø"&Òð	'ûô ô ,Ø'+�Ò$ð ÕÐð,úsI   Á2A.E0 Ä'G ÅG Å0GÅ;F&Æ&GÆ3GÇGÇGÇGÇG1Ç0G1c                ó    € V ^8„  d   QhRRRR/# )r6   Úmodelr   ÚmodezMode | NonerB   )r:   s   "r;   r<   r<     s   € ÷ ñ Ð&ð ¨mñ r=   c                óN  € \        4       '       g   \        \        4      hR pV P                  '       g   \        P
                  MVf   \        P                  MTpV! V P                  P                  4      pV P                  ez   V P                  P                  '       * ;'       d    V P                  P                  p\        V P                  P                  VR7      ;_uu_ 4        \        WVR7       RRR4       M\        WVR7       RV n        R#   + '       g   i     L; i)zYTemporarily register hidden kernel wrappers so `kernelize` can discover and replace them.c                 óL   € V R 8X  d   \        4       '       d   Rp \        V R7      # )rb   r}   )rh   )r   r)   )Údevice_types   &r;   Ú
get_deviceÚkernelize.<locals>.get_device  s#   € Ø˜&Ô Ô%5×%7Ò%7Ø ˆKÜ˜;Ô'Ð'r=   N)Úinherit_mapping)Údevicer$  T)r   rú   rû   Útrainingr,   r•   r”   r+  rh   Úkernel_configÚuse_local_kernelr*  r/   Úkernel_mappingÚ_kernels_kernelizeÚ_use_kernels)r#  r$  r(  r+  r*  s   &&   r;   r1   r1     sÏ   € ä×!Ò!ÜÔ2Ó3Ð3ò(ð
 "'§§ Œ4�>Š>ÀdÂl´T·]²]ÐX\€DÙ˜Ÿ™×)Ñ)Ó*€Fà×ÑÒ&Ø#×1Ñ1×BÑBÔB×jÐjÀu×GZÑGZ×GjÑGjˆÜ × 3Ñ 3× BÑ BÐTc×dÖdÜ˜u¸$Õ?÷ eÐdô 	˜5°dÕ;à€EÖ÷ e×dús   Ã'DÄD$	c          
      ó†   € V ^8„  d   QhR\         R\         R,          R\        \         ,          R,          R\        R\        /# )r6   r  rk   Nrd   rç   r]   )r9   rÜ   rÖ   r   )r:   s   "r;   r<   r<   ,  sG   € ÷ ñ Üðä�D�jðô ”3�Y˜Õðô ð	ô
 ñr=   c                 óx   € ^RI Hp \        4       '       g   \        \        4      hRRRVRV /p\        WW%VR7      # )r6   )Ú__version__Ú	frameworkÚtransformersrd   rc   )rk   rd   Ú
user_agentrl   )Ú r4  r   rú   rû   Úget_kernel_hub)r  rk   rd   rç   r4  r7  s   &&&&  r;   r0   r0   ,  sD   € õ ä×!Ò!ÜÔ2Ó3Ð3à˜~¨y¸+ÀyÐR]Ð^€JÜØ°Ðbsôð r=   c                óJ   € V ^8„  d   QhR\         R\         R\         R,          /# )r6   r  ÚpackageÚinternal_pathNr8   )r:   s   "r;   r<   r<   =  s(   € ÷ <ñ <´cð <ÄCð <ÔX[Ð^bÕXbñ <r=   c                ó    a aaaa€ \        S 4      o\        P                  S V4      pVf   S MV RS  2oVf   SMS RV 2oR VVV VV3R llpV# )a‚  
The same as `use_kernel_forward_from_hub` but with the optional fallback to an original package if it exists, e.g.,
FLA for Gated Delta Rule, mamba-ssm for mamba2, etc.

This combines all options with kernels, enabling kernels on top of the original package if requested as well.
The order of priority is
    1. Hf kernels (if requested)
    2. Original package
    3. Torch only path
rï   c                ó0   € V ^8„  d   QhR\         R\         /# )r6   Útorch_functionr]   r   )r:   s   "r;   r<   Ú<use_kernel_func_from_hub_with_fallback.<locals>.__annotate__O  s   € ÷ (1ñ (1¤(ð (1¬xñ (1r=   c                 ó¶  <a aaa€ R o \         P                  ! S
4      p\        VS4      oSf+   SS
8w  d$   \         P                  ! S4      p\        VSR 4      oSf   S MSo\        \        P                  ! S4      P                  4      oSS Jo\        P                  ! S 4      TTTTT
T 3R l4       pS	! T4      #   \         d    S o Lpi ; i  Sf   S oi Soi ; i)Nc            	      óR  <€ S'       d   \        4       '       d	   S
! V / VB # S'       gF   \        4       '       g6   \        P                  S	S	4      p\        P                  R S RV RV R24       VP                  4        UUu/ uF  w  r4VS9   g   K  W4bK  	  pppS! V / VB # u uppi )r   zC` is falling back to its reference PyTorch implementation because `z>` is not installed. This is correct but much slower; install `z` for the optimized kernel.)r   r   Ú_PACKAGE_TO_DISTRIBUTIONr  rJ   rK   rà   )r¦   r§   ÚdistributionÚkÚvÚapplicable_paramsr  ÚimplementationÚis_new_implementationr;  r?  s   *,   €€€€€€r;   ÚwrappedÚJuse_kernel_func_from_hub_with_fallback.<locals>.decorator.<locals>.wrappedb  s³   ø€ ÷ %Ô)A×)CÒ)CÙ% tÐ6¨vÑ6Ð6ç(Ô1I×1KÒ1Kô
  8×;Ñ;¸GÀWÓM�Ü×#Ñ#Ø˜	�{ð #Ø$�~ð &Ø$�~Ð%@ðBôð (.§|¡|¤~ÔP¡~™t˜q¸Ð>OÑ9O”d�a’d¡~ˆFÑPÙ! 4Ð2¨6Ñ2Ð2ùó Qs   ÂB#ÂB#)r  r  r   r  rÿ   ÚtupleÚinspectÚ	signatureÚ
parametersÚ	functoolsÚwraps)r?  r   rJ  rG  rH  rI  Úfull_func_pathÚfull_module_pathr  Úkernel_wrapper_decoratorr;  s   f  @@@€€€€€r;   r¢   Ú9use_kernel_func_from_hub_with_fallback.<locals>.decoratorO  sâ   ü€ Øˆð
	ZÜ×,Ò,¨WÓ5ˆFÜ4°V¸^ÓLˆNàÒ%Ð*:¸gÔ*EÜ"×0Ò0Ð1AÓB�Ü!(¨°¸DÓ!A�ð 0>Ò/E™^È>ˆNô "¤'×"3Ò"3°NÓ"C×"NÑ"NÓOÐà .°nÐ DÐä	�Š˜Ó	(÷	3ñ 	3ó 
)ð	3ñ( (¨Ó0Ð0øô? ô 	,Ø+ŠNð	,ûð 0>Ò/E˜^‰NÈ>‰Nús$   ‰AB: Â:C
ÃC Ã	C
Ã
C ÃC)r2   Ú_KERNELS_INTERNAL_PATH_MAPPINGSr  )r  r;  r<  r¢   rR  rS  rT  s   ff& @@@r;   Ú&use_kernel_func_from_hub_with_fallbackrW  =  sg   ü€ ô  ;¸9ÓEÐô 4×7Ñ7¸	À=ÓQ€MØ"/Ò"7‘YÀ¸ÈaÐPYÈ{Ð=[€NØ"/Ò"7‘wÀ¸yÈÈ-ÈÐ=YÐ÷(1ô (1ðT Ðr=   c               #  ó.   "  €  Rs Rx € Rs R#   Rs i ; i5i)z×
Context manager used to adjust the value of the global `ALLOW_HUB_KERNELS`. This is needed, as this argument
cannot be forwarded directly to the `__init__` of the models, where we set the attention implementation.
TNF)r  rB   r=   r;   Úallow_all_hub_kernelsrY  €  s!   é € ð"Ø Ðãð "Òø˜EÑüs   ‚„ ŠŽ’c                ó^   € V ^8„  d   QhR\         R\        \        ,          R\         R\         /# )r6   Ú
parent_clsÚchild_namesÚ
kernel_clsr]   )rh   rP   r9   )r:   s   "r;   r<   r<   ‘  s4   € ÷ ñ Üðä”c•ðô ðô 
ñ	r=   c                ó–   aaa€ V P                   oVVV3R lp\        RV P                   2V 3RV/4      pRV P                   2Vn        V# )a"  
Create a new class that inherits from `parent_cls` and fuses the child modules specified in `child_names
with the provided `kernel_cls`.
The first child in `child_names` will be replaced with the `kernel_cls`, and the rest will be replaced with
`nn.Identity()` to keep the same interface.
c                 óð   <€ S! V .VO5/ VB  S Uu. uF  p\        W4      NK  	  ppS! V!  p\        V S^ ,          V4       SR,           F"  p\        W\        P                  ! 4       4       K$  	  R# u upi )r   :é   NNN)r  ÚsetattrÚnnÚIdentity)	r´   r¦   r§   ÚnameÚchildrenÚkernel_instancer\  r]  Úoriginal_inits	   &*,   €€€r;   Úpatched_initÚ9make_parent_class_for_kernel_fusion.<locals>.patched_initž  sn   ø€ Ù�dÐ,˜TÒ, VÒ,Ù4?Ó@±K¨D”G˜DÖ'±KˆÐ@Ù$ hÑ/ˆÜ��k !•n oÔ6Ø —O�OˆDÜ�D¤§¢£Ö.ó $ùò As   ’A3ÚFusedrµ   )rµ   rh   r¾   rÀ   )r[  r\  r]  rh  Úpatched_clsrg  s   &ff  @r;   Ú#make_parent_class_for_kernel_fusionrl  ‘  sW   ú€ ð ×'Ñ'€M÷/ô ˜˜z×2Ñ2Ð3Ð4°z°mÀjÐR^ÐE_Ó`€KØ!& z×'>Ñ'>Ð&?Ð@€KÔØÐr=   c                ó(   € V ^8„  d   QhRRRRRRRR/# )	r6   rD   ztype[PreTrainedModel]Úconfigr   r-  r   r]   NrB   )r:   s   "r;   r<   r<   «  s6   € ÷ U/ñ U/Ø	 ðU/àðU/ð "ðU/ð 
ñ	U/r=   c           
      óv  a"€ \        V R 4      '       d   \        V P                  R4      '       g   \        RV P                   R24      hV P                  P                  p/ p/ pRpVP
                  P                  4        EF  w  rx\        V\        \        34      '       d   RV/p\        V\        4      '       d.   \        VP                  4       4      ^8w  d   \        RV 24      hM\        RV: RV: 24      h\        \        VP                  4       4      4      p\        V\        4      '       dd   Vw  ršV
P                  RR4      pV
P                  R	R4      pV
P                  R
R4      ;'       g    \         pVe   R	V/MRV/p
V
R
V/,          p
Wš3pMTp	R	^R
\         /p
Wš3pV	P#                  R4      w  pppV'       d	   V'       g   \        RV	: RV: 24      hVP$                  '       d   \'        \)        V4      VR7      pM\+        R'RVRV/V
B pVP-                  4       pVf   \        RV: 24      h\.        P0                  P                  VP2                  4      pV'       d   \5        VVP                   R2R4      MRpVe?   RVP6                  9  d.   \8        P:                  ! VP<                  4      R 4       pVVn        \        V\        4      '       d1   Vf   WåV&   EKi  VP                  Vn        VWG&   WåVP                  &   EM\        V\        4      '       Ed    Vf(   \        RVP                  : RVP                   R24      hVP                  Vn        V Uu. uF  pV^,          NK  	  ppV Uu. uF  pVPA                  R^4      ^ ,          NK  	  pp\        \C        V4      4      ^8w  d   \        RV 24      hV^ ,          PE                  RR4      pV Uu. uF  pVPA                  R^4      ^,          NK  	  ppVf0   \F        PH                  ! R4      ;_uu_ 4        V ! V4      pRRR4       RpVPK                  4        F¬  w  po"\L        PN                  ! VV4      '       g   K%  \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!   \        RV: R V R!VP                  : 24      hRp\S        S"4      p\U        VVV4      VVP                  &   K®  	  V'       g   \        R"V: R#VP                  : R$24      h\W        VRR%7       \        VR&4      '       d<   \Y        V4      p \[        VP\                  4      p!V e
   V V!,           p!\_        VV!RR%7       WåVP                  &   EK  	  WRn        R# u upi u upi u upi   + '       g   i     EL}; i)(Úconfig_classÚ
model_typezModel z# has no config_class or model_type.NzLExpected exactly one kernel repo regardless of device/mode specificity, got zInvalid hub repo z for layer rk   rd   rl   Frì   zInvalid kernel repo string )Ú	repo_pathr7   rc   r7   z*Could not load kernel class from hub_repo=ÚLayoutÚforwardc                 ó   € R # rA   rB   r³   s   &*,r;   Ú_noop_forwardÚ?register_kernel_replacements_and_fusions.<locals>._noop_forwardó  s   € ár=   zFused kernel z* requires a companion layout class named 'zLayout' in the same module.rï   zGAll patterns for a fused kernel must share the same parent module, got Ú*z\w+Úmetac              3   ó<   <"  € T F  p\        SV4      x € K  	  R # 5irA   )r   )Ú.0Úchildr   s   & €r;   Ú	<genexpr>Ú;register_kernel_replacements_and_fusions.<locals>.<genexpr>$  s   øé € ÐK¹{°eœ7 6¨5×1Ð1»{ùs   ƒTzModule z* does not have the expected child modules z required for the fused kernel zNo module matched pattern z for fused kernel z3. Provide the full dotted path from the model root.)Ú	overwriteÚconversion_mappingrB   )0r   rp  rþ   r¾   rq  r/  rà   rT   r9   rL  r_   ÚlenÚvaluesÚnextÚiterr  r  rý   r.  r+   r   r*   r»   ÚsysÚmodulesr¿   r  Ú__dict__rP  rQ  rt  Úkernel_layer_nameÚrsplitÚsetr  Útorchr+  Únamed_modulesrØ   Ú	fullmatchÚallrh   rl  r   r	   rP   r€  r
   )#rD   rn  r-  rq  Úpatch_mappingÚnew_mappingÚ
meta_modelr7   Úhub_repoÚrepo_strÚmetadatark   rd   rl   Ú
final_reporc   r  Úlayer_name_in_repoÚrepor]  Ú
kernel_modÚ
layout_clsrv  ÚitemÚglob_patternsÚpÚparent_patternsÚparent_patternr\  Úmatched_anyrd  Ú
module_clsÚexistingÚ
transformsr   s#   &&&                               @r;   Ú(register_kernel_replacements_and_fusionsr£  «  s¡  ø€ ô
 �3˜×'Ò'¬w°s×7GÑ7GÈ×/VÒ/VÜ˜6 #§,¡, Ð/RÐSÓTÐTØ×!Ñ!×,Ñ,€Jà%'€MØ€Kð €Jà -× <Ñ <× BÑ B× DÑˆ
Ü�h¤¤e ×-Ò-Ø˜hÐ'ˆHä�h¤×%Ò%Ü�8—?‘?Ó$Ó%¨Ô*Ü ØbÐckÐblÐmóð ð +ô
 Ð0°±¸KÈ
Á~ÐVÓWÐWäœ˜XŸ_™_Ó.Ó/Ó0ˆô �h¤×&Ò&Ø!)ÑˆHà—|‘| J°Ó5ˆHØ—l‘l 9¨dÓ3ˆGØ (§¡Ð-@À%Ó H× ]Ð ]ÔL]ÐØ/6Ò/B˜	 7Ñ+ÈÐU]ÐH^ˆHØÐ,Ð.?Ð@Õ@ˆHà"Ð-‰JàˆHØ! 1Ð&9Ô;LÐMˆHØ"Ð-ˆJà)1×);Ñ);¸CÓ)@Ñ&ˆ�Ð&ß×0ÜÐ:¸8¹,ÀkÐR\ÑQ_Ð`ÓaÐaà×)×)Ð)Ü'Ü˜w›-Ø-ô‰Dô
 #ñ Øðà-ðð ñˆDð —Y‘Y“[ˆ
àÒÜÐIÈ(ÉÐVÓWÐWä—[‘[—_‘_ Z×%:Ñ%:Ó;ˆ
ßR\”W˜Z¨J×,?Ñ,?Ð+@ÀÐ)GÈÔNÐbfˆ
àÒ! i°z×7JÑ7JÔ&Jä�_Š_˜Z×/Ñ/Ó0ñó 1ðð "/ˆJÔô �j¤#×&Ò&àÒ!Ø*4˜JÑ'Úð ,6×+>Ñ+>ˆJÔ(Ø(2ˆMÑ%ð 0:˜
×+Ñ+Ó,ô ˜
¤E×*Ó*ØÒ!Ü Ø# J×$7Ñ$7Ñ#:ð ;Ø(×1Ñ1Ð2Ð2MðOóð ð
 ,6×+>Ñ+>ˆJÔ(á1;Ó<±¨˜T !ŸW˜W±ˆMÐ<Ù<IÓJ¹M°q˜qŸx™x¨¨QÓ/°×2Ð2¹MˆOÐJä”3�Ó'Ó(¨AÔ-Ü Ø]Ð^kÐ]lÐmóð ð -¨QÕ/×7Ñ7¸¸VÓDˆNÙ8EÓF¹°1˜1Ÿ8™8 C¨Ó+¨A×.Ð.¹ˆKÐFàÒ!Ü—\’\ &×)Õ)Ù!$ V£�J÷ *ð  ˆKØ *× 8Ñ 8Ö :‘��fÜ—|’| N°D×9Ò9Ùß“sÔK¹{ÓK—s—s’sÔK¹{ÓK×KÒKÜ$Ø! $¡Ð)SÐT_ÐS`ð a,Ø,6×,?Ñ,?Ñ+BðDóð ð #�Ü! &›\�
Ü5XØ ¨Zó6�˜j×1Ñ1Ó2ñ !;÷ Ü Ø0°Ñ0BÐBTÐU_×UhÑUhÑTkð lHð Ióð ô
 	˜}¸Õ=ä�:Ð3×4Ò4Ü8¸ÓDˆHÜ˜j×;Ñ;Ó<ˆJØÒ#Ø%¨
Õ2�
Ü2°:¸zÐUYÕZà+5�J×'Ñ'Ô(ñG !EðJ $/Ö ùò_ =ùÚJùò G÷ *×)Ð)ús   Í$VÍ<"VÏ$"V"Ð*	V'Ö'V8c                ó\  € V ^8„  d   Qh/ ^ \         9   d   \        R,          ;R&   ^\         9   d,   \        \        \        \        \        3,          3,          ;R&   ^\         9   d   \        \        \        3,          ;R&   ^\         9   d"   \        \        \        R,          3,          ;R&   # )r6   Nr›   r  rß   Ú_KERNEL_MODULE_MAPPING)Ú__conditional_annotations__r_   r9   rÜ   r   )r:   s   "r;   r<   r<      s�   € × Ñ ÷~ .Ò-œ4 $�;Ñ-ñ ÷Dò ”Tœ#œt¤C¬ H�~Ð-Õ.ñ ñE ÷Vò ¤D¬¬c¨¥Nñ ñW ÷f :Ò 9œœS¤*¨tÕ"3Ð3Õ4Ñ 9òg r=   rA   )NF)NNF)r*   r0   r1   r!  r-   rŸ   r£  r.   r2   rZ   r3   )`r¦  rP  r  rM  ÚosrØ   r…  Úcollections.abcr   Ú
contextlibr   Úpathlibr   Útypesr   Útypingr   r€  r	   r
   Úmonkey_patchingr   Úutilsr   r   Úutils.genericr   Úutils.import_utilsr   r   r   r   r   r   r   r   Úflash_attentionr   Úconfiguration_utilsr   rø   r   Úutils.kernel_configr   r‹  Útorch.nnrb  Ú
get_loggerr¾   rJ   rû   Úenvironr  ÚupperrL   rH   rV  rC  Úkernelsr(   r)   r*   r+   r,   r-   r.   r/   r0   r9  r1   r0  r2   rI   r3   rU   rZ   r›   r˜   rœ   rŸ   rÌ   r  rß   rá   r¥  rÚ   rä   r  r!  rW  r  rY  rl  r£  Ú__all__r<   )r¦  s   @r;   Ú<module>rº     s”  øð÷ Ð Û Û Û 	Û 	Û 
Ý $Ý %Ý Ý Ý  ç jÝ 4ß 1Ý 8÷	÷ 	ó 	õ 5÷ Ý6Ý0Ý2á×ÒÛÝð 
×	Ò	˜HÓ	%€ðØÐ˜NÐ+>Ð*?Ð?]Ð^qÐ]rÐrsðuð ð !#§
¡
§¡Ð/@À%Ó H× NÑ NÓ PÐ Ø0Ð4HÑHÐ ð
 �Ø˜9ØÐ4Ø&Ð(>Ø&Ð(AØÐAØÐ!:ØÐ4ØÐ7ð
#Ð ð "Ð#;Ð<Ð ñ ×Ò÷	÷ 	ó 	õõõõ Lõ#õ	#õ
#ð  *.ÐÓ-õZõx%õ)ð Ðòòò÷wñ w÷ñ ÷pñ pò
ò
uò
ð ˜	Ð#FÈ	ÐSTÐUØ�)Ð:¸IÀqÐIØ�)Ð:¸JÈÐUØˆiÐ7¸ÀAÐFð	2Ð ó ð €qà€qð	6Ð "ó ð  !Ð à79Ð Ó 9õõ(÷Lð^ Pf÷ / ÷d÷.÷"<ð@ Ð ð ñ"ó ð"õ õ4U/òp‚r=   