ó
    ‡Ž¡j+º  ã                   ón  • S r SSKrSSKJr  SSKJrJrJr  SSKJr	  SSK
Jr  SSKJr  SS	KJrJrJrJrJr  SS
KJr  SSKJrJr  SSKJr  \R6                  " \5      r " S S\R<                  5      r " S S\R<                  5      r \RB                  RD                  S 5       r#\RB                  RD                  S 5       r$\RB                  RD                  S 5       r%\RB                  RD                  S 5       r&\RB                  RD                  S\RN                  S\(4S j5       r)\RB                  RD                  S\RN                  S\RN                  4S j5       r*\RB                  RD                  S\RN                  S\RN                  S\(4S j5       r+\RB                  RD                  S\RN                  S\RN                  4S j5       r, " S S\R<                  5      r- " S  S!\R<                  5      r. " S" S#\R<                  5      r/ " S$ S%\R<                  5      r0 " S& S'\R<                  5      r1 " S( S)\5      r2 " S* S+\R<                  5      r3\ " S, S-\5      5       r4\ " S. S/\45      5       r5 " S0 S1\R<                  5      r6 " S2 S3\R<                  5      r7 " S4 S5\R<                  5      r8 " S6 S7\R<                  5      r9 " S8 S9\R<                  5      r:\ " S: S;\45      5       r; " S< S=\R<                  5      r<\" S>S?9 " S@ SA\45      5       r=\ " SB SC\45      5       r>\ " SD SE\45      5       r?/ SFQr@g)GzPyTorch DeBERTa model.é    N)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚMSELossé   )Úinitialization)ÚACT2FN)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚMaskedLMOutputÚQuestionAnsweringModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚPreTrainedModel)Úauto_docstringÚloggingé   )ÚDebertaConfigc                   ó6   ^ • \ rS rSrSrSU 4S jjrS rSrU =r$ )ÚDebertaLayerNormé&   z2LayerNorm module (epsilon inside the square root).c                 óê   >• [         TU ]  5         [        R                  " [        R
                  " U5      5      U l        [        R                  " [        R                  " U5      5      U l        X l	        g ©N)
ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚzerosÚbiasÚvariance_epsilon)ÚselfÚsizeÚepsÚ	__class__s      €ÚºC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\transformers/models/deberta/modeling_deberta.pyr   ÚDebertaLayerNorm.__init__)   sF   ø€ Ü‰ÑÔÜ—l’l¤5§:¢:¨dÓ#3Ó4ˆŒÜ—L’L¤§¢¨TÓ!2Ó3ˆŒ	Ø #Õó    c                 óH  • UR                   nUR                  5       nUR                  SSS9nX-
  R                  S5      R                  SSS9nX-
  [        R
                  " X@R                  -   5      -  nUR                  U5      nU R                  U-  U R                  -   nU$ )NéÿÿÿÿT)Úkeepdimé   )
ÚdtypeÚfloatÚmeanÚpowr   Úsqrtr"   Útor   r!   )r#   Úhidden_statesÚ
input_typer0   ÚvarianceÚys         r'   ÚforwardÚDebertaLayerNorm.forward/   sž   € Ø"×(Ñ(ˆ
Ø%×+Ñ+Ó-ˆØ×!Ñ! "¨dÐ!Ð3ˆØ!Ñ(×-Ñ-¨aÓ0×5Ñ5°bÀ$Ð5ÐGˆØ&Ñ-´·²¸H×G\ÑG\Ñ<\Ó1]Ñ]ˆØ%×(Ñ(¨Ó4ˆØ�K‰K˜-Ñ'¨$¯)©)Ñ3ˆØˆr)   )r!   r"   r   )gê-�™—q=©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r8   Ú__static_attributes__Ú__classcell__©r&   s   @r'   r   r   &   s   ø† Ù<÷$÷ð r)   r   c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )ÚDebertaSelfOutputé:   c                 ó  >• [         TU ]  5         [        R                  " UR                  UR                  5      U l        [        UR                  UR                  5      U l        [        R                  " UR                  5      U l        g r   )r   r   r   ÚLinearÚhidden_sizeÚdenser   Úlayer_norm_epsÚ	LayerNormÚDropoutÚhidden_dropout_probÚdropout©r#   Úconfigr&   s     €r'   r   ÚDebertaSelfOutput.__init__;   s\   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z’z &×"<Ñ"<Ó=ˆ�r)   c                 óp   • U R                  U5      nU R                  U5      nU R                  X-   5      nU$ r   ©rI   rN   rK   ©r#   r4   Úinput_tensors      r'   r8   ÚDebertaSelfOutput.forwardA   ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Ñ'CÓDˆØÐr)   )rK   rI   rN   ©r;   r<   r=   r>   r   r8   r@   rA   rB   s   @r'   rD   rD   :   s   ø† õ>÷ð r)   rD   c                 ó’  • U R                  S5      nUR                  S5      n[        R                  " U[        R                  U R                  S9n[        R                  " U[        R                  UR                  S9nUSS2S4   UR                  SS5      R                  US5      -
  nUSU2SS24   nUR                  S5      nU$ )aÅ  
Build relative position according to the query and key

We assume the absolute position of query \(P_q\) is range from (0, query_size) and the absolute position of key
\(P_k\) is range from (0, key_size), The relative positions from query to key is \(R_{q \rightarrow k} = P_q -
P_k\)

Args:
    query_size (int): the length of query
    key_size (int): the length of key

Return:
    `torch.LongTensor`: A tensor with shape [1, query_size, key_size]

éþÿÿÿ©r.   ÚdeviceNr   r+   r   )r$   r   ÚarangeÚlongr\   ÚviewÚrepeatÚ	unsqueeze)Úquery_layerÚ	key_layerÚ
query_sizeÚkey_sizeÚq_idsÚk_idsÚrel_pos_idss          r'   Úbuild_relative_positionri   H   s¬   € ð$ ×!Ñ! "Ó%€JØ�~‰~˜bÓ!€Hä�LŠL˜¬5¯:©:¸k×>PÑ>PÑQ€EÜ�LŠL˜¬¯©¸I×<LÑ<LÑM€EØš˜4˜‘. 5§:¡:¨a°Ó#4×#;Ñ#;¸JÈÓ#JÑJ€KØ˜k˜z˜kª1˜nÑ-€KØ×'Ñ'¨Ó*€KØÐr)   c                 ó¤   • U R                  UR                  S5      UR                  S5      UR                  S5      UR                  S5      /5      $ )Nr   r   r-   r+   ©Úexpandr$   )Úc2p_posrb   Úrelative_poss      r'   Úc2p_dynamic_expandro   e   sI   € à�>‰>˜;×+Ñ+¨AÓ.°×0@Ñ0@ÀÓ0CÀ[×EUÑEUÐVWÓEXÐZf×ZkÑZkÐlnÓZoÐpÓqÐqr)   c                 ó¤   • U R                  UR                  S5      UR                  S5      UR                  S5      UR                  S5      /5      $ )Nr   r   rZ   rk   )rm   rb   rc   s      r'   Úp2c_dynamic_expandrq   j   sG   € à�>‰>˜;×+Ñ+¨AÓ.°×0@Ñ0@ÀÓ0CÀYÇ^Á^ÐTVÓEWÐYb×YgÑYgÐhjÓYkÐlÓmÐmr)   c                 óŒ   • U R                  UR                  5       S S U R                  S5      UR                  S5      4-   5      $ )Nr-   rZ   rk   )Ú	pos_indexÚp2c_attrc   s      r'   Úpos_dynamic_expandru   o   s=   € à×Ñ˜GŸL™L›N¨2¨AÐ.°)·.±.ÀÓ2DÀiÇnÁnÐUWÓFXÐ1YÑYÓZÐZr)   rb   Úscale_factorc                 ó”   • [         R                  " [         R                  " U R                  S5      [         R                  S9U-  5      $ )Nr+   ©r.   )r   r2   Útensorr$   r/   )rb   rv   s     r'   Úscaled_size_sqrtrz   w   s0   € ä�:Š:”e—l’l ;×#3Ñ#3°BÓ#7¼u¿{¹{ÑKÈlÑZÓ[Ð[r)   rc   c                 ód   • U R                  S5      UR                  S5      :w  a  [        X5      $ U$ ©NrZ   )r$   ri   )rb   rc   rn   s      r'   Ú
build_rposr}   |   s/   € à×Ñ˜Ó˜yŸ~™~¨bÓ1Ó1Ü& {Ó>Ð>àÐr)   Úmax_relative_positionsc           
      ó’   • [         R                  " [        [        U R	                  S5      UR	                  S5      5      U5      5      $ r|   )r   ry   ÚminÚmaxr$   )rb   rc   r~   s      r'   Úcompute_attention_spanr‚   „   s4   € ä�<Š<œœC × 0Ñ 0°Ó 4°i·n±nÀRÓ6HÓIÐKaÓbÓcÐcr)   c           	      óÊ   • UR                  S5      UR                  S5      :w  a>  US S 2S S 2S S 2S4   R                  S5      n[        R                  " U S[	        X@U5      S9$ U $ )NrZ   r   r+   r-   ©ÚdimÚindex)r$   ra   r   Úgatherru   )rt   rb   rc   rn   rs   s        r'   Úuneven_size_correctedrˆ   ‰   s\   € à×Ñ˜Ó˜yŸ~™~¨bÓ1Ó1Ø ¢¢A¢q¨! Ñ,×6Ñ6°rÓ:ˆ	Ü�|Š|˜G¨Ô2DÀYÐYbÓ2cÑdÐdàˆr)   c                   ó€  ^ • \ rS rSrSrU 4S jrS r    SS\R                  S\R                  S\	S	\R                  S-  S
