
    #jb                       d dl mZ d dlmZ d dlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ erddlmZ ddlmZ i dd	d
d	ddddddddddddddddddddddddddddddi dddddddddd d!d d"d d#d$d%d$d&d$d'd$d(d$d)d$d*d+d,d+d-d$d.d$i d/d0d1d2d3d$d4d5d6d5d7d5d8d5d9d5d:d5d;d5d<d5d=d5d>d?d@d?dAd?dBd?dCd?ZdD ZdEadF Z	 d^d_dPZd`dUZ	 	 	 dadbd]ZdES )c    )annotations)deepcopy)TYPE_CHECKING   )	ChunkConcatenate"ErnieFuseAndSplitTextVisionExpertsMergeModulelistPrefixChange	TransposeWeightConverterWeightRenamingWeightTransformPreTrainedModel)HfQuantizerminimaxmixtral
minimax_m2afmoe	qwen2_moedeepseek_v2deepseek_v3dots1ernie4_5_moeglm4_moeglm4_moe_liteglm_moe_dsa	glm4v_moelongcat_flash
solar_open	qwen3_moeqwen3_omni_moeqwen3_omni_moe_thinker
qwen3_nexthunyuan_v1_moe	flex_olmoolmoe
exaone_moe
rt_detr_v2rt_detrpp_doclayout_v2pp_doclayout_v3	paligemmallava
aya_visiongot_ocr2shieldgemma2gemma3internvlllava_next_video
llava_nextllava_onevisionvipllavamistral3
qwen2_5_vlqwen2_vlsam3_tracker_videosam3_trackerpp_chart2tablealtclip_vision_modelclip_vision_modelchinese_clip_vision_modelclipseg_vision_modelmetaclip_2_vision_modelmlcd_visionmlcdsiglip_vision_modelsiglip2_vision_modelxclip_vision_modelclipseg_text_modelclip_text_modelmetaclip_2_text_modelsiglip_text_modelsiglip2_text_modelxclip_text_modelc            &     +   i dt          dd          gdg t          dd          t          dd	          t          d
d          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          d d!          t          d"d#          t          d$d%          t          d&d'          t          d(d)          t          d*d+          t          d,d-          t          d.d-          t          d/d0          t          d1d2          t          d3d4          t          d5d6          t          d7d8          t          d9d:          t          d;d<          t          d=d>          t          d?d@          t          dAdB          t          dCdD          t          dEdF          t          dGdH          t          dIdJ          t          dKdL          t          dMdN          t          dOdP          t          dQdR          t          dSdTgdUt          dVW          t          dXW          gY          t          dZd[t          dVW          gY          d\t          d]d^          t          d_d`          t          dadb          t          dcdd          gdet          d]d^          t          d_d`          t          dadb          t          dcdd          t          dfdg          gdht	          dij          gdkt	          dlj          gdmt          d]d^          t          d_d`          t          dndo          t          dpdq          t          dcdd          gdrt          d]d^          t          d_d`          t          dsdt          gdut          d]d^          t          d_d`          t          dvdw          t          dcdd          gdxt          dydz          t          d{d`          t          d|d}          gd~t          dd          t          dd          t          dd^          gdt          dd^          t          dd          gdt	          dd          t          dd          gdt	          d          gdt          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          gdt          dd          gdt          dd          gi dt          dd          gdt          dd          t          dd          gdt          dd          t          dd          gdt	          dd          gdt          dd          t          dd          t          dd          gdt          dd          t          dd          t          dd¦          gdt          ddŦ          t          ddgdt          dVW          t          dXW          gY          t          dgdt          dVW          gY          gdt          ddgdt          dVW          t          dXW          gY          t          ddt          dVW          gY          gdt          ddt          dXddӬԦ          gY          t          ddt          dXddӬԦ          gY          gdt          ddŦ          t          ddצ          t          ddgdt          dVW          t          dXW          gY          t          ddt          dVW          gY          gdt          ddgdt          dVW          t          dXW          gY          t          ddt          dVW          gY          gdt          didߦ          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          ddt          dVdX          gY          t          ddt          dVdX          gY          t          dgddgt          dVW          gY          t          dgddgt          dVdX          gY          t          ddgd dgt          dVdX          gY          gdt          dd          t          dd          t          dd          t          d	d
          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd           t          d!d"          t          d#d$          t          d%d&          t          d'd(          t          d)d*          gd+t          dd          t          dd          t          d	d
          t          d,d-          gd.g t          dd          t          d/d0          t          d1d2          t          dd          t          d	d
          t          d3d4          t          d5d6          t          d7d8          t          d9d:          t          d;d<          t          d=d>          t          d?d@          t          dAdB          t          dCdD          t          dEdF          t          dGdH          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd           t          d!d"          t          d#d$          t          d%d&          t          d'd(          t          d)d*          dIt          dd          t          d/d0          t          dd          t          d	d
          gdJt          dd          t          ddK          t          d	dL          t          d,d-          gt          dMdN          t          dOdP          t          dQgdRt          dVW          gY          t          dSgdTt          dVW          gY          gt          dUdVgdt          dVW          t          dXW          gY          t          dWdt          dVW          gY          gt          dXdY          t          dZd[          t          d\d0          t          d]d^          t          d_d`          t          dda          t          dbd          t          dcdd          t          degg dft          dVW          gY          g	t          dZd[          t          dXdY          t          dgg dft          dVW          gY          t          dhd0          t          dbd          t          dcdd          gt          didj          t          dkdl          t          dmdn          t          dodp          t          dqdr          t          dsdt          t          dudv          t          dwdx          t          dydz          t          d{d|          t          d}d~          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          gt          dd          t          dd          t          dd          t          dd          t          dd          t          dgg dt          dVW          gY          t          dgg dt          dVW          gY          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd¦          t          dÐdĦ          t          dŐdƦ          gt          dǐdȬ          t          dɐdʬ          gd˜} | dxx         | d                                         z  cc<   | dxx         t          d͐dά          t          dϐdЬ          gz  cc<   | d                                         | d<   | dxx         t          ddҦ          gz  cc<   | d                                         | d<   | dxx         t          dԐdզ          gz  cc<   | d                                         | d<   | dxx         t          dאdئ          gz  cc<   | d                                         | d<   | dxx         t          dd          t          dېd׬          t          dܐdݬ          gz  cc<   | d                                         | d<   | dxx         | d                                         z  cc<   | d                                         | d<   | dxx         t          ddئ          t          ddݦ          gz  cc<   t          
                                D ]'\  }}|| v r
| |                                         | |<   (| S (  Naltclipzlayer\.zlayers.source_patternstarget_patternsdeepseek_v4z^embed\.weight$zembed_tokens.weightz^head\.weight$zlm_head.weightz^norm\.weight$znorm.weightz^hc_head_fn$zhc_head.hc_fnz^hc_head_base$zhc_head.hc_basez^hc_head_scale$zhc_head.hc_scalez^layers\.(\d+)\.attn_norm\.zlayers.\1.input_layernorm.z^layers\.(\d+)\.ffn_norm\.z#layers.\1.post_attention_layernorm.z^layers\.(\d+)\.hc_attn_fn$zlayers.\1.attn_hc.fnz^layers\.(\d+)\.hc_attn_base$zlayers.\1.attn_hc.basez^layers\.(\d+)\.hc_attn_scale$zlayers.\1.attn_hc.scalez^layers\.(\d+)\.hc_ffn_fn$zlayers.\1.ffn_hc.fnz^layers\.(\d+)\.hc_ffn_base$zlayers.\1.ffn_hc.basez^layers\.(\d+)\.hc_ffn_scale$zlayers.\1.ffn_hc.scalez^layers\.(\d+)\.attn\.zlayers.\1.self_attn.z^layers\.(\d+)\.ffn\.zlayers.\1.mlp.z%^layers\.(\d+)\.self_attn\.attn_sink$zlayers.\1.self_attn.sinksz6^layers\.(\d+)\.self_attn\.indexer\.compressor\.norm\.z/layers.\1.self_attn.compressor.indexer.kv_norm.z4^layers\.(\d+)\.self_attn\.indexer\.compressor\.ape$z4layers.\1.self_attn.compressor.indexer.position_biasz0^layers\.(\d+)\.self_attn\.indexer\.compressor\.z'layers.\1.self_attn.compressor.indexer.z$^layers\.(\d+)\.self_attn\.indexer\.z-^layers\.(\d+)\.self_attn\.compressor\.norm\.z'layers.\1.self_attn.compressor.kv_norm.z+^layers\.(\d+)\.self_attn\.compressor\.ape$z,layers.\1.self_attn.compressor.position_biasz(^layers\.(\d+)\.self_attn\.(.*?)\.wq_a\.z layers.\1.self_attn.\2.q_a_proj.z(^layers\.(\d+)\.self_attn\.(.*?)\.wq_b\.z layers.\1.self_attn.\2.q_b_proj.z'^layers\.(\d+)\.self_attn\.(.*?)\.wkv\.zlayers.\1.self_attn.\2.kv_proj.z)^layers\.(\d+)\.self_attn\.(.*?)\.wgate\.z!layers.\1.self_attn.\2.gate_proj.z(^layers\.(\d+)\.self_attn\.(.*?)\.wo_a\.z layers.\1.self_attn.\2.o_a_proj.z(^layers\.(\d+)\.self_attn\.(.*?)\.wo_b\.z layers.\1.self_attn.\2.o_b_proj.z!^layers\.(\d+)\.self_attn\.wq_a\.zlayers.\1.self_attn.q_a_proj.z!^layers\.(\d+)\.self_attn\.wq_b\.zlayers.\1.self_attn.q_b_proj.z ^layers\.(\d+)\.self_attn\.wkv\.zlayers.\1.self_attn.kv_proj.z!^layers\.(\d+)\.self_attn\.wo_a\.zlayers.\1.self_attn.o_a_proj.z!^layers\.(\d+)\.self_attn\.wo_b\.zlayers.\1.self_attn.o_b_proj.z#^layers\.(\d+)\.self_attn\.q_norm\.zlayers.\1.self_attn.q_a_norm.z ^layers\.(\d+)\.mlp\.gate\.bias$z*layers.\1.mlp.gate.e_score_correction_biasz)^layers\.(\d+)\.mlp\.shared_experts\.w1\.z'layers.\1.mlp.shared_experts.gate_proj.z)^layers\.(\d+)\.mlp\.shared_experts\.w2\.z'layers.\1.mlp.shared_experts.down_proj.z)^layers\.(\d+)\.mlp\.shared_experts\.w3\.z%layers.\1.mlp.shared_experts.up_proj.zexperts.*.w1.weightzexperts.*.w3.weightzexperts.gate_up_projr   )dimr   )rR   rS   
operationszexperts.*.w2.weightzexperts.down_projr/   z^language_model.modelzmodel.language_modelz^language_model.lm_headlm_headz^vision_towerzmodel.vision_towerz^multi_modal_projectorzmodel.multi_modal_projectorr6   z^image_newlinezmodel.image_newliner@   vision_model)prefix_to_removerJ   
text_modelvideo_llavaz^image_towerzmodel.image_towerz^video_towerzmodel.video_towerfuyuz^vision_embed_tokenszmodel.vision_embed_tokensmllamaz^vision_modelzmodel.vision_modelemu3z^text_model.modelzmodel.text_modelz^text_model.lm_headz^vqmodelzmodel.vqmodelpaddleocr_vlz^mlp_ARzmodel.projectorz^visualzmodel.visualz1^model(?!(\.visual|\.projector|\.language_model))r;   z((?<!_)model(?!\.(language_model|visual))colqwen2modelvlm)rY   model_prefixz vlm(?!\.(language_model|visual))zvlm.language_modeltimm_wrapper
timm_model)prefix_to_addpi0
state_projzembed_action_time.state_projaction_in_projz embed_action_time.action_in_projaction_time_mlp_inz$embed_action_time.action_time_mlp_inaction_time_mlp_outz%embed_action_time.action_time_mlp_outz&^paligemma_with_expert.paligemma.modelz	model.vlmz)^paligemma_with_expert.gemma_expert.modelz	model.ditz+^paligemma_with_expert.gemma_expert.lm_headzmodel.dit.embed_tokensz(^paligemma_with_expert.paligemma.lm_headz%model.vlm.language_model.embed_tokensesmz9encoder.layer.*.attention.self.rotary_embeddings.inv_freqzrotary_embeddings.inv_freqdinov3_convnextz(?<!model\.)stageszmodel.stages
dinov3_vitz(?<!model\.)layer.zmodel.layer.
timesfm2_5ff0fc1ff1fc2olmo_hybridattention_layer_norminput_layernormfeedforward_layer_normpost_attention_layernormqwen3_5_textlanguage_modelr=   z'detector_model.vision_encoder.backbone.zvision_encoder.backbone.ztracker_neck.zvision_encoder.neck.ztracker_model.(.+)z\1t5gemma2_encoderz-(?<!decoder\.)(?<!text_model\.)embed_tokens\.ztext_model.embed_tokens.z5(?<!decoder\.)(?<!text_model\.)(?<!layer)(?<!_)norm\.ztext_model.norm.zA(?<!vision_model.encoder\.)(?<!decoder\.)(?<!text_model\.)layers.ztext_model.layers.r   z.block_sparse_moe.z.mlp.z.experts.*.w1.weightz.experts.*.w3.weightz.experts.gate_up_projz.experts.*.w2.weightz.experts.down_projr   zmlp.experts.*.gate_proj.weightzmlp.experts.*.up_proj.weightzmlp.experts.gate_up_projzmlp.experts.*.down_proj.weightzmlp.experts.down_projqwen3_vl_moe   T)
check_dimsphimoez.gate.weightz.router.weightlfm2_moez feed_forward.experts.*.w1.weightz feed_forward.experts.*.w3.weightz!feed_forward.experts.gate_up_projz feed_forward.experts.*.w2.weightzfeed_forward.experts.down_projernie4_5_vl_moevision_towerzspatial_linear.0zspatial_linear.fc1zspatial_linear.2zspatial_linear.fc2zspatial_linear.3zspatial_linear.lnztemporal_linear.0ztemporal_linear.fc1ztemporal_linear.2ztemporal_linear.fc2ztemporal_linear.3ztemporal_linear.lnz!(?<!language_model\.)embed_tokenszlanguage_model.embed_tokensz(?<!language_model\.)layerszlanguage_model.layersz(?<!_)(?<!\w)norm\.zlanguage_model.norm.zmlp.gate.weight_1zmlp.vision_moe.gate.weight)dim0dim1zmlp.gate.weightzmlp.text_moe.gate.weightz'mlp.moe_statics.e_score_correction_biasz5mlp.text_moe.gate.moe_statics.e_score_correction_biasz7mlp.vision_moe.gate.moe_statics.e_score_correction_biaszexperts.*.down_proj.weightztext_moe.experts.down_projzvision_moe.experts.down_proj)	stack_dim
concat_dimzexperts.*.gate_proj.weightzexperts.*.up_proj.weightztext_moe.experts.gate_up_projzvision_moe.experts.gate_up_projdetrzbackbone.conv_encoderbackboneout_projo_projzlayers.(\d+).fc1zlayers.\1.mlp.fc1zlayers.(\d+).fc2zlayers.\1.mlp.fc2zbbox_attention.q_linearzbbox_attention.q_projzbbox_attention.k_linearzbbox_attention.k_projzmask_head.lay1zmask_head.conv1.convzmask_head.gn1zmask_head.conv1.normzmask_head.lay2zmask_head.conv2.convzmask_head.gn2zmask_head.conv2.normzmask_head.adapter1z"mask_head.fpn_stages.0.fpn_adapterzmask_head.lay3z"mask_head.fpn_stages.0.refine.convzmask_head.gn3z"mask_head.fpn_stages.0.refine.normzmask_head.adapter2z"mask_head.fpn_stages.1.fpn_adapterzmask_head.lay4z"mask_head.fpn_stages.1.refine.convzmask_head.gn4z"mask_head.fpn_stages.1.refine.normzmask_head.adapter3z"mask_head.fpn_stages.2.fpn_adapterzmask_head.lay5z"mask_head.fpn_stages.2.refine.convzmask_head.gn5z"mask_head.fpn_stages.2.refine.normzmask_head.out_layzmask_head.output_convr+   zencoder.encoder.(\d+).layerszencoder.aifi.\1.layersconditional_detrzself_attn.out_projzself_attn.o_projzencoder_attn.out_projzencoder_attn.o_projz%decoder.layers.(\d+).sa_qcontent_projz*decoder.layers.\1.self_attn.q_content_projz!decoder.layers.(\d+).sa_qpos_projz&decoder.layers.\1.self_attn.q_pos_projz%decoder.layers.(\d+).sa_kcontent_projz*decoder.layers.\1.self_attn.k_content_projz!decoder.layers.(\d+).sa_kpos_projz&decoder.layers.\1.self_attn.k_pos_projzdecoder.layers.(\d+).sa_v_projz"decoder.layers.\1.self_attn.v_projz%decoder.layers.(\d+).ca_qcontent_projz-decoder.layers.\1.encoder_attn.q_content_projz!decoder.layers.(\d+).ca_qpos_projz)decoder.layers.\1.encoder_attn.q_pos_projz%decoder.layers.(\d+).ca_kcontent_projz-decoder.layers.\1.encoder_attn.k_content_projz!decoder.layers.(\d+).ca_kpos_projz)decoder.layers.\1.encoder_attn.k_pos_projzdecoder.layers.(\d+).ca_v_projz%decoder.layers.\1.encoder_attn.v_projz&decoder.layers.(\d+).ca_qpos_sine_projz.decoder.layers.\1.encoder_attn.q_pos_sine_projdeformable_detrd_finezlayers.\1.mlp.layers.0zlayers.\1.mlp.layers.1z	backbone.zmodel.zembedding.weightzembeddings.weightzmixer.experts.*.up_proj.weightzmixer.experts.up_projz mixer.experts.*.down_proj.weightzmixer.experts.down_projz'feed_forward.experts.*.gate_proj.weightz%feed_forward.experts.*.up_proj.weightz'feed_forward.experts.*.down_proj.weightzencoder.layerslayersemb_lnzembeddings.LayerNormzattn.out_projfc11up_projfc12	gate_proj	down_projnorm1norm2post_mlp_layernormz	attn.Wqkv)zself_attn.q_projzself_attn.k_projzself_attn.v_projz
mixer.Wqkvzmixer.out_projzencoder\.pre_encode\.conv\.zencoder.subsampling.layers.zencoder\.pre_encode\.out\.zencoder.subsampling.linear.z7transf_decoder\._embedding\.position_embedding\.pos_enczdecoder.pos_emb.weightz+transf_decoder\._embedding\.token_embeddingzdecoder.embed_tokensz&transf_decoder\._embedding\.layer_normzdecoder.embedding_layernormz*transf_decoder\._decoder\.final_layer_normzdecoder.normz transf_decoder\._decoder\.layerszdecoder.layerszencoder_decoder_proj\.zdecoder.proj.z"encoder\.(.+)\.self_attn\.linear_qzencoder.\1.self_attn.q_projz"encoder\.(.+)\.self_attn\.linear_kzencoder.\1.self_attn.k_projz"encoder\.(.+)\.self_attn\.linear_vzencoder.\1.self_attn.v_projz$encoder\.(.+)\.self_attn\.linear_outzencoder.\1.self_attn.o_projz$encoder\.(.+)\.self_attn\.linear_posz$encoder.\1.self_attn.relative_k_projz$encoder\.(.+)\.self_attn\.pos_bias_uzencoder.\1.self_attn.bias_uz$encoder\.(.+)\.self_attn\.pos_bias_vzencoder.\1.self_attn.bias_vz)decoder\.(.+)\.first_sub_layer\.query_netzdecoder.\1.self_attn.q_projz'decoder\.(.+)\.first_sub_layer\.key_netzdecoder.\1.self_attn.k_projz)decoder\.(.+)\.first_sub_layer\.value_netzdecoder.\1.self_attn.v_projz.decoder\.(.+)\.first_sub_layer\.out_projectionzdecoder.\1.self_attn.o_projz\.second_sub_layer\.query_netz.encoder_attn.q_projz\.second_sub_layer\.key_netz.encoder_attn.k_projz\.second_sub_layer\.value_netz.encoder_attn.v_projz"\.second_sub_layer\.out_projectionz.encoder_attn.o_projz\.third_sub_layer\.dense_inz.mlp.fc1z\.third_sub_layer\.dense_outz.mlp.fc2z\.layer_norm_1\.z.input_layernorm.z\.layer_norm_2\.z.post_attention_layernorm.z\.layer_norm_3\.z.final_layernorm.z\.conv\.batch_normz
.conv.normzlog_softmax\.mlp\.layer0proj_outz^vision_model\.zmodel\.vision_tower\.zencoder\.layers\.zlayers\.z\.ls1z
\.lambda_1z\.ls2z
\.lambda_2z(layers\.\d+)\.attn\.proj\.z\1.attention.projection_layer.zattn.qkv.weight)zattention.q_proj.weightzattention.k_proj.weightzattention.v_proj.weightzattn.qkv.bias)zattention.q_proj.biaszattention.k_proj.biaszattention.v_proj.biasz	\.norm1\.z\.layernorm_before\.z	\.norm2\.z\.layernorm_after\.z\.embeddings\.class_embeddingz\.embeddings\.cls_tokenz \.embeddings\.position_embeddingz!\.embeddings\.position_embeddingsz\.embeddings\.patch_embedding\.z,\.embeddings\.patch_embeddings\.projection\.z^language_model\.model\.zmodel\.language_model\.z^language_model\.lm_head\.z	lm_head\.z
^mlp1\.0\.z*model\.multi_modal_projector\.layer_norm\.z
^mlp1\.1\.z(model\.multi_modal_projector\.linear_1\.z
^mlp1\.3\.z(model\.multi_modal_projector\.linear_2\.zLayerNorm.gammazLayerNorm.weightzLayerNorm.betazLayerNorm.bias)
nemotron_hjamba
nomic_bertjina_embeddings_v3
cohere_asrqianfan_ocrlegacyr   z
.weight_g$z".parametrizations.weight.original0z
.weight_v$z".parametrizations.weight.original1r   z,mlp.gate.moe_statics.e_score_correction_biasr   z).block_sparse_moe.e_score_correction_biasz.mlp.e_score_correction_biasr)   zmlp.e_score_correction_biasz mlp.gate.e_score_correction_biashy_v3zmlp\.router\.gate\.weightzmlp\.expert_biaszmlp\.shared_mlp\.zmlp.shared_experts.qwen3_5_moe_textlagunaz#mlp.experts.e_score_correction_biaszmlp.shared_expert.)r   r   r
   r   r   r   r   r	   copy_MODEL_TO_CONVERSION_PATTERNitems)mapping
model_typebase_patterns      g/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/transformers/conversion_mapping.py$_build_checkpoint_conversion_mappingr   _   s   O
:yQQQ
O
 	 v
6 +=Odeee7v
8 +<N^___9v
: +<m\\\;v
< ?O\\\=v
> +<N_```?v
@ +=OabbbAv
B  > =  Cv
J  = F  Kv
R +I[rsssSv
T  @Rk  Uv
Z  ASm  [v
` +HZpqqqav
b +J\tuuucv
d  @Rk  ev
j  9 7  kv
r  8 1  sv
D  H <  Ev
L  Y R  Mv
T  W W  Uv
\  S J  ]v
d  G J  ev
l  P J  mv
t  N O  uv
F  K C  Gv
N  K C  Ov
V  J B  Wv
^  L D  _v
f  K C  gv
n  K C  ov
v  D @  wv
~  D @  v
F  C ?  Gv
N  D @  Ov
V  D @  Wv
f  F @  gv
r  C M  sv
z  L J  {v
B  L J  Cv
J  L H  Kv
R ))! !7+222KA4F4F4FG  Sv
b  5 3+2223  cv
	O
v 	+CUklll+EW`aaa+;Mabbb+DVsttt	
wO
B 	+CUklll+EW`aaa+;Mabbb+DVsttt+<Ncddd
CO
P 	lNKKKLQO
R 	L,GGGHSO
T 	+CUklll+EW`aaa?L_```?L_```+DVsttt
UO
b 	+CUklll+EW`aaa+BToppp
cO
l 	+CUklll+EW`aaa+;Mabbb+DVsttt	
mO
x 	+?Qcddd+AS\]]];XXX
yO
B 	:GXYYY:~VVV T 6  
CO
R 	 K]s   :~VVV	
SO
^ 	'FFF+N`tuuu
_O
f 	LAAABgO
h 	=Jhiii+<Npqqq 5Gm    6Ho   +Tfqrrr+Wituuu N 8    K G  !
iO
R 	K, 
SO
^ 	N+@/RRS_O
 O