\R                  S-  S\R                  S-  S\
\R                  \R                  S-  4   4S jjrS\R                  S\R                  S
\R                  S\R                  S\4
S jrSrU =r$ )ÚDisentangledSelfAttentioné•   zù
Disentangled self-attention module

Parameters:
    config (`str`):
        A model config class instance with the configuration to build a new model. The schema is similar to
        *BertConfig*, for more details, please refer [`DebertaConfig`]

c                 ón  >• [         TU ]  5         UR                  UR                  -  S:w  a&  [	        SUR                   SUR                   S35      eUR                  U l        [        UR                  UR                  -  5      U l        U R                  U R                  -  U l        [        R                  " UR                  U R                  S-  SS9U l
        [        R                  " [        R                  " U R                  [        R                  S95      U l        [        R                  " [        R                  " U R                  [        R                  S95      U l        UR"                  b  UR"                  O/ U l        [%        US	S5      U l        [%        US
S5      U l        U R(                  (       a_  [        R                  " UR                  UR                  SS9U l        [        R                  " UR                  UR                  SS9U l        OS U l        S U l        U R&                  (       a×  [%        USS5      U l        U R.                  S:  a  UR0                  U l        [        R2                  " UR4                  5      U l        SU R"                  ;   a/  [        R                  " UR                  U R                  SS9U l        SU R"                  ;   a0  [        R                  " UR                  U R                  5      U l        [        R2                  " UR<                  5      U l        g )Nr   zThe hidden size (z6) is not a multiple of the number of attention heads (Ú)r   F©r!   rx   Úrelative_attentionÚtalking_headr~   r+   r   Úc2pÚp2c) r   r   rH   Únum_attention_headsÚ
ValueErrorÚintÚattention_head_sizeÚall_head_sizer   rG   Úin_projr   r   r    r/   Úq_biasÚv_biasÚpos_att_typeÚgetattrr�   r�   Úhead_logits_projÚhead_weights_projr~   Úmax_position_embeddingsrL   rM   Úpos_dropoutÚpos_projÚ
pos_q_projÚattention_probs_dropout_probrN   rO   s     €r'   r   Ú"DisentangledSelfAttention.__init__    sm  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Ñ:¸aÓ?ÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð $*×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÑ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÑPˆÔÜ—y’y ×!3Ñ!3°T×5GÑ5GÈ!Ñ5KÐRWÑXˆŒÜ—l’l¤5§;¢;°×0BÑ0BÌ5Ï;É;Ñ#WÓXˆŒÜ—l’l¤5§;¢;°×0BÑ0BÌ5Ï;É;Ñ#WÓXˆŒØ39×3FÑ3FÑ3R˜F×/Ò/ÐXZˆÔä")¨&Ð2FÈÓ"NˆÔÜ# F¨N¸EÓBˆÔà××Ü$&§I¢I¨f×.HÑ.HÈ&×JdÑJdÐkpÑ$qˆDÔ!Ü%'§Y¢Y¨v×/IÑ/IÈ6×KeÑKeÐlqÑ%rˆDÕ"à$(ˆDÔ!Ø%)ˆDÔ"à×"×"Ü*1°&Ð:RÐTVÓ*WˆDÔ'Ø×*Ñ*¨QÓ.Ø.4×.LÑ.L�Ô+Ü!Ÿzšz¨&×*DÑ*DÓEˆDÔà˜×)Ñ)Ó)Ü "§	¢	¨&×*<Ñ*<¸d×>PÑ>PÐW\Ñ ]�”Ø˜×)Ñ)Ó)Ü"$§)¢)¨F×,>Ñ,>À×@RÑ@RÓ"S�”ä—z’z &×"EÑ"EÓFˆ�r)   c                 ó�   • UR                  5       S S U R                  S4-   nUR                  U5      nUR                  SSSS5      $ )Nr+   r   r-   r   r   )r$   r“   r_   Úpermute)r#   ÚxÚnew_x_shapes      r'   Útranspose_for_scoresÚ.DisentangledSelfAttention.transpose_for_scoresÆ   sF   € Ø—f‘f“h˜s �m t×'?Ñ'?ÀÐ&DÑDˆØ�F‰F�;ÓˆØ�y‰y˜˜A˜q !Ó$Ð$r)   Nr4   Úattention_maskÚoutput_attentionsÚquery_statesrn   Úrel_embeddingsÚreturnc                 óJ  • Uc5  U R                  U5      nU R                  U5      R                  SSS9u  p‰n
GOzU R                   R                  R                  U R                  S-  SS9n[        S5       VVs/ s HD  n[        R                  " [        U R                  5       Vs/ s H  oÛUS-  U-      PM     snSS9PMF     nnn[        R                  " US   UR                  5       R                  US   R                  S95      n[        R                  " US   UR                  5       R                  US   R                  S95      n[        R                  " US   UR                  5       R                  US   R                  S95      nXüU4 Vs/ s H  nU R                  U5      PM     snu  p‰n
X€R                  U R                  SSSS24   5      -   nX R                  U R                  SSSS24   5      -   n
SnS[        U R                  5      -   n[!        UU5      nUUR                  UR                  S9-  n[        R                  " X‰R#                  SS	5      5      nU R$                  (       a*  Ub'  Ub$  U R'                  U5      nU R)                  X‰XVU5      nUb  UU-   nU R*                  b5  U R+                  UR-                  SSSS5      5      R-                  SSSS5      nUR/                  5       nUR1                  U) [        R2                  " UR                  5      R4                  5      n[6        R8                  R;                  USS9nU R=                  U5      nU R>                  b5  U R?                  UR-                  SSSS5      5      R-                  SSSS5      n[        R                  " UU
5      nUR-                  SSSS5      RA                  5       nURC                  5       SS	 S
-   nURE                  U5      nU(       d  US4$ UU4$ s  snf s  snnf s  snf )a1  
Call the module

Args:
    hidden_states (`torch.FloatTensor`):
        Input states to the module usually the output from previous layer, it will be the Q,K and V in
        *Attention(Q,K,V)*

    attention_mask (`torch.BoolTensor`):
        An attention mask matrix of shape [*B*, *N*, *N*] where *B* is the batch size, *N* is the maximum
        sequence length in which element [i,j] = *1* means the *i* th token in the input can attend to the *j*
        th token.

    output_attentions (`bool`, *optional*):
        Whether return the attention matrix.

    query_states (`torch.FloatTensor`, *optional*):
        The *Q* state in *Attention(Q,K,V)*.

    relative_pos (`torch.LongTensor`):
        The relative position encoding between the tokens in the sequence. It's of shape [*B*, *N*, *N*] with
        values ranging in [*-max_relative_positions*, *max_relative_positions*].

    rel_embeddings (`torch.FloatTensor`):
        The embedding of relative distances. It's a tensor of shape [\(2 \times
        \text{max_relative_positions}\), *hidden_size*].


Nr   r+   ©r…   r   rx   r   r-   rZ   )r+   )#r˜   r©   Úchunkr   r“   Úranger   ÚcatÚmatmulÚtr3   r.   r™   rš   Úlenr›   rz   Ú	transposer�   r    Údisentangled_att_biasr�   r¦   ÚboolÚmasked_fillÚfinfor€   r   Ú
functionalÚsoftmaxrN   rž   Ú
contiguousr$   r_   )r#   r4   r«   r¬   r­   rn   r®   Úqprb   rc   Úvalue_layerÚwsÚkÚiÚqkvwÚqÚvr§   Úrel_attrv   ÚscaleÚattention_scoresÚattention_probsÚcontext_layerÚnew_context_layer_shapes                            r'   r8   Ú!DisentangledSelfAttention.forwardË   sÛ  € ðL ÑØ—‘˜mÓ,ˆBØ26×2KÑ2KÈBÓ2O×2UÑ2UÐVWÐ]_Ð2UÐ2`Ñ/ˆK¢Kà—‘×$Ñ$×*Ñ*¨4×+CÑ+CÀaÑ+GÈQÐ*ÐOˆBÜhmÐnoÔhpÔqÒhpÐcd”E—I’I´e¸D×<TÑ<TÔ6UÓVÒ6U° ! a¡%¨!¡)œ}Ñ6UÑVÐ\]Ô^ÑhpˆDÑqÜ—’˜T !™W l§n¡nÓ&6×&9Ñ&9ÀÀQÁÇÁÐ&9Ð&NÓOˆAÜ—’˜T !™W m§o¡oÓ&7×&:Ñ&:ÀÀaÁÇÁÐ&:Ð&OÓPˆAÜ—’˜T !™W m§o¡oÓ&7×&:Ñ&:ÀÀaÁÇÁÐ&:Ð&OÓPˆAØZ[Ð`aÑYbÓ2cÒYbÐTU°4×3LÑ3LÈQÖ3OÑYbÑ2cÑ/ˆK Kà!×$=Ñ$=¸d¿k¹kÈ$ÐPTÒVWÈ-Ñ>XÓ$YÑYˆØ!×$=Ñ$=¸d¿k¹kÈ$ÐPTÒVWÈ-Ñ>XÓ$YÑYˆàˆàœ3˜t×0Ñ0Ó1Ñ1ˆÜ  ¨lÓ;ˆØ! E§H¡H°;×3DÑ3D HÐ$EÑEˆÜ Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐà×"×" ~Ñ'AÀlÑF^Ø!×-Ñ-¨nÓ=ˆNØ×0Ñ0°ÈÐgsÓtˆGàÑØ/°'Ñ9Ðð × Ñ Ñ,Ø#×4Ñ4Ð5E×5MÑ5MÈaÐQRÐTUÐWXÓ5YÓZ×bÑbÐcdÐfgÐijÐlmÓnÐà'×,Ñ,Ó.ˆØ+×7Ñ7¸.Ð8IÌ5Ï;Ê;ÐWb×WhÑWhÓKi×KmÑKmÓnÐäŸ-™-×/Ñ/Ð0@ÀbÐ/ÐIˆàŸ,™, Ó7ˆØ×!Ñ!Ñ-Ø"×4Ñ4°_×5LÑ5LÈQÐPQÐSTÐVWÓ5XÓY×aÑaÐbcÐefÐhiÐklÓmˆOäŸš _°kÓBˆØ%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸eÑ"CÐØ%×*Ñ*Ð+BÓCˆÞ Ø! 4Ð(Ð(Ø˜Ð/Ð/ùòU WùÓqùò 3ds   Á8-PÂ%PÂ9
PÆP ÐPrb   rc   rv   c           	      ó  • Uc  [        XUR                  5      nUR                  5       S:X  a!  UR                  S5      R                  S5      nOVUR                  5       S:X  a  UR                  S5      nO0UR                  5       S:w  a  [	        SUR                  5        35      e[        XU R                  5      nUR                  5       nUU R                  U-
  U R                  U-   2S S 24   R                  S5      nSnSU R                  ;   aŒ  U R                  U5      nU R                  U5      n[        R                  " XR                  SS	5      5      n	[        R                  " X6-   SUS-  S-
  5      n
[        R                  " U	S[!        X¡U5      S
9n	Xy-  nSU R                  ;   aÜ  U R#                  U5      nU R                  U5      nU[%        Xµ5      -  n['        UUU5      n[        R                  " U* U-   SUS-  S-
  5      n[        R                  " X+R                  SS	5      R)                  UR*                  S95      n[        R                  " US[-        XÑU5      S
9R                  SS	5      n[/        XáX#5      nX~-  nU$ )Nr-   r   r   r   é   z2Relative position ids must be of dim 2 or 3 or 4. r‘   r+   rZ   r„   r’   rx   )ri   r\   r…   ra   r”   r‚   r~   r^   r›   r¡   r©   r   rµ   r¸   Úclampr‡   ro   r¢   rz   r}   r3   r.   rq   rˆ   )r#   rb   rc   rn   r®   rv   Úatt_spanÚscoreÚpos_key_layerÚc2p_attrm   Úpos_query_layerÚr_posÚp2c_posrt   s                  r'   r¹   Ú/DisentangledSelfAttention.disentangled_att_bias"  sq  € ð ÑÜ2°;È;×K]ÑK]Ó^ˆLØ×ÑÓ Ó"Ø'×1Ñ1°!Ó4×>Ñ>¸qÓA‰LØ×ÑÓ 1Ó$Ø'×1Ñ1°!Ó4‰Là×ÑÓ 1Ó$ÜÐQÐR^×RbÑRbÓRdÐQeÐfÓgÐgä)¨+À$×B]ÑB]Ó^ˆØ#×(Ñ(Ó*ˆØ'Ø×'Ñ'¨(Ñ2°T×5PÑ5PÐS[Ñ5[Ð[Ò]^Ð^ñ
ç
‰)�A‹,ð 	ð ˆð �D×%Ñ%Ó%Ø ŸM™M¨.Ó9ˆMØ ×5Ñ5°mÓDˆMÜ—l’l ;×0GÑ0GÈÈBÓ0OÓPˆGÜ—k’k ,Ñ"9¸1¸hÈ¹lÈQÑ>NÓOˆGÜ—l’l 7°Ô:LÈWÐcoÓ:pÑqˆGØÑˆEð �D×%Ñ%Ó%Ø"Ÿo™o¨nÓ=ˆOØ"×7Ñ7¸ÓHˆOØÔ/°ÓNÑNˆOÜØØØóˆEô
 —k’k 5 &¨8Ñ"3°Q¸À1¹ÀqÑ8HÓIˆGÜ—l’l 9×.GÑ.GÈÈBÓ.O×.RÑ.RÐYb×YhÑYhÐ.RÐ.iÓjˆGÜ—l’lØ˜RÔ'9¸'ÐPYÓ'Zñç‰i˜˜BÓð ô ,¨GÀ)ÓZˆGØÑˆEàˆr)   )r—   r–   rN   r�   rž   r˜   r~   r“   r›   r    r¡   r¢   r™   r�   r�   rš   ©FNNN)r;   r<   r=   r>   r?   r   r©   r   ÚTensorrº   Útupler8   r•   r¹   r@   rA   rB   s   @r'   rŠ   rŠ   •   sø   ø† ñõ$GòL%ð #(Ø,0Ø,0Ø.2ñU0à—|‘|ðU0ð Ÿ™ðU0ð  ð	U0ð
 —l‘l TÑ)ðU0ð —l‘l TÑ)ðU0ð Ÿ™ tÑ+ðU0ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1õU0ðn6à—\‘\ð6ð —<‘<ð6ð —l‘lð	6ð
 Ÿ™ð6ð ÷6ò 6r)   rŠ   c                   ó6   ^ • \ rS rSrSrU 4S jrSS jrSrU =r$ )ÚDebertaEmbeddingsi[  zGConstruct the embeddings from word, position and token_type embeddings.c                 óè  >• [         TU ]  5         [        USS5      n[        USUR                  5      U l        [
        R                  " UR                  U R                  US9U l        [        USS5      U l	        U R                  (       d  S U l
        O0[
        R                  " UR                  U R                  5      U l
        UR                  S:”  a1  [
        R                  " UR                  U R                  5      U l        OS U l        U R                  UR                  :w  a0  [
        R                  " U R                  UR                  SS9U l        OS U l        [!        UR                  UR"                  5      U l        [
        R&                  " UR(                  5      U l        Xl        [
        R.                  " [0        R2                  " UR                  5      R5                  S	5      SS
9U l        g )NÚpad_token_idr   Úembedding_size)Úpadding_idxÚposition_biased_inputTFrŽ   ©r   r+   )Ú
persistent)r   r   rœ   rH   rá   r   Ú	EmbeddingÚ
vocab_sizeÚword_embeddingsrã   Úposition_embeddingsrŸ   Útype_vocab_sizeÚtoken_type_embeddingsrG   Ú
embed_projr   rJ   rK   rL   rM   rN   rP   ÚBufferr   r]   rl   Úposition_ids)r#   rP   rà   r&   s      €r'   r   ÚDebertaEmbeddings.__init__^  sp  ø€ Ü‰ÑÔÜ˜v ~°qÓ9ˆÜ% fÐ.>À×@RÑ@RÓSˆÔÜ!Ÿ|š|¨F×,=Ñ,=¸t×?RÑ?RÐ`lÑmˆÔä%,¨VÐ5LÈdÓ%SˆÔ"Ø×)×)Ø'+ˆDÕ$ä')§|¢|°F×4RÑ4RÐTX×TgÑTgÓ'hˆDÔ$à×!Ñ! AÓ%Ü)+¯ª°f×6LÑ6LÈd×NaÑNaÓ)bˆDÕ&à)-ˆDÔ&à×Ñ &×"4Ñ"4Ó4Ü Ÿiši¨×(;Ñ(;¸V×=OÑ=OÐV[Ñ\ˆD�Oà"ˆDŒOä)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒØŒô ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÑuˆÕr)   c                 ó¶  • Ub  UR                  5       nOUR                  5       S S nUS   nUc  U R                  S S 2S U24   nUc8  [        R                  " U[        R                  U R                  R
                  S9nUc  U R                  U5      nU R                  b   U R                  UR	                  5       5      nO[        R                  " U5      nUn	U R                  (       a  X˜-   n	U R                  b  U R                  U5      n
Xš-   n	U R                  b  U R                  U	5      n	U R                  U	5      n	Ub†  UR                  5       U	R                  5       :w  aE  UR                  5       S:X  a   UR                  S5      R                  S5      nUR                  S5      nUR!                  U	R"                  5      nX”-  n	U R%                  U	5      n	U	$ )Nr+   r   r[   rÐ   r-   )r$   rî   r   r    r^   r\   rè   ré   Ú
zeros_likerã   rë   rì   rK   r…   Úsqueezera   r3   r.   rN   )r#   Ú	input_idsÚtoken_type_idsrî   ÚmaskÚinputs_embedsÚinput_shapeÚ
seq_lengthré   Ú
embeddingsrë   s              r'   r8   ÚDebertaEmbeddings.forward{  s¤  € ØÑ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà  ‘^ˆ
àÑØ×,Ñ,ªQ°°°¨^Ñ<ˆLàÑ!Ü"Ÿ[š[¨¼E¿J¹JÈt×O`ÑO`×OgÑOgÑhˆNàÑ Ø ×0Ñ0°Ó;ˆMà×#Ñ#Ñ/Ø"&×":Ñ":¸<×;LÑ;LÓ;NÓ"OÑä"'×"2Ò"2°=Ó"AÐà"ˆ
Ø×%×%Ø#Ñ9ˆJØ×%Ñ%Ñ1Ø$(×$>Ñ$>¸~Ó$NÐ!Ø#Ñ;ˆJà�?‰?Ñ&ØŸ™¨Ó4ˆJà—^‘^ JÓ/ˆ
àÑØ�x‰x‹z˜ZŸ^™^Ó-Ó-Ø—8‘8“: “?ØŸ<™<¨›?×2Ñ2°1Ó5�DØ—~‘~ aÓ(�Ø—7‘7˜:×+Ñ+Ó,ˆDà#Ñ*ˆJà—\‘\ *Ó-ˆ
ØÐr)   )
rK   rP   rN   rì   rá   rã   ré   rî   rë   rè   )NNNNNr:   rB   s   @r'   rÞ   rÞ   [  s   ø† ÙQõv÷:,ò ,r)   rÞ   c                   ó~   ^ • \ rS rSrU 4S jr    SS\S\\R                  \R                  S-  4   4S jjr	Sr
U =r$ )	ÚDebertaAttentioniª  c                 ón   >• [         TU ]  5         [        U5      U l        [	        U5      U l        Xl        g r   )r   r   rŠ   r#   rD   ÚoutputrP   rO   s     €r'   r   ÚDebertaAttention.__init__«  s+   ø€ Ü‰ÑÔÜ-¨fÓ5ˆŒ	Ü'¨Ó/ˆŒØ�r)   Nr¬   r¯   c           	      óv   • U R                  UUUUUUS9u  pxUc  UnU R                  Xt5      n	U(       a  X˜4$ U	S 4$ )N)r­   rn   r®   )r#   rþ   )
r#   r4   r«   r¬   r­   rn   r®   Úself_outputÚ
att_matrixÚattention_outputs
             r'   r8   ÚDebertaAttention.forward±  s_   € ð #'§)¡)ØØØØ%Ø%Ø)ð #,ð #
Ñˆð ÑØ(ˆLØŸ;™; {ÓAÐæØ$Ð1Ð1à$ dÐ+Ð+r)   )rP   rþ   r#   rÚ   ©r;   r<   r=   r>   r   rº   rÜ   r   rÛ   r8   r@   rA   rB   s   @r'   rü   rü   ª  sK   ø† õð #(ØØØñ,ð  ð	,ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1÷,ó ,r)   rü   c                   ób   ^ • \ rS rSrU 4S jrS\R                  S\R                  4S jrSrU =r	$ )ÚDebertaIntermediateiÍ  c                 ó  >• [         TU ]  5         [        R                  " UR                  UR
                  5      U l        [        UR                  [        5      (       a  [        UR                     U l        g UR                  U l        g r   )r   r   r   rG   rH   Úintermediate_sizerI   Ú
isinstanceÚ
hidden_actÚstrr	   Úintermediate_act_fnrO   s     €r'   r   ÚDebertaIntermediate.__init__Î  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ñ-Ü'-¨f×.?Ñ.?Ñ'@ˆDÕ$à'-×'8Ñ'8ˆDÕ$r)   r4   r¯   c                 óJ   • U R                  U5      nU R                  U5      nU$ r   ©rI   r  ©r#   r4   s     r'   r8   ÚDebertaIntermediate.forwardÖ  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr)   r  ©
r;   r<   r=   r>   r   r   rÛ   r8   r@   rA   rB   s   @r'   r  r  Í  s(   ø† õ9ð U§\¡\ð °e·l±l÷ ò r)   r  c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )ÚDebertaOutputiÜ  c                 ó"  >• [         TU ]  5         [        R                  " UR                  UR
                  5      U l        [        UR
                  UR                  5      U l	        [        R                  " UR                  5      U l        Xl        g r   )r   r   r   rG   r	  rH   rI   r   rJ   rK   rL   rM   rN   rP   rO   s     €r'   r   ÚDebertaOutput.__init__Ý  sa   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
Ü)¨&×*<Ñ*<¸f×>SÑ>SÓTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒØ�r)   c                 óp   • U R                  U5      nU R                  U5      nU R                  X-   5      nU$ r   rS   rT   s      r'   r8   ÚDebertaOutput.forwardä  rW   r)   )rK   rP   rI   rN   rX   rB   s   @r'   r  r  Ü  s   ø† õ÷ð r)   r  c                   ó~   ^ • \ rS rSrU 4S jr    SS\S\\R                  \R                  S-  4   4S jjr	Sr
U =r$ )	ÚDebertaLayerië  c                 ó‚   >• [         TU ]  5         [        U5      U l        [	        U5      U l        [        U5      U l        g r   )r   r   rü   Ú	attentionr  Úintermediater  rþ   rO   s     €r'   r   ÚDebertaLayer.__init__ì  s3   ø€ Ü‰ÑÔÜ)¨&Ó1ˆŒÜ/°Ó7ˆÔÜ# FÓ+ˆ�r)   Nr¬   r¯   c           	      óŽ   • U R                  UUUUUUS9u  pxU R                  U5      n	U R                  X—5      n
U(       a  X¨4$ U
S 4$ )N©r¬   r­   rn   r®   ©r  r  rþ   )r#   r4   r«   r­   rn   r®   r¬   r  r  Úintermediate_outputÚlayer_outputs              r'   r8   ÚDebertaLayer.forwardò  sg   € ð (,§~¡~ØØØ/Ø%Ø%Ø)ð (6ð (
Ñ$Ðð #×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆæØ Ð-Ð-à  $Ð'Ð'r)   r"  )NNNFr  rB   s   @r'   r  r  ë  sK   ø† õ,ð ØØØ"'ñ(ð  ð(ð 
ˆu�|‰|˜UŸ\™\¨DÑ0Ð0Ñ	1÷(ó (r)   r  c                   ó–   ^ • \ rS rSrSrU 4S jrS rS rSS jr     SS\	R                  S\	R                  S	\S
\S\4
S jjrSrU =r$ )ÚDebertaEncoderi  z8Modified BertEncoder with relative position bias supportc                 óÜ  >• [         TU ]  5         [        R                  " [	        UR
                  5       Vs/ s H  n[        U5      PM     sn5      U l        [        USS5      U l	        U R                  (       af  [        USS5      U l
        U R                  S:  a  UR                  U l
        [        R                  " U R                  S-  UR                  5      U l        SU l        g s  snf )Nr�   Fr~   r+   r   r-   )r   r   r   Ú
ModuleListr³   Únum_hidden_layersr  Úlayerrœ   r�   r~   rŸ   ræ   rH   r®   Úgradient_checkpointing)r#   rP   Ú_r&   s      €r'   r   ÚDebertaEncoder.__init__  s¼   ø€ Ü‰ÑÔÜ—]’]Ä%È×H`ÑH`ÔBaÓ#bÒBa¸Q¤L°Ö$8ÑBaÑ#bÓcˆŒ
Ü")¨&Ð2FÈÓ"NˆÔØ×"×"Ü*1°&Ð:RÐTVÓ*WˆDÔ'Ø×*Ñ*¨QÓ.Ø.4×.LÑ.L�Ô+Ü"$§,¢,¨t×/JÑ/JÈQÑ/NÐPV×PbÑPbÓ"cˆDÔØ&+ˆÕ#ùò $cs   ·C)c                 ó\   • U R                   (       a  U R                  R                  nU$ S nU$ r   )r�   r®   r   )r#   r®   s     r'   Úget_rel_embeddingÚ DebertaEncoder.get_rel_embedding  s0   € Ø7;×7N×7N˜×,Ñ,×3Ñ3ˆØÐð UYˆØÐr)   c                 ó   • UR                  5       S::  aD  UR                  S5      R                  S5      nX"R                  S5      R                  S5      -  nU$ UR                  5       S:X  a  UR                  S5      nU$ )Nr-   r   rZ   r+   r   )r…   ra   rò   )r#   r«   Úextended_attention_masks      r'   Úget_attention_maskÚ!DebertaEncoder.get_attention_mask  s€   € Ø×ÑÓ 1Ó$Ø&4×&>Ñ&>¸qÓ&A×&KÑ&KÈAÓ&NÐ#Ø4×7VÑ7VÐWYÓ7Z×7dÑ7dÐegÓ7hÑhˆNð Ðð ×ÑÓ! QÓ&Ø+×5Ñ5°aÓ8ˆNàÐr)   c                 ód   • U R                   (       a  Uc  Ub  [        X!5      nU$ [        X5      nU$ r   )r�   ri   )r#   r4   r­   rn   s       r'   Úget_rel_posÚDebertaEncoder.get_rel_pos'  s:   € Ø×"×" |Ñ';ØÑ'Ü6°|ÓS�ð Ðô  7°}ÓT�ØÐr)   r4   r«   Úoutput_hidden_statesr¬   Úreturn_dictc           
      ó~  • U R                  U5      nU R                  XU5      nU(       a  U4OS nU(       a  SOS n	Un
U R                  5       n[        U R                  5       H4  u  pÍU" U
UUUUUS9u  pU(       a  X�4-   nUb  UnOUn
U(       d  M/  Xž4-   n	M6     U(       d  [        S XU	4 5       5      $ [        XU	S9$ )N© )r­   rn   r®   r¬   c              3   ó.   #   • U  H  oc  M  Uv •  M     g 7fr   r<  )Ú.0rÇ   s     r'   Ú	<genexpr>Ú)DebertaEncoder.forward.<locals>.<genexpr>X  s   é € ÐhÒ$V˜qŸ™Ò$Vùs   ‚Œ	©Úlast_hidden_stater4   Ú
attentions)r4  r7  r0  Ú	enumerater+  rÜ   r   )r#   r4   r«   r9  r¬   r­   rn   r:  Úall_hidden_statesÚall_attentionsÚnext_kvr®   rÄ   Úlayer_moduleÚatt_ms                  r'   r8   ÚDebertaEncoder.forward/  sã   € ð ×0Ñ0°Ó@ˆØ×'Ñ'¨À\ÓRˆæL`¸Ñ8HÐfjÐÞ0™°dˆàˆà×/Ñ/Ó1ˆÜ(¨¯©Ö4‰OˆAÙ#/ØØØ)Ø)Ø-Ø"3ñ$Ñ ˆMö $Ø$5Ð8HÑ$HÐ!àÑ'Ø,‘à'�ç Ð Ø!/°(Ñ!:’ñ'  5ö* ÜÑh ]À~Ñ$VÓhÓhÐhÜØ+ÐYgñ
ð 	
r)   )r,  r+  r~   r®   r�   )NN)TFNNT)r;   r<   r=   r>   r?   r   r0  r4  r7  r   rÛ   rº   r8   r@   rA   rB   s   @r'   r'  r'    sm   ø† ÙBõ	,òòôð &*Ø"'ØØØ ñ,
à—|‘|ð,
ð Ÿ™ð,
ð #ð	,
ð
  ð,
ð ÷,
ó ,
r)   r'  c                   ój   ^ • \ rS rSr% \\S'   SrS/rSr\	R                  " 5       U 4S j5       rSrU =r$ )ÚDebertaPreTrainedModeli^  rP   Údebertaré   Tc                 ó*  >• [         TU ]  U5        [        U[        5      (       aA  [        R
                  " UR                  5        [        R
                  " UR                  5        g[        U[        [        45      (       a!  [        R
                  " UR                  5        g[        U[        5      (       a\  [        R                  " UR                  [        R                  " UR                  R                   S   5      R#                  S5      5        gg)zInitialize the weights.r+   rä   N)r   Ú_init_weightsr
  rŠ   ÚinitÚzeros_r™   rš   ÚLegacyDebertaLMPredictionHeadÚDebertaLMPredictionHeadr!   rÞ   Úcopy_rî   r   r]   Úshaperl   )r#   Úmoduler&   s     €r'   rO  Ú$DebertaPreTrainedModel._init_weightse  s²   ø€ ô 	‰Ñ˜fÔ%Ü�fÔ7×8Ñ8Ü�KŠK˜Ÿ™Ô&Ü�KŠK˜Ÿ™Õ&Ü˜Ô!>Ô@WÐ X×YÑYÜ�KŠK˜Ÿ™Õ$Ü˜Ô 1×2Ñ2Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÑ9VÓ,W×,^Ñ,^Ð_fÓ,gÕhð 3r)   r<  )r;   r<   r=   r>   r   Ú__annotations__Úbase_model_prefixÚ"_keys_to_ignore_on_load_unexpectedÚsupports_gradient_checkpointingr   Úno_gradrO  r@   rA   rB   s   @r'   rL  rL  ^  s8   ø‡ àÓØ!ÐØ*?Ð)@Ð&Ø&*Ð#à
‡]‚]ƒ_ô	ió ö	ir)   rL  c                   ó  ^ • \ rS rSrU 4S jrS rS r\        SS\R                  S-  S\R                  S-  S\R                  S-  S	\R                  S-  S
\R                  S-  S\
S-  S\
S-  S\
S-  S\\-  4S jj5       rSrU =r$ )ÚDebertaModelir  c                 óž   >• [         TU ]  U5        [        U5      U l        [	        U5      U l        SU l        Xl        U R                  5         g ©Nr   )	r   r   rÞ   rù   r'  ÚencoderÚz_stepsrP   Ú	post_initrO   s     €r'   r   ÚDebertaModel.__init__t  s>   ø€ Ü‰Ñ˜Ô ä+¨FÓ3ˆŒÜ% fÓ-ˆŒØˆŒØŒà�‰Õr)   c                 ó.   • U R                   R                  $ r   ©rù   rè   ©r#   s    r'   Úget_input_embeddingsÚ!DebertaModel.get_input_embeddings~  s   € Ø�‰×.Ñ.Ð.r)   c                 ó$   • XR                   l        g r   rf  ©r#   Únew_embeddingss     r'   Úset_input_embeddingsÚ!DebertaModel.set_input_embeddings�  s   € Ø*8�‰Õ'r)   Nró   r«   rô   rî   rö   r¬   r9  r:  r¯   c	           
      ó”  • Ub  UOU R                   R                  nUb  UOU R                   R                  nUb  UOU R                   R                  nUb  Ub  [	        S5      eUb"  U R                  X5        UR                  5       n
O"Ub  UR                  5       S S n
O[	        S5      eUb  UR                  OUR                  nUc  [        R                  " X«S9nUc$  [        R                  " U
[        R                  US9nU R                  UUUUUS9nU R                  UUSUUS9nUS	   nU R                  S	:”  a¾  US
   n[        U R                  5       Vs/ s H  nU R                  R                   S   PM     nnUS   nU R                  R#                  5       nU R                  R%                  U5      nU R                  R'                  U5      nUS	S   H  nU" UUSUUUS9nUR)                  U5        M!     US   nU(       d  U4X×(       a  S	S  -   $ SS  -   $ [+        UU(       a  UR,                  OS UR.                  S9$ s  snf )NzDYou cannot specify both input_ids and inputs_embeds at the same timer+   z5You have to specify either input_ids or inputs_embeds)r\   r[   )ró   rô   rî   rõ   rö   T)r9  r¬   r:  r   rZ   Fr!  r-   rA  )rP   r¬   r9  r:  r”   Ú%warn_if_padding_and_no_attention_maskr$   r\   r   r   r    r^   rù   ra  rb  r³   r+  r0  r4  r7  Úappendr   r4   rC  )r#   ró   r«   rô   rî   rö   r¬   r9  r:  Úkwargsr÷   r\   Úembedding_outputÚencoder_outputsÚencoded_layersr4   r-  Úlayersr­   r®   Úrel_posr+  Úsequence_outputs                          r'   r8   ÚDebertaModel.forward„  st  € ð 2CÑ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ñ$DÑ È$Ï+É+×JjÑJjð 	ð &1Ñ%<‘kÀ$Ç+Á+×BYÑBYˆàÑ  ]Ñ%>ÜÐcÓdÐdØÑ"Ø×6Ñ6°yÔQØ#Ÿ.™.Ó*‰KØÑ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐTÓUÐUà%.Ñ%:�×!Ò!À×@TÑ@TˆàÑ!Ü"ŸZšZ¨ÑCˆNØÑ!Ü"Ÿ[š[¨¼E¿J¹JÈvÑVˆNàŸ?™?ØØ)Ø%ØØ'ð +ð 
Ðð Ÿ,™,ØØØ!%Ø/Ø#ð 'ð 
ˆð )¨Ñ+ˆà�<‰<˜!ÓØ*¨2Ñ.ˆMÜ6;¸D¿L¹LÔ6IÓJÒ6I°�d—l‘l×(Ñ(¨Ô,Ñ6IˆFÐJØ)¨"Ñ-ˆLØ!Ÿ\™\×;Ñ;Ó=ˆNØ!Ÿ\™\×<Ñ<¸^ÓLˆNØ—l‘l×.Ñ.Ð/?Ó@ˆGØ  ›�Ù$Ø!Ø"Ø&+Ø!-Ø!(Ø#1ñ �ð ×%Ñ% lÖ3ñ $ð )¨Ñ,ˆæØ#Ð%¨Õ>R¸Ð8\Ð(]Ñ]Ð]ÐXYÐ8\Ð(]Ñ]Ð]äØ-Þ;O˜/×7Ò7ÐUYØ&×1Ñ1ñ
ð 	
ùò+ Ks   Å#I)rP   rù   ra  rb  )NNNNNNNN)r;   r<   r=   r>   r   rh  rm  r   r   rÛ   rº   rÜ   r   r8   r@   rA   rB   s   @r'   r^  r^  r  sá   ø† õò/ò9ð ð *.Ø.2Ø.2Ø,0Ø-1Ø)-Ø,0Ø#'ñO
à—<‘< $Ñ&ðO
ð Ÿ™ tÑ+ðO
ð Ÿ™ tÑ+ð	O
ð
 —l‘l TÑ)ðO
ð —|‘| dÑ*ðO
ð   $™;ðO
ð # T™kðO
ð ˜D‘[ðO
ð 
�Ñ	 ôO
ó öO
r)   r^  c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )Ú$LegacyDebertaPredictionHeadTransformi×  c                 ó¨  >• [         TU ]  5         [        USUR                  5      U l        [
        R                  " UR                  U R                  5      U l        [        UR                  [        5      (       a  [        UR                     U l        OUR                  U l        [
        R                  " U R                  UR                  S9U l        g )Nrá   )r%   )r   r   rœ   rH   rá   r   rG   rI   r
  r  r  r	   Útransform_act_fnrK   rJ   rO   s     €r'   r   Ú-LegacyDebertaPredictionHeadTransform.__init__Ø  s–   ø€ Ü‰ÑÔÜ% fÐ.>À×@RÑ@RÓSˆÔä—Y’Y˜v×1Ñ1°4×3FÑ3FÓGˆŒ
Ü�f×'Ñ'¬×-Ñ-Ü$*¨6×+<Ñ+<Ñ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!ÜŸš d×&9Ñ&9¸v×?TÑ?TÑUˆ�r)   c                 ól   • U R                  U5      nU R                  U5      nU R                  U5      nU$ r   )rI   r}  rK   r  s     r'   r8   Ú,LegacyDebertaPredictionHeadTransform.forwardã  s4   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™ }Ó5ˆØÐr)   )rK   rI   rá   r}  rX   rB   s   @r'   r{  r{  ×  s   ø† õ	V÷ð r)   r{  c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )rR  iê  c                 óJ  >• [         TU ]  5         [        U5      U l        [	        USUR
                  5      U l        [        R                  " U R                  UR                  SS9U l
        [        R                  " [        R                  " UR                  5      5      U l        g )Nrá   TrŽ   )r   r   r{  Ú	transformrœ   rH   rá   r   rG   rç   Údecoderr   r   r    r!   rO   s     €r'   r   Ú&LegacyDebertaLMPredictionHead.__init__ë  ss   ø€ Ü‰ÑÔÜ=¸fÓEˆŒä% fÐ.>À×@RÑ@RÓSˆÔô —y’y ×!4Ñ!4°f×6GÑ6GÈdÑSˆŒä—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆ�	r)   c                 óJ   • U R                  U5      nU R                  U5      nU$ r   )rƒ  r„  r  s     r'   r8   Ú%LegacyDebertaLMPredictionHead.forwardö  s$   € ØŸ™ }Ó5ˆØŸ™ ]Ó3ˆØÐr)   )r!   r„  rá   rƒ  rX   rB   s   @r'   rR  rR  ê  s   ø† õ	A÷ð r)   rR  c                   ób   ^ • \ rS rSrU 4S jrS\R                  S\R                  4S jrSrU =r	$ )ÚLegacyDebertaOnlyMLMHeadiý  c                 óB   >• [         TU ]  5         [        U5      U l        g r   )r   r   rR  ÚpredictionsrO   s     €r'   r   Ú!LegacyDebertaOnlyMLMHead.__init__þ  s   ø€ Ü‰ÑÔÜ8¸Ó@ˆÕr)   rx  r¯   c                 ó(   • U R                  U5      nU$ r   ©r‹  )r#   rx  Úprediction_scoress      r'   r8   Ú LegacyDebertaOnlyMLMHead.forward  s   € Ø ×,Ñ,¨_Ó=ÐØ Ð r)   rŽ  r  rB   s   @r'   r‰  r‰  ý  s)   ø† õAð! u§|¡|ð !¸¿¹÷ !ò !r)   r‰  c                   ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )rS  i  zMhttps://github.com/microsoft/DeBERTa/blob/master/DeBERTa/deberta/bert.py#L270c                 óä  >• [         TU ]  5         [        R                  " UR                  UR                  5      U l        [        UR                  [        5      (       a  [        UR                     U l
        OUR                  U l
        [        R                  " UR                  UR                  SS9U l        [        R                  " [        R                  " UR                   5      5      U l        g )NT)r%   Úelementwise_affine)r   r   r   rG   rH   rI   r
  r  r  r	   r}  rK   rJ   r   r   r    rç   r!   rO   s     €r'   r   Ú DebertaLMPredictionHead.__init__
  s    ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ä�f×'Ñ'¬×-Ñ-Ü$*¨6×+<Ñ+<Ñ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!äŸš f×&8Ñ&8¸f×>SÑ>SÐhlÑmˆŒä—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆ�	r)   c                 óâ   • U R                  U5      nU R                  U5      nU R                  U5      n[        R                  " XR
                  R                  5       5      U R                  -   nU$ r   )rI   r}  rK   r   rµ   r   r¶   r!   )r#   r4   rè   s      r'   r8   ÚDebertaLMPredictionHead.forward  sb   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™Øó
ˆô Ÿš ]×4JÑ4J×4LÑ4LÓ4NÓOÐRV×R[ÑR[Ñ[ˆØÐr)   )rK   r!   rI   r}  r:   rB   s   @r'   rS  rS    s   ø† ÙWõA÷ð r)   rS  c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )ÚDebertaOnlyMLMHeadi"  c                 óB   >• [         TU ]  5         [        U5      U l        g r   )r   r   rS  Úlm_headrO   s     €r'   r   ÚDebertaOnlyMLMHead.__init__#  s   ø€ Ü‰ÑÔÜ.¨vÓ6ˆ�r)   c                 ó(   • U R                  X5      nU$ r   ©rš  )r#   rx  rè   r�  s       r'   r8   ÚDebertaOnlyMLMHead.forward(  s   € Ø ŸL™L¨ÓJÐØ Ð r)   r�  rX   rB   s   @r'   r˜  r˜  "  s   ø† õ7÷
!ð !r)   r˜  c                   óD  ^ • \ rS rSrSSS.rU 4S jrS rS r\         SS	\	R                  S-  S
\	R                  S-  S\	R                  S-  S\	R                  S-  S\	R                  S-  S\	R                  S-  S\S-  S\S-  S\S-  S\\-  4S jj5       rSrU =r$ )ÚDebertaForMaskedLMi-  zcls.predictions.biasú)deberta.embeddings.word_embeddings.weight)zcls.predictions.decoder.biaszcls.predictions.decoder.weightc                 óü   >• [         TU ]  U5        UR                  U l        [        U5      U l        U R                  (       a  [        U5      U l        OSS0U l        [        U5      U l	        U R                  5         g )Nzlm_predictions.lm_head.weightr¡  )r   r   Úlegacyr^  rM  r‰  ÚclsÚ_tied_weights_keysr˜  Úlm_predictionsrc  rO   s     €r'   r   ÚDebertaForMaskedLM.__init__4  sg   ø€ Ü‰Ñ˜Ô Ø—m‘mˆŒÜ# FÓ+ˆŒØ�;�;Ü/°Ó7ˆD�Hð 0Ð1\ð'ˆDÔ#ô #5°VÓ"<ˆDÔð 	�‰Õr)   c                 ó¤   • U R                   (       a   U R                  R                  R                  $ U R                  R
                  R                  $ r   )r£  r¤  r‹  r„  r¦  rš  rI   rg  s    r'   Úget_output_embeddingsÚ(DebertaForMaskedLM.get_output_embeddingsC  s7   € Ø�;�;Ø—8‘8×'Ñ'×/Ñ/Ð/à×&Ñ&×.Ñ.×4Ñ4Ð4r)   c                 ó$  • U R                   (       a@  XR                  R                  l        UR                  U R                  R                  l        g XR
                  R                  l        UR                  U R
                  R                  l        g r   )r£  r¤  r‹  r„  r!   r¦  rš  rI   rk  s     r'   Úset_output_embeddingsÚ(DebertaForMaskedLM.set_output_embeddingsI  s]   € Ø�;�;Ø+9�H‰H× Ñ Ô(Ø(6×(;Ñ(;ˆD�H‰H× Ñ Õ%à0>×Ñ×'Ñ'Ô-Ø/=×/BÑ/BˆD×Ñ×'Ñ'Õ,r)   Nró   r«   rô   rî   rö   Úlabelsr¬   r9  r:  r¯   c
                 ó  • U	b  U	OU R                   R                  n	U R                  UUUUUUUU	S9nUS   nU R                  (       a  U R	                  U5      nO/U R                  XÀR                  R                  R                  5      nSnUbF  [        5       nU" UR                  SU R                   R                  5      UR                  S5      5      nU	(       d  U4USS -   nUb  U4U-   $ U$ [        UUUR                  UR                  S9$ )az  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should be in `[-100, 0, ...,
    config.vocab_size]` (see `input_ids` docstring) Tokens with indices set to `-100` are ignored (masked), the
    loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`
N©r«   rô   rî   rö   r¬   r9  r:  r   r+   r   ©ÚlossÚlogitsr4   rC  )rP   r:  rM  r£  r¤  r¦  rù   rè   r   r_   rç   r   r4   rC  )r#   ró   r«   rô   rî   rö   r®  r¬   r9  r:  rr  Úoutputsrx  r�  Úmasked_lm_lossÚloss_fctrþ   s                    r'   r8   ÚDebertaForMaskedLM.forwardQ  s  € ð* &1Ñ%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ð 	
ˆð " !™*ˆØ�;�;Ø $§¡¨Ó 9Ñà $× 3Ñ 3°OÇ\Á\×E\ÑE\×ElÑElÓ mÐàˆØÑÜ'Ó)ˆHÙ%Ð&7×&<Ñ&<¸RÀÇÁ×AWÑAWÓ&XÐZ`×ZeÑZeÐfhÓZiÓjˆNæØ'Ð)¨G°A°B¨KÑ7ˆFØ3AÑ3M�^Ð%¨Ñ.ÐYÐSYÐYäØØ$Ø!×/Ñ/Ø×)Ñ)ñ	
ð 	
r)   )r¥  r¤  rM  r£  r¦  ©	NNNNNNNNN)r;   r<   r=   r>   r¥  r   r©  r¬  r   r   rÛ   rº   rÜ   r   r8   r@   rA   rB   s   @r'   r   r   -  sý   ø† ð )?Ø*UñÐõ
ò5òCð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñ5
à—<‘< $Ñ&ð5
ð Ÿ™ tÑ+ð5
ð Ÿ™ tÑ+ð	5
ð
 —l‘l TÑ)ð5
ð —|‘| dÑ*ð5
ð —‘˜tÑ#ð5
ð   $™;ð5
ð # T™kð5
ð ˜D‘[ð5
ð 
�Ñ	ô5
ó ö5
r)   r   c                   ó>   ^ • \ rS rSrU 4S jrS r\S 5       rSrU =r	$ )ÚContextPooleriŠ  c                 óØ   >• [         TU ]  5         [        R                  " UR                  UR                  5      U l        [        R                  " UR                  5      U l        Xl	        g r   )
r   r   r   rG   Úpooler_hidden_sizerI   rL   Úpooler_dropoutrN   rP   rO   s     €r'   r   ÚContextPooler.__init__‹  sG   ø€ Ü‰ÑÔÜ—Y’Y˜v×8Ñ8¸&×:SÑ:SÓTˆŒ
Ü—z’z &×"7Ñ"7Ó8ˆŒØ�r)   c                 ó¢   • US S 2S4   nU R                  U5      nU R                  U5      n[        U R                  R                     " U5      nU$ r`  )rN   rI   r	   rP   Úpooler_hidden_act)r#   r4   Úcontext_tokenÚpooled_outputs       r'   r8   ÚContextPooler.forward‘  sM   € ð &¢a¨ dÑ+ˆØŸ™ ]Ó3ˆØŸ
™
 =Ó1ˆÜ˜tŸ{™{×<Ñ<Ò=¸mÓLˆØÐr)   c                 ó.   • U R                   R                  $ r   )rP   rH   rg  s    r'   Ú
output_dimÚContextPooler.output_dim›  s   € à�{‰{×&Ñ&Ð&r)   )rP   rI   rN   )
r;   r<   r=   r>   r   r8   ÚpropertyrÅ  r@   rA   rB   s   @r'   rº  rº  Š  s!   ø† õòð ñ'ó ö'r)   rº  zŸ
    DeBERTa Model transformer with a sequence classification/regression head on top (a linear layer on top of the
    pooled output) e.g. for GLUE tasks.
    )Úcustom_introc                   ó:  ^ • \ rS rSrU 4S jrS rS r\         SS\R                  S-  S\R                  S-  S\R                  S-  S	\R                  S-  S
\R                  S-  S\R                  S-  S\
S-  S\
S-  S\
S-  S\\-  4S jj5       rSrU =r$ )Ú DebertaForSequenceClassificationi   c                 ó’  >• [         TU ]  U5        [        USS5      nX l        [	        U5      U l        [        U5      U l        U R                  R                  n[        R                  " X25      U l        [        USS 5      nUc  U R                  R                  OUn[        R                  " U5      U l        U R!                  5         g )NÚ
num_labelsr-   Úcls_dropout)r   r   rœ   rÌ  r^  rM  rº  ÚpoolerrÅ  r   rG   Ú
classifierrP   rM   rL   rN   rc  )r#   rP   rÌ  rÅ  Údrop_outr&   s        €r'   r   Ú)DebertaForSequenceClassification.__init__§  sš   ø€ Ü‰Ñ˜Ô ä˜V \°1Ó5ˆ
Ø$Œä# FÓ+ˆŒÜ# FÓ+ˆŒØ—[‘[×+Ñ+ˆ
äŸ)š) JÓ;ˆŒÜ˜6 =°$Ó7ˆØ6>Ñ6F�4—;‘;×2Ò2ÈHˆÜ—z’z (Ó+ˆŒð 	�‰Õr)   c                 ó6   • U R                   R                  5       $ r   )rM  rh  rg  s    r'   rh  Ú5DebertaForSequenceClassification.get_input_embeddings¹  s   € Ø�|‰|×0Ñ0Ó2Ð2r)   c                 ó:   • U R                   R                  U5        g r   )rM  rm  rk  s     r'   rm  Ú5DebertaForSequenceClassification.set_input_embeddings¼  s   € Ø�‰×)Ñ)¨.Õ9r)   Nró   r«   rô   rî   rö   r®  r¬   r9  r:  r¯   c
                 ó$  • U	b  U	OU R                   R                  n	U R                  UUUUUUUU	S9nUS   nU R                  U5      nU R	                  U5      nU R                  U5      nSnUGbè  U R                   R                  Gcê  U R                  S:X  aX  [        R                  " 5       nUR                  S5      R                  UR                  5      nU" XæR                  S5      5      nGOhUR                  5       S:X  d  UR                  S5      S:X  Ga  US:¬  R                  5       nUR!                  5       nUR                  S5      S:”  a¹  ["        R$                  " USUR'                  UR                  S5      UR                  S5      5      5      n["        R$                  " USUR                  S5      5      n[)        5       nU" UR                  SU R                  5      R+                  5       UR                  S5      5      nGOM["        R,                  " S5      R                  U5      nGO&[        R.                  " S5      nU" U5      U-  R1                  S5      R3                  5       * nOæU R                   R                  S:X  aI  [        5       nU R                  S:X  a&  U" UR5                  5       UR5                  5       5      nOŒU" Xæ5      nOƒU R                   R                  S:X  a=  [)        5       nU" UR                  SU R                  5      UR                  S5      5      nO,U R                   R                  S:X  a  [7        5       nU" Xæ5      nU	(       d  U4USS -   nUb  U4U-   $ U$ [9        XþUR:                  UR<                  S	9$ )
ae  
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
N)rô   r«   rî   rö   r¬   r9  r:  r   r   r+   Ú
regressionÚsingle_label_classificationÚmulti_label_classificationr±  )rP   r:  rM  rÎ  rN   rÏ  Úproblem_typerÌ  r   r   r_   r3   r.   r…   r$   Únonzeror^   r   r‡   rl   r   r/   ry   Ú
LogSoftmaxÚsumr0   rò   r   r   r4   rC  )r#   ró   r«   rô   rî   rö   r®  r¬   r9  r:  rr  r´  Úencoder_layerrÂ  r³  r²  Úloss_fnÚlabel_indexÚlabeled_logitsr¶  Úlog_softmaxrþ   s                         r'   r8   Ú(DebertaForSequenceClassification.forward¿  sü  € ð( &1Ñ%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ð 	
ˆð   ™
ˆØŸ™ MÓ2ˆØŸ™ ]Ó3ˆØ—‘ Ó/ˆàˆØÒØ�{‰{×'Ñ'Ò/Ø—?‘? aÓ'ä Ÿjšj›l�GØ#Ÿ[™[¨›_×/Ñ/°·±Ó=�FÙ" 6¯;©;°r«?Ó;’DØ—Z‘Z“\ QÓ&¨&¯+©+°b«/¸QÔ*>Ø#)¨Q¡;×"7Ñ"7Ó"9�KØ#Ÿ[™[›]�FØ"×'Ñ'¨Ó*¨QÓ.Ü).¯ªØ" A {×'9Ñ'9¸+×:JÑ:JÈ1Ó:MÈvÏ{É{Ð[\Ë~Ó'^ó*˜ô "'§¢¨f°a¸×9IÑ9IÈ"Ó9MÓ!N˜Ü#3Ó#5˜Ù'¨×(;Ñ(;¸BÀÇÁÓ(P×(VÑ(VÓ(XÐZ`×ZeÑZeÐfhÓZiÓjšä$Ÿ|š|¨A›×1Ñ1°&Ó9šä"$§-¢-°Ó"3�KÙ)¨&Ó1°FÑ:×?Ñ?ÀÓC×IÑIÓKÐK‘DØ—‘×)Ñ)¨\Ó9Ü"›9�Ø—?‘? aÓ'Ù# F§N¡NÓ$4°f·n±nÓ6FÓG‘Dá# FÓ3‘DØ—‘×)Ñ)Ð-JÓJÜ+Ó-�Ù §¡¨B°·±Ó @À&Ç+Á+ÈbÃ/ÓR‘Ø—‘×)Ñ)Ð-IÓIÜ,Ó.�Ù Ó/�ÞØ�Y ¨¨ Ñ,ˆFØ)-Ñ)9�T�G˜fÑ$ÐE¸vÐEä'Ø°G×4IÑ4IÐV]×VhÑVhñ
ð 	
r)   )rÏ  rM  rN   rÌ  rÎ  r¸  )r;   r<   r=   r>   r   rh  rm  r   r   rÛ   rº   rÜ   r   r8   r@   rA   rB   s   @r'   rÊ  rÊ     sù   ø† õò$3ò:ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñN
à—<‘< $Ñ&ðN
ð Ÿ™ tÑ+ðN
ð Ÿ™ tÑ+ð	N
ð
 —l‘l TÑ)ðN
ð —|‘| dÑ*ðN
ð —‘˜tÑ#ðN
ð   $™;ðN
ð # T™kðN
ð ˜D‘[ðN
ð 
Ð)Ñ	)ôN
ó öN
r)   rÊ  c                   ó.  ^ • \ rS rSrU 4S jr\         SS\R                  S-  S\R                  S-  S\R                  S-  S\R                  S-  S\R                  S-  S	\R                  S-  S
\S-  S\S-  S\S-  S\	\
-  4S jj5       rSrU =r$ )ÚDebertaForTokenClassificationi  c                 ó0  >• [         TU ]  U5        UR                  U l        [        U5      U l        [
        R                  " UR                  5      U l        [
        R                  " UR                  UR                  5      U l        U R                  5         g r   )r   r   rÌ  r^  rM  r   rL   rM   rN   rG   rH   rÏ  rc  rO   s     €r'   r   Ú&DebertaForTokenClassification.__init__  si   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä# FÓ+ˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Õr)   Nró   r«   rô   rî   rö   r®  r¬   r9  r:  r¯   c
                 ó¨  • U	b  U	OU R                   R                  n	U R                  UUUUUUUU	S9nUS   nU R                  U5      nU R	                  U5      nSnUb<  [        5       nU" UR                  SU R                  5      UR                  S5      5      nU	(       d  U4USS -   nUb  U4U-   $ U$ [        XíUR                  UR                  S9$ )zÃ
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the token classification loss. Indices should be in `[0, ..., config.num_labels - 1]`.
Nr°  r   r+   r   r±  )rP   r:  rM  rN   rÏ  r   r_   rÌ  r   r4   rC  )r#   ró   r«   rô   rî   rö   r®  r¬   r9  r:  rr  r´  rx  r³  r²  r¶  rþ   s                    r'   r8   Ú%DebertaForTokenClassification.forward  sï   € ð$ &1Ñ%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ð 	
ˆð " !™*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÑÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯O©OÓ<¸f¿k¹kÈ"»oÓNˆDæØ�Y ¨¨ Ñ,ˆFØ)-Ñ)9�T�G˜fÑ$ÐE¸vÐEä$Ø°G×4IÑ4IÐV]×VhÑVhñ
ð 	
r)   )rÏ  rM  rN   rÌ  r¸  )r;   r<   r=   r>   r   r   r   rÛ   rº   rÜ   r   r8   r@   rA   rB   s   @r'   rå  rå    sã   ø† õ	ð ð *.Ø.2Ø.2Ø,0Ø-1Ø&*Ø)-Ø,0Ø#'ñ.
à—<‘< $Ñ&ð.
ð Ÿ™ tÑ+ð.
ð Ÿ™ tÑ+ð	.
ð
 —l‘l TÑ)ð.