` 	~&;_MMNaO
b 	5%((5%((
cO
j 	13DEE35OPP
kO
r 	7GV]^^^_sO
t 	 J\v   +;Mcddd+@RWXXX
uO
D	 	KMghhSUghh_auvv
E	O
N	 	/99**! !8#    A&&&	   *! !5#  
 
 

O	O
D
 	42! !;+222KA4F4F4FG    @ 7+2223  
E
O
b
 	 : :%at<<<=  
  7 7%at<<<=  
c
O
z
 	/99>+;<<**! !8+222KA4F4F4FG    6 4+2223  
{
O
\ 	66! !D+222KA4F4F4FG    B @+2223  
]O
z 	>>::-/CDD-/CDD-/BCC.0EFF.0EFF.0DEE?A^__9;RSS13IJJ 3 <%115556  
  1 :%115556  
 !J KKM! "aLLL>   != >02! ?WXYYYZ   0.!
 45! ?WXYYYZ
 
 
Q3
{O
b 	2J??:x00.0DEE.0DEE46MNN46MNN+-CDD?,BCC+-CDD?,BCC/1UVV+-QRR?,PQQ/1UVV+-QRR?,PQQ/1UVV+-QRR?,PQQ.0GHH-
cO
R 	:x00.0DEE.0DEE:<UVV	
SO
^ 	 '
2J??'
/1CDD'
 24IJJ'
 .0DEE	'

 .0DEE'
 CErss'
 ?Ajkk'
 CErss'
 ?Ajkk'
 <>cdd'
 CEuvv'
 ?Amnn'
 CEuvv'
  ?Amnn!'
" <>fgg#'
$ 9;l %'
, 46MNN-'
. 46MNN/'
2 +-CDD3'
4 ?,BCC5'
6 +-CDD7'
8 ?,BCC9'
: /1UVV;'
< +-QRR='
> ?,PQQ?'
@ /1UVVA'
B +-QRRC'
D ?,PQQE'
F /1UVVG'
H +-QRRI'
J ?,PQQK'
L .0GHHM'
_O
n 	2J??/1CDD.0DEE.0DEE	
oO
z 	:x00.0IJJ.0IJJ:<UVV	
{O
 O
H ;11-/BCC4! !8+2223   6! !:+2223  
& =;! !D+222KA4F4F4FG    I @+2223  
  ,i889&=>>+-@AA7J//7L116<008%@AA%  !,! ! !
 "aLLL>  
. 8E[\\\+;XVVV ,! ! !
 "aLLL>   +;M_```7D^___7DXYYY
" 9;YZZ8:XYYUWpqqIKbccDFdeeH/ZZ>@QRR46FGG@B`aa@B`aa@B`aaBDbccBDkllBDbccBDbccGIghhEGeffGIghhLNlmm;=TUU9;RSS;=TUU@BYZZ9;GG:KHH.0DEE.0MNN.0DEE0-@@6DD=
B -/GHH/==8]338]339;\]]!2 3 q q q!aLLL>  
 !0 1 k k k!aLLL>  
 <)@AA<)?@@;=WXX>@dee=?noo68RSS8,GG=*WXX=*UVV=*UVV3
8  1 2    0 0  	
KO
 O
 O
Gb ENNNgh',,...NNNH(@	
 	
 	
 	(@	
 	
 	
	 	 &k27799GNN@Bpqq   $I.3355GLLBDbcc  $K05577GLLn-JLnoopp {+0022GGG'CUfggg':Lijjj';Mbccc 
 #*."9">">"@"@G7;#7#<#<#>#>>,1133GHH<>`aa+-BCC 
 %A$F$F$H$H ; ; 
L  %l388::
N    Nc                z    t           t                      a t          t                               |                     S )N)$_checkpoint_conversion_mapping_cacher   r   get)r   s    r   !get_checkpoint_conversion_mappingr   %  s1    +3/S/U/U,8<<ZHHIIIr   Fr   strr   &list[WeightConverter | WeightRenaming]	overwriteboolreturnNonec                    t           t                      a | t           v r|st          d|  d          |t           | <   d S )NzModel type z5 already exists in the checkpoint conversion mapping.)r   r   
ValueError)r   r   r   s      r   &register_checkpoint_conversion_mappingr   ,  sR     ,3/S/U/U,999)9hzhhhiii7>(444r   ra   r   rc   list[WeightTransform] | Nonec                    t          | j        dd           }|[t          |          }|H|dk    rBt          |          D ]2\  }}t	          |t
                    r|                    |          ||<   3|S d S )Nr    )getattrconfigr   	enumerate