ð —|‘| dÑ*ð.
ð —‘˜tÑ#ð.
ð   $™;ð.
ð # T™kð.
ð ˜D‘[ð.
ð 
Ð&Ñ	&ô.
ó ö.
r)   rå  c                   óN  ^ • \ rS rSrU 4S jr\          SS\R                  S-  S\R                  S-  S\R                  S-  S\R                  S-  S\R                  S-  S	\R                  S-  S
\R                  S-  S\S-  S\S-  S\S-  S\	\
-  4S jj5       rSrU =r$ )ÚDebertaForQuestionAnsweringiP  c                 óæ   >• [         TU ]  U5        UR                  U l        [        U5      U l        [
        R                  " UR                  UR                  5      U l        U R                  5         g r   )
r   r   rÌ  r^  rM  r   rG   rH   Ú
qa_outputsrc  rO   s     €r'   r   Ú$DebertaForQuestionAnswering.__init__R  sS   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä# FÓ+ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒð 	�‰Õr)   Nró   r«   rô   rî   rö   Ústart_positionsÚend_positionsr¬   r9  r:  r¯   c                 ó"  • U
b  U
OU R                   R                  n
U R                  UUUUUUU	U
S9nUS   nU R                  U5      nUR	                  SSS9u  nnUR                  S5      R                  5       nUR                  S5      R                  5       nS nUb¶  Ub³  [        UR                  5       5      S:”  a  UR                  S5      n[        UR                  5       5      S:”  a  UR                  S5      nUR                  S5      nUR                  SU5      nUR                  SU5      n[        US9nU" Xö5      nU" UU5      nUU-   S-  nU
(       d  UU4USS  -   nUb  U4U-   $ U$ [        UUUUR                  UR                  S9$ )	Nr°  r   r   r+   r±   )Úignore_indexr-   )r²  Ústart_logitsÚ
end_logitsr4   rC  )rP   r:  rM  rí  Úsplitrò   r¿   r·   r$   rÑ   r   r   r4   rC  )r#   ró   r«   rô   rî   rö   rï  rð  r¬   r9  r:  rr  r´  rx  r³  ró  rô  Ú
total_lossÚignored_indexr¶  Ú
start_lossÚend_lossrþ   s                          r'   r8   Ú#DebertaForQuestionAnswering.forward\  s½  € ð &1Ñ%<‘kÀ$Ç+Á+×BYÑBYˆà—,‘,ØØ)Ø)Ø%Ø'Ø/Ø!5Ø#ð ð 	
ˆð " !™*ˆà—‘ Ó1ˆØ#)§<¡<°°r <Ð#:Ñ ˆ�jØ#×+Ñ+¨BÓ/×:Ñ:Ó<ˆØ×'Ñ'¨Ó+×6Ñ6Ó8ˆ
àˆ
ØÑ&¨=Ñ+Dä�?×'Ñ'Ó)Ó*¨QÓ.Ø"1×"9Ñ"9¸"Ó"=�Ü�=×%Ñ%Ó'Ó(¨1Ó,Ø -× 5Ñ 5°bÓ 9�à(×-Ñ-¨aÓ0ˆMØ-×3Ñ3°A°}ÓEˆOØ)×/Ñ/°°=ÓAˆMä'°]ÑCˆHÙ! ,Ó@ˆJÙ 
¨MÓ:ˆHØ$ xÑ/°1Ñ4ˆJæØ" JÐ/°'¸!¸"°+Ñ=ˆFØ/9Ñ/E�Z�M FÑ*ÐQÈ6ÐQä+ØØ%Ø!Ø!×/Ñ/Ø×)Ñ)ñ
ð 	
r)   )rM  rÌ  rí  )
NNNNNNNNNN)r;   r<   r=   r>   r   r   r   rÛ   rº   rÜ   r   r8   r@   rA   rB   s   @r'   rë  rë  P  sù   ø† õð ð *.Ø.2Ø.2Ø,0Ø-1Ø/3Ø-1Ø)-Ø,0Ø#'ñ=
à—<‘< $Ñ&ð=
ð Ÿ™ tÑ+ð=
ð Ÿ™ tÑ+ð	=
ð
 —l‘l TÑ)ð=
ð —|‘| dÑ*ð=
ð Ÿ™¨Ñ,ð=
ð —|‘| dÑ*ð=
ð   $™;ð=
ð # T™kð=
ð ˜D‘[ð=
ð 
Ð-Ñ	-ô=
ó ö=
r)   rë  )r   rë  rÊ  rå  r^  rL  )Ar?   r   r   Útorch.nnr   r   r   Ú r   rP  Úactivationsr	   Úmodeling_layersr
   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   Úutilsr   r   Úconfiguration_debertar   Ú
get_loggerr;   ÚloggerÚModuler   rD   ÚjitÚscriptri   ro   rq   ru   rÛ   r•   rz   r}   r‚   rˆ   rŠ   rÞ   rü   r  r  r  r'  rL  r^  r{  rR  r‰  rS  r˜  r   rº  rÊ  rå  rë  Ú__all__r<  r)   r'   Ú<module>r	     se  ðñ ã Ý ß AÑ Aå &Ý !Ý 9÷õ õ .ß ,Ý 0ð 
×	Ò	˜HÓ	%€ô�r—y‘yô ô(˜Ÿ	™	ô ð ‡�×Ññó ðð8 ‡�×Ññró ðrð ‡�×Ññnó ðnð ‡�×Ññ[ó ð[ð ‡�×Ñð\ %§,¡,ð \¸có \ó ð\ð ‡�×Ñð˜EŸL™Lð °U·\±\ó ó ðð ‡�×Ñðd¨¯©ð dÀÇÁð dÐgjó dó ðdð ‡�×Ñð°·±ð ÈÏÉó ó ðôC §	¡	ô CôLL˜Ÿ	™	ô Lô^,�r—y‘yô ,ôF˜"Ÿ)™)ô ô�B—I‘Iô ô(Ð-ô (ôBO
�R—Y‘Yô O
ðd ôi˜_ó ió ðið& ôa
Ð)ó a
ó ða
ôH¨2¯9©9ô ô& B§I¡Iô ô&!˜rŸy™yô !ô˜bŸi™iô ô6!˜Ÿ™ô !ð ôY
Ð/ó Y
ó ðY
ôx'�B—I‘Iô 'ñ, ðñôh
Ð'=ó h
óðh
ðV ô;
Ð$:ó ;
ó ð;
ð| ôI
Ð"8ó I
ó ðI
òX�r)   