isinstancer   with_submodel_prefix)ra   rc   r   model_specific_conversionsi
conversions         r   $extract_weight_conversions_for_modelr   9  s    |T::J%Fz%R%R"%1lb6H6H!*+E!F!F b b:j,77 b4>4S4ST`4a4a.q1))4r   Tkey_mappingdict[str, str] | Nonehf_quantizerHfQuantizer | None
add_legacylist[WeightTransform]c                   ddl m} g }|d |                                D             }t                      }|                                 D ]i\  }}t          ||          rT|j        j        |vrFt          ||          }	|	4|	                    |	           |
                    |j        j                   j|r"|	                    t          d                     ||                    |          }|S )z
    For a given `model`, obtain the weight conversion mapping if any are registered either as a simple renaming
    `_checkpoint_conversion_mapping` class argument, or in the general WeightConverter mapping.
    r   r   Nc                6    g | ]\  }}t          ||           S )rQ   )r   ).0kvs      r   
<listcomp>z0get_model_conversion_mapping.<locals>.<listcomp>Y  s-    sssW[WXZ[nQPQRRRsssr   r   )modeling_utilsr   r   setnamed_modulesr   r   r   r   extendaddr   update_weight_conversions)
ra   r   r   r   r   weight_conversionsseen_model_typesname	submoduleconversionss
             r   get_model_conversion_mappingr   G  s%    0/////  ss_j_p_p_r_rsss uu ..00 B Bii11 	Bi6F6QYi6i6i>y$OOK&"))+666 $$Y%5%@AAA O!!"CH"M"MNNN )CCDVWWr   )F)r   r   r   r   r   r   r   r   )ra   r   rc   r   r   r   )NNT)
ra   r   r   r   r   r   r   r   r   r   )
__future__r   r   r   typingr   core_model_loadingr   r   r	   r
   r   r   r   r   r   r   r   
quantizersr   r   r   r   r   r   r   r    r   r   <module>r      s   # " " " " "                  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  (//////''''''6 y6  )6 
 [6  ;6  ;6  [6  K6  6  [6  ;6  6  [6  +6   !6 " k#6 $ k%6 & +'6  6 ( k)6 * +6 , [-6 . +/6 0 )16 2 y36 4 y56 6 76 8 '96 : ;6 < G=6 > g?6 @ A6 B C6 D |E6 F G6 H I6  6  6 J *K6 L .M6 N gO6 P /Q6 R  !4S6 T /U6 V 2W6 X &Y6 Z [6 \ .]6 ^ /_6 ` -a6 b +c6 d .e6 f *g6 h +i6 j )k6  6  r@ @ @F (, $J J J 
? 
? 
? 
? 
?     *.'+	) ) ) ) ) ) )r   