+
    QV-j ã                   óÈ  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHtH t H!t!H"t" ^ RI#H$t$ ^RI%H&t& ^RI'H(t( ^RI)H*t* ^RI+H,t,H-t-H.t.H/t/H0t0H1t1H2t2 ^RI3H4t4H5t5H6t6 ]6Pn                  ! ]84      t9Rt:Rt;Rt<Rt=Rt>],R,          t,R]R] R]!R]"/t?R]:R]=/t@]5! ],4       ! R R ]/4      4       tA]AtBR# )!z‘
Tokenization classes for fast tokenizers (provided by HuggingFace's tokenizers library). For slow (python) tokenizers
see tokenization_utils.py
N)Údefaultdict)ÚIterable)Úcopyfile)ÚAny)Úis_offline_mode)Ú
AddedTokenÚ
processors)ÚEncoding)Ú	Tokenizer)ÚDecoder)ÚBPEÚUnigram)Ú
BpeTrainerÚUnigramTrainerÚWordLevelTrainerÚWordPieceTrainer)Úcached_file)ÚSpmConverter)Úconvert_gguf_tokenizer)Úload_gguf_checkpoint)ÚINIT_TOKENIZER_DOCSTRINGÚBatchEncodingÚPreTokenizedInputÚPreTrainedTokenizerBaseÚ	TextInputÚTruncationStrategyÚgenerate_merges)ÚPaddingStrategyÚadd_end_docstringsÚloggingztokenizer.jsonzspecial_tokens_map.jsonztokenizer_config.jsonztokenizer.modelzadded_tokens.jsonu¡  
        tokenizer_object ([`tokenizers.Tokenizer`]):
            A [`tokenizers.Tokenizer`] object from ðŸ¤— tokenizers to instantiate from. See [Using tokenizers from ðŸ¤—
            tokenizers](../fast_tokenizers) for more information.
        tokenizer_file ([`str`]):
            A path to a local JSON file representing a previously serialized [`tokenizers.Tokenizer`] object from ðŸ¤—
            tokenizers.
r   r   Ú	WordLevelÚ	WordPieceÚtokenizer_fileÚ
vocab_filec                   ór  a a€ ] tR t^St oRt]tRtRt]	RBR l4       t
V 3R lt]V3R lR l4       t]V3R lR	 l4       tRCV3R
 lR lltR t]R 4       t]R 4       t]P&                  R 4       t]P&                  R 4       tR t]V3R lR l4       tV3R lR lt]V3R lR l4       t]V3R lR l4       t]V3R lR l4       t]t]tV3R lR ltV3R lR ltV3R  lR! lt]V3R" lR# l4       t]V3R$ lR% l4       t RDV3R' lR( llt!V3R) lR* lt"V3R+ lR, lt#RBV3R- lR. llt$RBV3R/ lR0 llt%RBV3R1 lR2 llt&REV3R3 lR4 llt'V3R5 lR6 lt(RR&])PT                  ]+PX                  R^ RRRRRRRRRRR&R3V3R7 lR8 llt-V3R9 lR: lt.RFV3R; lR< llt/RGV3R= lR> llt0RHR? lt1]	RIR@ l4       t2RAt3Vt4V ;t5# )JÚTokenizersBackenda5  
Base class for all fast tokenizers (wrapping HuggingFace tokenizers library).

Inherits from [`~tokenization_utils_base.PreTrainedTokenizerBase`].

Handles all the shared methods for tokenization and special tokens, as well as methods for
downloading/caching/loading pretrained tokenizers, as well as adding tokens to the vocabulary.

This class also contains the added tokens in a unified way on top of all tokenizers so we don't have to handle the
specific vocabulary augmentation methods of the various underlying dictionary structures (BPE, sentencepiece...).
NFc                óò  a(€ \        V4      pVP                  RR4      pVed   \        P                  P	                  V4      '       d?   V \
        J g   RV P                  9  g	   V'       d   \        P                  ! V4      VR&   V# VEe?   \        P                  P	                  V4      '       Ed   \        VRR7      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  R/ 4      P                  R4      pVR:9  dc   \        V4      p\        VR,          4      p	/ V	R
&   VR8X  d   . V	R&   W˜R&   . VR&   \        P                  ! \        P                  ! V4      4      p
M\        P                  ! V4      p
V
P                  VR&   V
P                   VR&   V
P"                  VR&   V
P"                  e   V
P"                  VR&   V
P                   e   V
P                   VR&   VP                  R4      pV'       d„   VP                  RR4      R8X  d   VR,          pM\%        V\&        4      '       g   V.pV FC  pVP                  R4      R8X  g   K  RV9   g   K$  ^ RIpVP+                  VR,          4      VR&    M	  VP                  R/ 4      P                  R
R4      pV P,                  f2   \%        V\&        4      '       d   \'        \/        \0        V4      4      pEM>V P,                  P2                  R	8X  d]   \%        V\&        4      '       dF   V'       d>   \%        V^ ,          \&        \0        34      '       d   V Uu. uF  p\1        V4      NK  	  ppMÇV P,                  P2                  R8X  d"   \5        V4       UUu/ uF	  w  ppVVbK  	  pppM‹V P,                  P2                  R8X  g   V P,                  P2                  R8X  dV   \%        V\&        4      '       d@   \5        V4       UUu/ uF(  w  pp\%        V\&        4      '       d
   V^ ,          MTVbK*  	  pppWãR
&   \7        V RR4      pRVP                  R/ 4      9   dy   V'       dq   VP2                  R8X  d`   VR,          R,          pV Uu. uF>  p\%        V\8        4      '       d   \1        VP;                  R4      4      M
\1        V4      NK@  	  ppVVR&   V# VP                  R4      pVP                  R4      pVP                  R
4      pVP                  R4      p\%        V\8        4      '       df   VP=                  R4      '       dO   \        P                  P	                  V4      '       d*   ^RIH p V! VR 7      PC                  V4      w  VR
&   VR&   V# \%        V\8        4      '       EdÌ   \        P                  P	                  V4      '       Ed¦   VP=                  R!4      '       EdŽ    ^R"IH"p V! V4      pVPF                  ! V P,                  3/ VB p ^R#IH$p VP                  V P2                  4      pVe%   \K        VR$4      '       d   VPL                  ! R;/ VB p\K        T R(4      '       d   T PT                  ! R;/ TB pRT9  Edê   T \
        J g   RT P                  9  EdÎ   TP                  R
R4      pTP                  RR4      pTP                  R)4      ;'       g    / pTe¤   T'       dœ   TPW                  4        UUu/ uF	  w  ppTTbK  	  pppTPW                  4        Fb  w  pp\Y        T4      p\9        T4      pTP                  T4      p T '       g   K7  T T8w  g   K@  TT9  g   KI  TP                  T 4      TT&   TTT&   Kd  	  \Z        P\                  ! TP^                  TTR*7      p!T!eÁ   T!TR&   TP^                  P`                  p"T"Pb                  ^ 8¼  d'   TPe                  R+T"Pf                  ;'       g    R,4       T"Ph                  ^ 8¼  d'   TPe                  R-T"Pj                  ;'       g    R.4       T"Pl                  ^ 8¼  d'   TPe                  R/T"Pn                  ;'       g    R04       T# VfJ   \%        V\8        4      '       d4   \        P                  P	                  V4      '       d   VVR
&   VR
,          pVfJ   \%        V\8        4      '       d4   \        P                  P	                  V4      '       d   VVR&   VR,          pVfš   V P,                  eŒ   V P,                  P2                  R8X  dq   \%        V\         4      '       d[   R7 V(3R8 llo(. R<Op%\u        4       p&V% F+  p'V'V9   g   K  V&Pw                  S(! VV',          .4      4       K-  	  \y        VV&R97      pVVR&   V#   + '       g   i     ELÏ; iu upi u uppi u uppi u upi   \N         d2   p\P        PS                  R%T P2                   R&T R'24        Rp?EL±Rp?ii ; iu uppi   \N         dZ   p\P        PS                  R1T R2T R324       ^R4IH8p# T#! TTP                  R54      R67      p$T$Ps                  4       TR&    Rp?T# Rp?ii ; i)=z’
Build a `tokenizers.Tokenizer` backend from the available serialization files (tokenizer.json, sentencepiece
models, tekken.json, vocab/merges).
r"   NÚ__init__Útokenizer_objectúutf-8©ÚencodingÚmodelÚtyper   Úvocabr   ÚmergesÚadded_tokensÚpost_processorÚtokenizer_paddingÚtokenizer_truncationÚ_json_truncationÚ_json_paddingÚ
normalizerÚSequenceÚnormalizersÚPrecompiledÚprecompiled_charsmapÚ_spm_precompiled_charsmapr    r!   Ú r#   Úmerges_fileztekken.json)ÚMistralConverter)r#   ú.model)ÚSentencePieceExtractor)ÚSLOW_TO_FAST_CONVERTERSÚconvert_from_spmz,Could not reorder vocab using converter for z due to z/. Falling back to raw SentencePiece extraction.Úconvert_from_spm_modelÚadded_tokens_decoder)Úprotor.   r/   Ú	bos_tokenú<s>Ú	eos_tokenú</s>Ú	unk_tokenz<unk>z+Could not extract SentencePiece model from z$ using sentencepiece library due to z%. Falling back to TikToken extractor.)ÚTikTokenConverterÚextra_special_tokens)r#   rL   c                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# )é   ÚvaluesÚreturn)r   r   ÚlistÚstr)Úformats   "Ú{/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/tokenization_utils_tokenizers.pyÚ__annotate__Ú@TokenizersBackend.convert_to_native_format.<locals>.__annotate__)  s"   € ÷ 	!ñ 	!¬X´c­]ð 	!¼tÄC½yñ 	!ó    c                 óÈ   <€ . pV  FX  pVf   K	  \        V\        \        34      '       d   VP                  S! V4      4       K>  VP	                  \        V4      4       KZ  	  V# ©N)Ú
isinstancerQ   ÚtupleÚextendÚappendrR   )rO   Ú	collectedÚvalÚ_iter_special_tokenss   &  €rT   r`   ÚHTokenizersBackend.convert_to_native_format.<locals>._iter_special_tokens)  sY   ø€ Ø')�	Û!�CØ’{Ù Ü! #¬¬e }×5Ò5Ø!×(Ñ(Ñ)=¸cÓ)BÖCà!×(Ñ(¬¨S«Ö2ñ "ð !Ð rW   )Úskip_tokens)Nr   © )	Ú	pad_tokenrJ   rF   rH   Ú	sep_tokenÚ	cls_tokenÚ
mask_tokenÚadditional_special_tokensrL   )=ÚdictÚpopÚosÚpathÚisfiler%   Ú__dict__ÚTokenizerFastÚ	from_fileÚopenÚjsonÚloadÚgetÚfrom_strÚdumpsr1   ÚpaddingÚ
truncationrZ   rQ   Úbase64Ú	b64decoder,   Úmapr[   Ú__name__Ú	enumerateÚgetattrrR   ÚsplitÚendswithÚconvert_slow_tokenizerr>   Úextract_vocab_merges_from_modelr@   ÚextractrA   ÚhasattrrB   Ú	ExceptionÚloggerÚwarningrC   ÚitemsÚintr   Úbuild_tokenizer_from_spm_protorE   Útrainer_specÚbos_idÚ
setdefaultÚ	bos_pieceÚeos_idÚ	eos_pieceÚunk_idÚ	unk_piecerK   Ú	convertedÚsetÚupdater   ))ÚclsÚtrust_remote_codeÚkwargsÚlocal_kwargsÚfast_tokenizer_fileÚtokenizer_handleÚtokenizer_jsonÚ
model_typeÚminimal_tokenizer_jsonÚminimal_modelÚtok_from_fileÚnormalizer_configr6   ry   r.   ÚitemÚiÚtokenr/   Úmerger#   r=   r>   r@   Ú	extractorrA   Úconverter_classÚerD   Útoken_idÚid_to_tokenÚ	new_tokenÚcurrent_tokenr(   Ú
proto_specrK   Ú	converterÚspecial_tokens_keysrb   Úkeyr`   s)   &&,                                     @rT   Úconvert_to_native_formatÚ*TokenizersBackend.convert_to_native_formate   sI	  ø€ ô ˜F“|ˆØ*×.Ñ.Ð/?ÀÓFÐð  Ò+Ü—‘—‘Ð2×3Ò3ØÔ)Ó)¨Z¸s¿|¹|Ô-K×O`ä/<×/FÒ/FÐGZÓ/[ˆLÐ+Ñ,ØÐØ Ó,´·±·±Ð@S×1TÓ1Tô Ð)°G×<Õ<Ð@PÜ!%§¢Ð+;Ó!<�÷ =ð (×+Ñ+¨G°RÓ8×<Ñ<¸VÓDˆJØÐ!2Ô2Ü)-¨nÓ)=Ð&Ü $ ^°GÕ%<Ó =�Ø)+�˜gÑ&Ø Ô&Ø.0�M (Ñ+Ø2? wÑ/Ø9;Ð& ~Ñ6Ü -× 6Ò 6´t·z²zÐBXÓ7YÓ Z‘ä -× 7Ò 7Ð8KÓ L�à-:×-IÑ-IˆLÐ)Ñ*Ø0=×0EÑ0EˆLÐ,Ñ-Ø3@×3KÑ3KˆLÐ/Ñ0ð ×'Ñ'Ò3Ø3@×3KÑ3K�Ð/Ñ0Ø×$Ñ$Ò0Ø0=×0EÑ0E�˜_Ñ-ð !/× 2Ñ 2°<Ó @Ðß Ø$×(Ñ(¨°Ó6¸*ÔDØ(9¸-Õ(HÑ%Ü#Ð$5´t×<Ò<Ø):Ð(;Ð%Û"3�JØ!—~‘~ fÓ-°Ö>ÐCYÐ]gÖCgÛ%àDJ×DTÑDTØ&Ð'=Õ>óE˜Ð%@ÑAñ ñ #4ð #×&Ñ& w°Ó3×7Ñ7¸ÀÓFˆEØ�y‰yÒ Ü˜e¤T×*Ò*Ü ¤¤U¨EÓ!2Ó3�EùØ—‘×#Ñ# yÔ0Ü˜e¤T×*Ò*¯u¼ÀEÈ!ÅHÌtÔUZÈm×9\Ò9\Ù5:Ó;±U¨TœU 4ž[±U�EÐ;øØ—‘×#Ñ# {Ô2Ü2;¸EÔ2BÔCÑ2B¡h a¨˜ šÑ2B�ÑC�Ø—‘×#Ñ# uÔ,°·	±	×0BÑ0BÀkÔ0QÜ˜e¤T×*Ò*Ü_hÐinÔ_oÔpÑ_oÑS[ÐSTÐV[¬°E¼4×)@Ò)@˜U 1žXÀeÈQÒNÑ_o�EÑpØ$)˜Ñ!ä   g¨tÓ4ˆJØ˜>×-Ñ-¨g°rÓ:Ô:Ç
Èz×ObÑObÐfkÔOkØ'¨Õ0°Õ:�ÙkqÓrÑkqÐbg´ZÀÄs×5KÒ5Kœ% §¡¨CÓ 0Ô1ÔQVÐW\ÓQ]Ò]Ñkq�ÐrØ)/�˜XÑ&àÐà!×%Ñ% lÓ3ˆ
Ø"×&Ñ& }Ó5ˆØ× Ñ  Ó)ˆØ×!Ñ! (Ó+ˆô �j¤#×&Ò&¨:×+>Ñ+>¸}×+MÒ+MÔRT×RYÑRY×R`ÑR`Ðak×RlÒRlÝ@á<LØ%ô=ç-Ñ-¨jÓ9ñ :ˆL˜Ñ! <°Ñ#9ð  Ðô �j¤#×&Ó&¬2¯7©7¯>©>¸*×+EÓ+EÈ*×J]ÑJ]Ð^f×JgÓJgðFIÝJñ 3°:Ó>�	Ø(×0Ò0°·±ÑK¸lÑK�ð	ÝOà&=×&AÑ&AÀ#Ç,Á,Ó&O�OØ&Ò2´w¸ÐPb×7cÒ7cØ'6×'GÒ'GÑ'WÈ,Ñ'W˜ô
 ˜3Ð 8×9Ò9Ø#&×#=Ò#=Ñ#MÀÑ#M�Lð
 &¨\Õ9ØÔ,Ó,°
À#Ç,Á,Õ0Nà(×,Ñ,¨W°dÓ;�EØ)×-Ñ-¨h¸Ó=�Fð ,8×+;Ñ+;Ð<RÓ+S×+YÐ+YÐWYÐ(ØÒ(×-AØNSÏkÉkÌmÔ&\Ém¹?¸5À( x°¢Ém˜Ñ&\Ø3G×3MÑ3MÖ3OÑ/˜H iÜ'*¨8£}˜HÜ(+¨I«˜IØ,7¯O©O¸HÓ,E˜Mß,™}°À)Ö1KÐPYÐafÖPfØ38·9±9¸]Ó3K  iÑ 0Ø8A ¨HÓ 5ñ 4Pô (4×'RÒ'RØ'Ÿo™oØ#Ø%ô(Ð$ð
 (Ò3Ø;K˜Ð%7Ñ8ð &/§_¡_×%AÑ%A˜
Ø%×,Ñ,°Ô1Ø(×3Ñ3°KÀ×AUÑAU×A^ÐA^ÐY^Ô_Ø%×,Ñ,°Ô1Ø(×3Ñ3°KÀ×AUÑAU×A_ÐA_ÐY_Ô`Ø%×,Ñ,°Ô1Ø(×3Ñ3°KÀ×AUÑAU×A`ÐA`ÐY`Ôað  Ðð Š=œZ¨
´C×8Ò8¼R¿W¹W¿^¹^ÈJ×=WÒ=WØ$.ˆL˜Ñ!Ø  Õ)ˆEØŠ>œj¨´c×:Ò:¼r¿w¹w¿~¹~Èk×?ZÒ?ZØ%0ˆL˜Ñ"Ø! (Õ+ˆFð Š>˜cŸi™iÒ3¸¿	¹	×8JÑ8JÈeÔ8SÔXbÐchÔjn×XoÒXo÷	!ð 	!ò
#Ðô %(£EˆKÛ*�Ø˜,Ö&Ø×&Ñ&Ñ';¸\È#Õ=NÐ<OÓ'PÖQñ +ô % U¸ÔDˆFØ%+ˆL˜Ñ"ØÐ÷[ =×<Ð<üòx <ùãCùó qùò søôF !ô Ü—N‘NØFÀsÇ|Á|ÀnÐT\Ð]^Ð\_ð  `Oð  P÷ò ûðüó& ']øô6 ô 
IÜ—‘ØAÀ*ÀÐMqÐrsÐqtð u:ð :ôõ Fá-Ø)À×@PÑ@PÐQgÓ@hô�	ð 4=×3FÑ3FÓ3H�Ð/Õ0ØÐûð
Iús¨   Ãf#Í	f7Î	f<Ï6.gÑ<Ag×+h Ø
A	g ÙBh Ûh Û&h Û9hÜAh Ýh Ýh Ý$Bh ß36h à*6h á!h æ#f4	çh	ç&hç>h èh	è		h èi6èAi1é1i6c           
     ó.  <€ VP                  R R4      pVP                  RR4      pVP                  RR4       VP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  R/ 4      pVP                  RR	4      p	VP                  R
4      p
VP                  R4      pVP                  R4      pRpVe   \        P                  ! V4      pEMîVe>   \        P
                  P                  V4      '       d   \        P                  ! V4      pEM­VeŽ   \        VP                  RR4      V3/ VB p\        V4      pVR,          R,          pVR,          pVR,          p\        VV4      w  ppVP                  V4       \        V4      ^ 8”  d   VP                  V4       EMV P                  fö   Veò   VeX   \        V\         4      '       d   TM%\#        V4       UUUu/ uF  w  pw  ppVVbK  	  upppp\        \%        VVRRR7      4      pM¯\        V\         4      '       d   \        \%        V. RRR7      4      pM€\        V\&        4      '       dQ   V'       dI   \        V^ ,          \(        \&        34      '       d&   \        \+        W²P                  R^ 4      R7      4      pMV P                  f   \-        R4      hVf7   Vf3   V P                  f%   VP/                  RR4       VP/                  RR4       Ve   WÐn        V P                  f   \-        R4      hVP                  RR4      ;'       g!    V P                  P0                  ;'       g    TpVe‚   V P                  P2                  ! R7/ VB  VP/                  RVR,          4       VP/                  RVR ,          4       VP/                  R!VR!,          4       VP/                  R"VR#,          4       MV P                  P5                  4        VP                  R$R4      ;'       g!    V P                  P6                  ;'       g    TpVeš   V P                  P8                  ! R7/ VB  VP/                  R%VR%,          4       VP/                  R&VR',          4       VP/                  R(VR ,          4       VP/                  RVR),          4       VP/                  R*VR*,          4       R+V9  d   R,VR+&   R-V9   ;'       g    R.V9   pVP                  R-R	4      V n        VP                  R.R	4      V n        VP                  R/R4      ;p'       d   VV P                  n        T;'       g    V P                  P>                  RJ V n         \B        S&V `ˆ  ! R7/ VB  V
e   W n#        W�n$        V PJ                  V P                  n&        V PN                   Uu0 uF  p\Q        \S        V4      4      kK  	  pp\U        VPW                  4       R0 R17       UUu. uF#  w  pp\Q        \S        V4      4      V9  g   K!  VNK%  	  ppp\'        V PX                  P[                  4       4      V Uu. uF  p\]        V4      NK  	  up,           p V P^                  Pa                  4        F5  p!V!f   K	  \]        V!4      V 9  g   K  V!V9  g   K$  VPc                  V!4       K7  	  V Pd                   F/  p\]        V4      V 9  g   K  VV9  g   K  VPc                  V4       K1  	  \        V4      ^ 8”  dÕ   . p"V P^                  Pa                  4        U#u. uF  p#V#'       g   K  \]        V#4      NK  	  p$p#V Fw  p\        V\\        4      '       d   \g        VRR27      pM?\        V\f        4      '       d*   VPh                  '       g   \]        V4      V$9   d   RVn4        V"Pc                  V4       Ky  	  V"'       d   V Pk                  V"4        V P                  Pm                  4       p%V%R38”  d‡   \q        V P                  R4R4      en   VP                  RR4       V Pr                  ! V P                  V Pt                  P                  RR4      3R5V Pt                  R6VP                  R6R4      /VB V n        V P@                  ;'       g    V P                  P>                  RJ V n         V P@                  '       d   V Pw                  4        R# R# u upppi u upi u uppi u upi u up#i   \n         d    ^ p% ELi ; i)8r4   Nr5   r;   r(   Ú	gguf_filer"   rD   Úadd_prefix_spaceFr#   r.   r/   Úname_or_pathÚ Úconfigr�   Ú	tokenizerÚtokenizer_configT)r.   r/   Úfuse_unkÚdropoutr‘   )r.   r‘   a9  Couldn't instantiate the backend tokenizer from one of: 
(1) a `tokenizers` library serialization file, 
(2) a slow tokenizer instance to convert or 
(3) an equivalent slow tokenizer class to instantiate and convert. 
You need to have sentencepiece or tiktoken installed to convert a slow tokenizer to a fast one.rF   rG   rH   rI   z3The backend tokenizer is not correctly initialized.r3   Ú
max_lengthÚtruncation_sideÚ	directionÚstrideÚtruncation_strategyÚstrategyr2   rd   Úpad_token_type_idÚpad_type_idÚpadding_sideÚlengthÚpad_to_multiple_ofÚbackendÚ
tokenizersÚadd_bos_tokenÚadd_eos_tokenr1   c                 ó   € V ^ ,          # ©é    rc   )Úxs   &rT   Ú<lambda>Ú,TokenizersBackend.__init__.<locals>.<lambda>³  s   € ÐSTÐUVÖSWrW   ©r°   )Úspeciali † Úpre_tokenizerÚinit_kwargsÚfix_mistral_regexrc   )<rj   rt   ÚcopyÚdeepcopyrk   rl   rm   ro   rp   r   r   r   r•   ÚlenÚ
_tokenizerrZ   ri   r}   r   rQ   r[   r   Ú
ValueErrorr�   rx   Úenable_truncationÚno_truncationrw   Úenable_paddingÚ_add_bos_tokenÚ_add_eos_tokenr1   Ú_should_update_post_processorÚsuperr'   r#   rµ   Úsplit_special_tokensÚencode_special_tokensrD   ÚhashÚreprÚsortedrˆ   Úadded_tokens_encoderÚkeysrR   Ú_special_tokens_maprO   r]   Ú_extra_special_tokensr   rÓ   Ú
add_tokensÚget_vocab_sizeÚNotImplementedErrorr~   Ú_patch_mistral_regexrÕ   Úupdate_post_processor)'ÚselfÚargsr˜   r4   r5   r(   r´   rš   rD   rµ   r#   r.   r/   Úfast_tokenizerÚ	gguf_pathÚ
gguf_paramÚarchitectureÚtokenizer_dictrº   Úadditional_kwargsr£   ÚwÚ_Ú
vocab_dictÚ_truncationÚ_paddingÚexplicit_bos_eos_in_kwargsr1   r¤   Úadded_tokens_decoder_hashÚindexÚtokens_to_addÚencoderÚspecial_token_valueÚtokensÚtÚall_named_tokensÚ
vocab_sizeÚ	__class__s'   &*,                                   €rT   r'   ÚTokenizersBackend.__init__H  sç  ø€ ð "Ÿ:™:Ð&8¸$Ó?ÐØŸ
™
 ?°DÓ9ˆð 	�
‰
Ð.°Ô5à!Ÿ:™:Ð&8¸$Ó?ÐØ—J‘J˜{¨DÓ1ˆ	Ø$Ÿj™jÐ)9¸4Ó@Ðà%Ÿz™zÐ*@À"ÓEÐà!Ÿ:™:Ð&8¸%Ó@ÐØ—Z‘Z Ó-ˆ
à—
‘
˜7Ó#ˆØ—‘˜HÓ%ˆàˆØÒ'Ü!Ÿ]š]Ð+;Ó<ŠNØ Ò,´·±·±Ð@S×1TÒ1Tä*×4Ò4Ð5HÓIŠNØÒ"ä# F§J¡J¨~¸rÓ$BÀIÑXÐQWÑXˆIÜ-¨iÓ8ˆJØ% hÕ/°Õ=ˆLØ'¨Õ4ˆNØ)Ð*<Õ=ÐÜ0FÀ|ÐUcÓ0dÑ-ˆNÐ-Ø�M‰MÐ*Ô+ÜÐ$Ó%¨Ô)Ø—‘Ð/Ô0ùØ�_‰_Ò$¨Ò):àÒ!Ü&0°¼×&=Ò&=™UÔZcÐdiÔZjÕCkÑZjÉYÈQÑPVÐQRÐTUÀAÀqÂDÑZjÓCk�
Ü!.¬s¸ÈFÐ]aÐkoÔ/pÓ!q‘Ü˜E¤4×(Ò(Ü!.¬s¸ÀrÐTXÐbfÔ/gÓ!h‘Ü˜E¤4×(Ò(¯U´zÀ%ÈÅ(ÌUÔTXÈM×7ZÒ7ZÜ!.¬w¸UÏ:É:ÐV^Ð`aÓKbÔ/cÓ!d�øØ�_‰_Ò$Üðróð ð Ò&Ð+;Ò+CÈÏÉÒH_Ø×Ñ˜k¨5Ô1Ø×Ñ˜k¨6Ô2àÒ%Ø,ŒOà�?‰?Ò"ÜÐRÓSÐSà—j‘jÐ!7¸Ó>×pÐpÀ$Ç/Á/×B\ÑB\×pÐpÐ`pˆØÒ"Ø�O‰O×-Ò-Ñ<°Ò<Ø×Ñ˜l¨K¸Õ,EÔFØ×ÑÐ/°¸[Õ1IÔJØ×Ñ˜h¨°HÕ(=Ô>Ø×ÑÐ3°[ÀÕ5LÕMà�O‰O×)Ñ)Ô+à—:‘:Ð1°4Ó8×dÐd¸D¿O¹O×<SÑ<S×dÐdÐWdˆØÒØ�O‰O×*Ò*Ñ6¨XÒ6Ø×Ñ˜k¨8°KÕ+@ÔAØ×ÑÐ1°8¸MÕ3JÔKØ×Ñ˜n¨h°{Õ.CÔDØ×Ñ˜l¨H°XÕ,>Ô?Ø×ÑÐ2°HÐ=QÕ4RÔSð ˜FÔ"Ø ,ˆF�9Ñà%4¸Ñ%>×%[Ð%[À/ÐU[ÑB[Ð"Ø$Ÿj™j¨¸%Ó@ˆÔØ$Ÿj™j¨¸%Ó@ˆÔØ#ŸZ™ZÐ(8¸$Ó?Ð?ˆ>Ö?Ø-;ˆD�O‰OÔ*Ø-G×-qÐ-qÈ4Ï?É?×KiÑKiÐmqÐKqˆÔ*ä‰ÒÑ"˜6Ò"àÒ!Ø(ŒOà 0ÔØ04×0IÑ0Iˆ�‰Ô-àDH×D]ÒD]Ó$^ÑD]¸5¤T¬$¨u«+Ö%6ÑD]Ð!Ð$^ô !'Ð';×'AÑ'AÓ'CÉÕ Xô
á X‘��uÜ”D˜“KÓ Ð(AÑA÷ ˆEÙ Xð 	ñ 
ô
 �t×0Ñ0×5Ñ5Ó7Ó8ÑTaÓ;bÑTaÈ5¼CÀ¾JÑTaÑ;bÕbˆð $(×#;Ñ#;×#BÑ#BÖ#DÐØ"Ò*ÙÜÐ&Ó'¨wÖ6Ð;NÐVcÖ;cØ×$Ñ$Ð%8Ö9ñ	 $Eð ×/Ô/ˆEÜ�5‹z Ö(¨U¸-Ö-GØ×$Ñ$ UÖ+ñ 0ô ˆ}Ó Ô!ØˆFØ04×0HÑ0H×0OÑ0OÔ0QÓWÑ0Q¨1ÔUV¤¤ A¦Ñ0QÐÐWÛ&�Ü˜e¤S×)Ò)ä& u°dÔ;‘EÜ ¤z×2Ò2à Ÿ=Ÿ=˜=¬S°«ZÐ;KÔ-KØ(,˜œØ—‘˜eÖ$ñ '÷ à—‘ Ô'ð	ØŸ™×7Ñ7Ó9ˆJð
 ˜Ô¤7¨4¯?©?¸OÈTÓ#RÒ#^Ø�J‰J�{ DÔ)Ø"×7Ò7Ø—‘Ø× Ñ ×$Ñ$ ^°TÓ:ñð !×,Ñ,ðð #)§*¡*Ð-@À$Ó"Gð	ð
 ñˆDŒOð ×.Ñ.×XÐX°$·/±/×2PÑ2PÐTXÐ2Xð 	Ô*ð ×-×-Ð-Ø×&Ñ&Ö(ñ .ùôo Dlùò~ %_ùó
ùò
 <cùò"  Xøô  #ô 	Ø‹Jð	ús<   Ç2c'×c.Øc3Ø&c3Ùc9Ü2
c>Ýc>ß)d ädädc                ó    <€ V ^8„  d   QhRS[ /# ©rN   rP   ©Úbool)rS   Ú__classdict__s   "€rT   rU   ÚTokenizersBackend.__annotate__ì  s   ø€ ÷ ñ ™ñ rW   c                ó   € R # )Trc   ©rñ   s   &rT   Úis_fastÚTokenizersBackend.is_fastë  s   € árW   c                ó    <€ V ^8„  d   QhRS[ /# r  r  )rS   r  s   "€rT   rU   r  ð  s   ø€ ÷ ñ ©ñ rW   c                ó  € RV P                   9   dx   V P                   R,          P                  R4      '       dP   \        V R4      '       d<   V P                  '       d*   \        P
                  P                  V P                  4      # R# R# )z´
`bool`: Whether or not the slow tokenizer can be saved. For a sentencepiece based slow tokenizer, this
can only be `True` if the original `"sentencepiece.model"` was not deleted.
r#   r?   FT)Úvocab_files_namesr€   r„   r#   rk   rl   rm   r  s   &rT   Úcan_save_slow_tokenizerÚ)TokenizersBackend.can_save_slow_tokenizerï  s`   € ð ˜4×1Ñ1Ô1°d×6LÑ6LÈ\Õ6Z×6cÑ6cÐdl×6mÒ6mÜ�t˜\×*Ò*¨t¯¯¨ä—w‘w—~‘~ d§o¡oÓ6Ð6ÙárW   c                óJ   <€ V ^8„  d   QhRS[ RS[ R,          RS[S[ ,          /# )rN   Úsave_directoryÚfilename_prefixNrP   )rR   r[   )rS   r  s   "€rT   rU   r  ý  s-   ø€ ÷ !ñ !©cð !ÁCÈ$ÅJð !ÑZ_Ñ`cÕZdñ !rW   c                óÎ  € \         P                  P                  V4      '       g   \        P	                  R V R24       R# \         P                  P                  Y'       d
   VR,           MR\        R,          ,           4      p\         P                  P                  V P                  4      \         P                  P                  V4      8w  d   \        V P                  V4       V3# )zVocabulary path (z) should be a directoryNÚ-r·   r#   )
rk   rl   Úisdirr†   ÚerrorÚjoinÚVOCAB_FILES_NAMESÚabspathr#   r   )rñ   r  r  Úout_vocab_files   &&& rT   Úsave_vocabularyÚ!TokenizersBackend.save_vocabularyý  s›   € Ü�w‰w�}‰}˜^×,Ò,Ü�L‰LÐ,¨^Ð,<Ð<SÐTÔUÙÜŸ™Ÿ™Ø¶o˜_¨sÖ2È2ÔQbÐcoÕQpÕpó
ˆô �7‰7�?‰?˜4Ÿ?™?Ó+¬r¯w©w¯©¸~Ó/NÔNÜ�T—_‘_ nÔ5àÐ Ð rW   c                óÞ  € V P                   pV P                  pVf   V P                  '       d   RV n        V P                  pV P                  pVf   V P
                  '       d   RV n        V P                  '       d
   VR,           MR RV P
                  '       d   RV,           R,           MR 2pT V P                  '       d   RV,           R,           MR R	V P
                  '       d   RV,           R,           MR 2p. pV P                  '       d   VP                  W34       V P
                  '       d   VP                  W434       \        P                  ! WVVR
7      V P                  n
        R# )zU
Updates the underlying post processor with the current `bos_token` and `eos_token`.
NFz:0 r·   z$A:0r<   z:0z:1z $B:1)ÚsingleÚpairÚspecial_tokens)rF   Úbos_token_idrÊ   rH   Úeos_token_idrË   r]   r   ÚTemplateProcessingrÚ   r1   )rñ   Úbosr*  Úeosr+  r'  r(  r)  s   &       rT   rð   Ú'TokenizersBackend.update_post_processor
  sF  € ð �n‰nˆØ×(Ñ(ˆØŠ;˜4×-×-Ð-Ø!&ˆDÔà�n‰nˆØ×(Ñ(ˆØŠ;˜4×-×-Ð-Ø!&ˆDÔà%)×%7×%7Ð%7�S˜5–[¸RÐ@ÀÐ[_×[m×[mÐ[mÀcÈCÅiÐRVÖFVÐsuÐDvÐwˆØ�°×0B×0BÐ0B˜3 �9 tÖ+ÈÐKÈ5Ðgk×gy×gyÐgyÐRUÐX[ÕR[Ð^bÖRbð  @Bð  QCð  DˆàˆØ××ÐØ×!Ñ! 3Ð"5Ô6Ø××ÐØ×!Ñ! 3Ð"5Ô6Ü)3×)FÒ)FØ°^ô*
ˆ�‰Ö&rW   c                ó   € \        V R R4      # )rà   F©r~   r  s   &rT   rË   ÚTokenizersBackend.add_eos_token$  ó   € ä�tÐ-¨uÓ5Ð5rW   c                ó   € \        V R R4      # )rß   Fr1  r  s   &rT   rÊ   ÚTokenizersBackend.add_bos_token(  r3  rW   c                óT   € \         P                  V R V4       V P                  4        R# )rà   N©ÚobjectÚ__setattr__rð   ©rñ   Úvalues   &&rT   rË   r2  ,  ó!   € ä×Ñ˜4Ð!1°5Ô9Ø×"Ñ"Ö$rW   c                óT   € \         P                  V R V4       V P                  4        R# )rß   Nr7  r:  s   &&rT   rÊ   r5  1  r<  rW   c           	     ó¦  € . pV P                   P                  4        Fg  pVf   K	  \        V\        4      '       d   VP	                  V4       K2  \        V\
        4      '       g   KJ  VP	                  \        VRRR7      4       Ki  	  V P                   Fa  p\        V\        4      '       d   VP	                  V4       K,  \        V\
        4      '       g   KD  VP	                  \        VRRR7      4       Kc  	  V'       d   V P                  VRR7       \        V RR4      '       g   V P                  P                  f   V P                  4        R# R# )a3  
Post-initialization hook that runs after the tokenizer is fully set up.
This is called by from_pretrained() after loading the tokenizer, which allows
us to add any special tokens that may have been passed as AddedToken objects.

Child classes should call super()._post_init() if they override this method.
NTF)rÓ   Ú
normalized)r)  rá   )rê   rO   rZ   r   r]   rR   rë   rì   r~   rÚ   r1   rð   )rñ   r  Útoken_valuer¤   s   &   rT   Ú
_post_initÚTokenizersBackend._post_init6  s  € ð ˆà×3Ñ3×:Ñ:Ö<ˆKØÒ"ÙÜ˜+¤z×2Ò2Ø×$Ñ$ [Ö1Ü˜K¬×-Ô-Ø×$Ñ$¤Z°ÀTÐV[Ô%\Ö]ñ =ð ×/Ô/ˆEÜ˜%¤×,Ò,Ø×$Ñ$ UÖ+Ü˜E¤3×'Ô'Ø×$Ñ$¤Z°¸tÐPUÔ%VÖWñ	 0÷ à�O‰O˜M¸$ˆOÔ?ä�4Ð8¸$×?Ò?À4Ç?Á?×CaÑCaÒCiØ×&Ñ&Ö(ñ DjrW   c                ó    <€ V ^8„  d   QhRS[ /# r  ©r‰   )rS   r  s   "€rT   rU   r  W  s   ø€ ÷ Gñ G™Cñ GrW   c                ó:   € V P                   P                  RR7      # )z@
`int`: Size of the base vocabulary (without the added tokens).
F©Úwith_added_tokens©rÚ   rí   r  s   &rT   r  ÚTokenizersBackend.vocab_sizeV  s   € ð
 �‰×-Ñ-ÀÐ-ÓFÐFrW   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  ©ri   rR   r‰   )rS   r  s   "€rT   rU   r  ]  s   ø€ ÷ Añ A™4¡¡S �>ñ ArW   c                ó:   € V P                   P                  R R7      # )TrF  )rÚ   Ú	get_vocabr  s   &rT   rM  ÚTokenizersBackend.get_vocab]  s   € Ø�‰×(Ñ(¸4Ð(Ó@Ð@rW   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  rK  )rS   r  s   "€rT   rU   r  a  s   ø€ ÷  ñ  ‘t™C¡˜H•~ñ  rW   c                ó"   € V P                  4       # rY   )rM  r  s   &rT   r.   ÚTokenizersBackend.vocab`  s   € à�~‰~ÓÐrW   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  rK  )rS   r  s   "€rT   rU   r  e  s   ø€ ÷ nñ n¡d©3±¨8¥nñ nrW   c                ó˜   € \        V P                  P                  4       R R7       UUu/ uF  w  rVP                  VbK  	  upp# u uppi )z«
Returns the sorted mapping from string to index. The added tokens encoder is cached for performance
optimisation in `self._added_tokens_encoder` for the slow tokenizers.
c                 ó   € V ^ ,          # rÍ   rc   ©r¢   s   &rT   rÐ   Ú8TokenizersBackend.added_tokens_encoder.<locals>.<lambda>j  ó   € ÐdhÐijÖdkrW   rÒ   ©rç   rD   rˆ   Úcontent©rñ   ÚvÚks   &  rT   rè   Ú&TokenizersBackend.added_tokens_encoderd  s?   € ô *0°×0IÑ0I×0OÑ0OÓ0QÑWkÕ)lÔmÑ)l¡ �—	‘	˜1’Ñ)lÒmÐmùÓmó   ªAc                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  )ri   r‰   r   )rS   r  s   "€rT   rU   r  m  s   ø€ ÷ :ñ :¡d©3±
¨?Õ&;ñ :rW   c                ó6   € V P                   P                  4       # )z†
Returns the added tokens in the vocabulary as a dictionary of index to AddedToken.

Returns:
    `dict[str, int]`: The added tokens.
)rÚ   Úget_added_tokens_decoderr  s   &rT   rD   Ú&TokenizersBackend.added_tokens_decoderl  s   € ð �‰×7Ñ7Ó9Ð9rW   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r  rK  )rS   r  s   "€rT   rU   r  {  s   ø€ ÷ nñ n¡¡c©3 h¥ñ nrW   c                ó˜   € \        V P                  P                  4       R R7       UUu/ uF  w  rVP                  VbK  	  upp# u uppi )z�
Returns the added tokens in the vocabulary as a dictionary of token to index.

Returns:
    `dict[str, int]`: The added tokens.
c                 ó   € V ^ ,          # rÍ   rc   rU  s   &rT   rÐ   Ú3TokenizersBackend.get_added_vocab.<locals>.<lambda>‚  rW  rW   rÒ   rX  rZ  s   &  rT   Úget_added_vocabÚ!TokenizersBackend.get_added_vocab{  s?   € ô *0°×0IÑ0I×0OÑ0OÓ0QÑWkÕ)lÔmÑ)l¡ �—	‘	˜1’Ñ)lÒmÐmùÓmr^  c                ó    <€ V ^8„  d   QhRS[ /# r  r  )rS   r  s   "€rT   rU   r  „  s   ø€ ÷ ñ ™$ñ rW   c                ó   € R# )z>
Returns True, to avoid expensive `assert tokenizer` gotchas.
Trc   r  s   &rT   Ú__bool__ÚTokenizersBackend.__bool__„  s   € ñ rW   c                ó    <€ V ^8„  d   QhRS[ /# r  rD  )rS   r  s   "€rT   rU   r  Š  s   ø€ ÷ Fñ F™ñ FrW   c                ó:   € V P                   P                  RR7      # )z4
Size of the full vocabulary with the added tokens.
TrF  rH  r  s   &rT   Ú__len__ÚTokenizersBackend.__len__Š  s   € ð �‰×-Ñ-ÀÐ-ÓEÐErW   c                ó    <€ V ^8„  d   QhRS[ /# r  )ro   )rS   r  s   "€rT   rU   r  ‘  s   ø€ ÷ ñ ¡=ñ rW   c                ó   € V P                   # )zS
`tokenizers.implementations.BaseTokenizer`: The Rust tokenizer used as a backend.
)rÚ   r  s   &rT   Úbackend_tokenizerÚ#TokenizersBackend.backend_tokenizer�  s   € ð
 �‰ÐrW   c                ó    <€ V ^8„  d   QhRS[ /# r  )ÚDecoderFast)rS   r  s   "€rT   rU   r  ˜  s   ø€ ÷ 'ñ '™ñ 'rW   c                ó.   € V P                   P                  # )zE
`tokenizers.decoders.Decoder`: The Rust decoder for this tokenizer.
)rÚ   Údecoderr  s   &rT   rx  ÚTokenizersBackend.decoder—  s   € ð
 �‰×&Ñ&Ð&rW   Tc                ó¨   <€ V ^8„  d   QhRS[ RS[R,          RS[R,          RS[RS[RS[RS[R	S[R
S[S[S[S[3,          S[S[ ,          3,          /	# )rN   r+   Úreturn_token_type_idsNÚreturn_attention_maskÚreturn_overflowing_tokensÚreturn_special_tokens_maskÚreturn_offsets_mappingÚreturn_lengthÚverboserP   )ÚEncodingFastr  r[   ri   rR   r   rQ   )rS   r  s   "€rT   rU   r  ž  s„   ø€ ÷ -(ñ -(áð-(ñ  $ d�{ð-(ñ  $ d�{ð	-(ñ
 $(ð-(ñ %)ð-(ñ !%ð-(ñ ð-(ñ ð-(ñ 
‰t‘C™�H�~™t¡LÕ1Ð1Õ	2ñ-(rW   c	                óâ  € Vf   RV P                   9   pVf   RV P                   9   pV'       d$   VP                  e   V.VP                  ,           p	MV.p	\        \        4      p
V	 EF  pV
R,          P	                  VP
                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       g   KØ  V
R,          P	                  \        VP
                  4      4       EK  	  W©3# )ar  
Convert the encoding representation (from low-level HuggingFace tokenizer output) to a python Dict and a list
of encodings, take care of building a batch from overflowing tokens.

Overflowing tokens are converted to additional examples (like batches) so the output values of the dict are
lists (overflows) of lists (tokens).

Output shape: (overflows, sequence length)
Útoken_type_idsÚattention_maskÚ	input_idsÚspecial_tokens_maskÚoffset_mappingrÆ   )Úmodel_input_namesÚoverflowingr   rQ   r]   ÚidsÚtype_idsr…  r‡  ÚoffsetsrÙ   )rñ   r+   r{  r|  r}  r~  r  r€  r�  Ú	encodingsÚencoding_dictr¨   s   &&&&&&&&&   rT   Ú_convert_encodingÚ#TokenizersBackend._convert_encodingž  s  € ð( !Ò(Ø$4¸×8NÑ8NÑ$NÐ!Ø Ò(Ø$4¸×8NÑ8NÑ$NÐ!ç$¨×)=Ñ)=Ò)IØ!˜
 X×%9Ñ%9Õ9‰Ià!˜
ˆIä#¤DÓ)ˆÜˆAØ˜+Õ&×-Ñ-¨a¯e©eÔ4ç$ØÐ.Õ/×6Ñ6°q·z±zÔBß$ØÐ.Õ/×6Ñ6°q×7GÑ7GÔHß)ØÐ3Õ4×;Ñ;¸A×<QÑ<QÔRß%ØÐ.Õ/×6Ñ6°q·y±yÔAß‰}Ø˜hÕ'×.Ñ.¬s°1·5±5«z×:ñ ð Ð'Ð'rW   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rN   r¤   rP   )rR   r‰   )rS   r  s   "€rT   rU   r  Í  s   ø€ ÷ ñ ¹ð Áñ rW   c                ó\   € V P                   P                  V4      pVf   V P                  # V# rY   )rÚ   Útoken_to_idÚunk_token_id)rñ   r¤   r   s   && rT   Ú#_convert_token_to_id_with_added_vocÚ5TokenizersBackend._convert_token_to_id_with_added_vocÍ  s,   € Ø—‘×+Ñ+¨EÓ2ˆØŠ=Ø×$Ñ$Ð$ØˆrW   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )rN   r   rP   N)r‰   rR   )rS   r  s   "€rT   rU   r  Ó  s   ø€ ÷ 7ñ 7©#ð 7±#¸µ*ñ 7rW   c                óJ   € V P                   P                  \        V4      4      # rY   )rÚ   rª   r‰   )rñ   r   s   &&rT   Ú_convert_id_to_tokenÚ&TokenizersBackend._convert_id_to_tokenÓ  s   € Ø�‰×*Ñ*¬3¨u«:Ó6Ð6rW   c                óF   <€ V ^8„  d   QhRS[ S[S[,          ,          RS[/# )rN   Ú
new_tokensrP   )rQ   rR   r   r‰   )rS   r  s   "€rT   rU   r  Ö  s&   ø€ ÷ 6ñ 6¡d©3±Õ+;Õ&<ð 6ÑWZñ 6rW   c                ó~   € V'       d   V P                   P                  V4      # V P                   P                  V4      # rY   )rÚ   Úadd_special_tokensrì   )rñ   r�  r)  s   &&&rT   Ú_add_tokensÚTokenizersBackend._add_tokensÖ  s/   € ßØ—?‘?×5Ñ5°jÓAÐAà�‰×)Ñ)¨*Ó5Ð5rW   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rN   r(  rP   )r  r‰   )rS   r  s   "€rT   rU   r  Ü  s   ø€ ÷ ?ñ ?©dð ?¹sñ ?rW   c                ó8   € V P                   P                  V4      # )aç  
Returns the number of added tokens when encoding a sequence with special tokens.

<Tip>

This encodes a dummy input and checks the number of added tokens, and is therefore not efficient. Do not put
this inside your training loop.

</Tip>

Args:
    pair (`bool`, *optional*, defaults to `False`):
        Whether the number of added tokens should be computed in the case of a sequence pair or a single
        sequence.

Returns:
    `int`: Number of special tokens added to sequences.
)rÚ   Únum_special_tokens_to_add)rñ   r(  s   &&rT   r¤  Ú+TokenizersBackend.num_special_tokens_to_addÜ  s   € ð& �‰×8Ñ8¸Ó>Ð>rW   c                ól   <€ V ^8„  d   QhRS[ S[S[ ,          ,          RS[RS[S[S[,          ,          /# )rN   r‹  Úskip_special_tokensrP   ©r‰   rQ   r  rR   )rS   r  s   "€rT   rU   r  ñ  s7   ø€ ÷ ñ ©©t±C­y­ð Étð Ñ`cÑfjÑknÕfoÕ`oñ rW   c                óF  € \        V\        4      '       d   V P                  P                  V4      # . pV'       d   \	        V P
                  4      M	\	        4       pV F@  p\        V4      pWT9   d   K  VP                  V P                  P                  V4      4       KB  	  V# )aœ  
Converts a single index or a sequence of indices in a token or a sequence of tokens, using the vocabulary and
added tokens.

Args:
    ids (`int` or `list[int]`):
        The token id (or token ids) to convert to tokens.
    skip_special_tokens (`bool`, *optional*, defaults to `False`):
        Whether or not to remove special tokens in the decoding.

Returns:
    `str` or `list[str]`: The decoded token(s).
)rZ   r‰   rÚ   rª   r”   Úall_special_idsr]   )rñ   r‹  r§  r  Úids_to_skipr   s   &&&   rT   Úconvert_ids_to_tokensÚ'TokenizersBackend.convert_ids_to_tokensñ  s   € ô �cœ3×ÒØ—?‘?×.Ñ.¨sÓ3Ð3Øˆç3F”c˜$×.Ñ.Ô/ÌCËEˆÛˆEÜ˜“JˆEØÔ#ÙØ�M‰M˜$Ÿ/™/×5Ñ5°eÓ<Ö=ñ	 ð
 ˆrW   c          	      óP   <€ V ^8„  d   QhRS[ RS[ R,          RS[RS[S[ ,          /# )rN   Útextr(  NrŸ  rP   )rR   r  rQ   )rS   r  s   "€rT   rU   r    s:   ø€ ÷ vñ v™Sð v©¨d­
ð vÉtð vÑjnÑorÕjsñ vrW   c           	     óN   € V P                   ! RR VRVRV/VB P                  4       # )r¯  Ú	text_pairrŸ  rc   )Ú_encode_plusr  )rñ   r¯  r(  rŸ  r˜   s   &&&&,rT   ÚtokenizeÚTokenizersBackend.tokenize  s0   € Ø× Ò Ñl dÐl°dÐlÐOaÐlÐekÑl×sÑsÓuÐurW   c                óZ   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[R,          RS[R,          /# )rN   Úpadding_strategyrÁ   r½   rÀ   rÇ   NrÅ   )r   r   r‰   rR   )rS   r  s   "€rT   rU   r    sW   ø€ ÷ I9ñ I9á)ðI9ñ 0ðI9ñ ð	I9ñ
 ðI9ñ   $�JðI9ñ ˜D•jñI9rW   c                ó   € V P                   P                  pV P                   P                  pV\        P                  8X  d    Ve   V P                   P                  4        MhRVRVRVP                  RV P                  /p	Vf   Rp
M!V	 Uu/ uF  q»VP                  VR4      bK  	  p
pW©8w  d   V P                   P                  ! R/ V	B  V\        P                  8X  d#   Ve   V P                   P                  4        R# R# V\        P                  8X  d   TMRpRTRVe   TMV P                  RV P                  RV P                   R	V P"                  R
V/p	W‰8w  d   V P                   P$                  ! R/ V	B  R# R# u upi )aí  
Define the truncation and the padding strategies for fast tokenizers (provided by HuggingFace tokenizers
library) and restore the tokenizer settings afterwards.

The provided tokenizer has no padding / truncation strategy before the managed section. If your tokenizer set a
padding / truncation strategy before, then it will be reset to no padding / truncation when exiting the managed
section.

Args:
    padding_strategy ([`~utils.PaddingStrategy`]):
        The kind of padding that will be applied to the input
    truncation_strategy ([`~tokenization_utils_base.TruncationStrategy`]):
        The kind of truncation that will be applied to the input
    max_length (`int`):
        The maximum size of a sequence.
    stride (`int`):
        The stride to use when handling overflow.
    pad_to_multiple_of (`int`, *optional*):
        If set will pad the sequence to a multiple of the provided value. This is especially useful to enable
        the use of Tensor Cores on NVIDIA hardware with compute capability `>= 7.5` (Volta).
    padding_side (`str`, *optional*):
        The side on which the model should have padding applied. Should be selected between ['right', 'left'].
        Default value is picked from the class attribute of the same name.
Nr½   rÀ   rÂ   r¿   rÆ   Úpad_idrd   rÄ   rÇ   rc   )rÚ   rx   rw   r   ÚDO_NOT_TRUNCATErÝ   r;  r¾   rt   rÜ   r   Ú
DO_NOT_PADÚ
no_paddingÚ
MAX_LENGTHrÅ   Úpad_token_idrd   rÃ   rÞ   )rñ   r¶  rÁ   r½   rÀ   rÇ   rÅ   rü   rý   ÚtargetÚcurrentr\  rÆ   s   &&&&&&&      rT   Úset_truncation_and_paddingÚ,TokenizersBackend.set_truncation_and_padding  sh  € ðB —o‘o×0Ñ0ˆØ—?‘?×*Ñ*ˆàÔ"4×"DÑ"DÔDØÒ&Ø—‘×-Ñ-Ô/øð ˜jØ˜&ØÐ/×5Ñ5Ø˜T×1Ñ1ð	ˆFð Ò"Ø‘á@FÓGÁ¸1˜kŸo™o¨a°Ó6Ò6Á�ÐGàÔ Ø—‘×1Ò1Ñ;°FÒ;àœ×9Ñ9Ô9ØÒ#Ø—‘×*Ñ*Ö,ñ $ð $4´×7QÑ7QÔ#Q‘ZÐW[ˆFà˜&Ø¨\Ò-E™\È4×K\ÑK\Ø˜$×+Ñ+Ø˜TŸ^™^Ø˜t×5Ñ5Ø$Ð&8ðˆFð Ô!Ø—‘×.Ò.Ñ8°Ô8ñ "ùò% Hs   Â
E;c          (      ó¢  <€ V ^8„  d   QhRS[ S[,          S[S[ ,          ,          S[S[,          ,          RS[ S[,          S[S[ ,          ,          S[S[,          ,          R,          RS[RS[RS[RS[R,          RS[R	S[R
S[R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[RS[RS[RS[RS[RS[R,          RS[/# )rN   r¯  r±  NrŸ  r¶  rÁ   r½   rÀ   Úis_split_into_wordsrÇ   rÅ   Úreturn_tensorsr{  r|  r}  r~  r  r€  r�  rã   rP   )	r   r   rQ   r  r   r   r‰   rR   r   )rS   r  s   "€rT   rU   r  Y  s?  ø€ ÷ Xñ XáÑ+Õ+©d±9­oÕ=ÁÑEVÕ@WÕWðXñ Ñ0Õ0±4¹	µ?ÕBÁTÑJ[ÕE\Õ\Ð_cÕcðXñ !ð	Xñ
 *ðXñ 0ðXñ ˜$•JðXñ ðXñ "ðXñ   $�JðXñ ˜D•jðXñ ˜t�ðXñ  $ d�{ðXñ  $ d�{ðXñ $(ðXñ  %)ð!Xñ" !%ð#Xñ$ ð%Xñ& ð'Xñ( # T�kð)Xñ, 
ñ-XrW   c                óü  € R  pV! V4      '       g   \        R4      hVe   V! V4      '       g   \        R4      hV'       dG   \        V\        \        34      ;'       d(    T;'       d    \        V^ ,          \        \        34      pM\        V\        \        34      pV'       d~   \        V\        4      '       d   \        R4      hVe>   \        V4      \        V4      8w  d%   \        R\        V4       R\        V4       R24      hVe   \        \        W4      4      MTpMV'       d   W3.MV.p\        V\        \        34      '       g   \        R\        V4       R24      hV P                  VVVVV	V
R7       Vf   V P                  pV P                  P                  V8w  d   VV P                  n        V P                  P                  VVVR	7      pV Uu. uF  pV P                  VVVVVVVVR
7      NK  	  pp/ pV^ ,          ^ ,           F0  pV UUUu. uF  w  ppVV,           F  pVNK  	  K  	  p pppV VV&   K2  	  V UUUu. uF  w  ppV F  pVNK  	  K  	  p!pppV'       dA   . p"\        V4       F*  w  p#w  p$pV"V#.\        V$R,          4      ,          ,          p"K,  	  V"VR&   VR,           F  p%V P!                  V%VV4       K  	  \#        VV!VR7      p&V'       g}   Vfy   V'       gq   \#        V&P%                  4        UU'u/ uF?  w  pp'T\        V'4      ^ 8”  d'   \        V'^ ,          \        4      '       d
   V'^ ,          MT'bKA  	  up'pV&P&                  4      p&V&# u upi u upppi u upppi u up'pi )c                 ó€  € \        V \        4      '       d   R # \        V \        \        34      '       Ed	   \	        V 4      ^ 8X  d   R # \        V ^ ,          \        4      '       d   R # \        V ^ ,          \        \        34      '       d³   \	        V ^ ,          4      ^ 8X  g%   \        V ^ ,          ^ ,          \        4      '       d   R # \        V ^ ,          ^ ,          \        \        34      '       dJ   \	        V ^ ,          ^ ,          4      ^ 8H  ;'       g&    \        V ^ ,          ^ ,          ^ ,          \        4      # R# R# R# )TF)rZ   rR   rQ   r[   rÙ   )r  s   &rT   Ú_is_valid_text_inputÚ<TokenizersBackend._encode_plus.<locals>._is_valid_text_inputq  sÔ   € Ü˜!œS×!Ò!ÙÜ˜A¤¤e˜}×-Ó-Ü�q“6˜Q”;ÙÜ  !¥¤c×*Ò*ÙÜ  !¥¤t¬U m×4Ò4Ü˜1˜Q�4“y A”~¬°A°aµD¸µG¼S×)AÒ)AÙ#Ü# A a¥D¨¥G¬d´E¨]×;Ò;Ü" 1 Q¥4¨¥7›|¨qÑ0×OÐO´J¸qÀ½tÀA½wÀq½zÌ3Ó4OÐOá$á árW   zêtext input must be of type `str` (single example), `list[str]` (batch or single pretokenized example) or `list[list[str]]` (batch of pretokenized examples) or `list[tuple[list[str], list[str]]]` (batch of pretokenized sequence pairs).zdwhen tokenizing batches of text, `text_pair` must be a list or tuple with the same length as `text`.zbatch length of `text`: z- does not match batch length of `text_pair`: Ú.z:batch_text_or_text_pairs has to be a list or a tuple (got Ú))r¶  rÁ   r½   rÀ   rÇ   rÅ   )rŸ  Úis_pretokenized)r+   r{  r|  r}  r~  r  r€  r�  r†  Úoverflow_to_sample_mapping)Útensor_type)rÛ   rZ   rQ   r[   rR   Ú	TypeErrorrÙ   Úzipr-   rÀ  rã   rÚ   rä   Úencode_batchr�  r}   Ú&_eventual_warn_about_too_long_sequencer   rˆ   rŽ  )(rñ   r¯  r±  rŸ  r¶  rÁ   r½   rÀ   rÃ  rÇ   rÅ   rÄ  r{  r|  r}  r~  r  r€  r�  rã   r˜   rÇ  Ú
is_batchedÚbatch_text_or_text_pairsrŽ  r+   Útokens_and_encodingsÚsanitized_tokensr°   r¢   rú   r¨   ÚstackÚsanitized_encodingsrÌ  r£   Útoksr†  Úbatched_outputr;  s(   &&&&&&&&&&&&&&&&&&&&,                   rT   r²  ÚTokenizersBackend._encode_plusY  s¹  € ò0	ñ( $ D×)Ò)ÜðWóð ð
 Ò Ñ)=¸i×)HÒ)HÜðWóð ÷ Ü# D¬4´¨-Ó8×hÐh¸T×hÐhÄjÐQUÐVWÕQXÔ[_ÔafÐZgÓFh‰Jä# D¬4´¨-Ó8ˆJçä˜)¤S×)Ò)Üðóð ð Ò$¬¨T«´c¸)³nÔ)DÜ Ø.¬s°4«y¨kð :Ü˜I›Ð' qð*óð ð FOÒEZ¤t¬C°Ó,@Ô'AÐ`dÑ$÷ ?H¨Ð(9Ñ':ÈdÈVÐ$ô Ð2´U¼D°M×BÒBÜØLÌTÐRjÓMkÐLlÐlmÐnóð ð 	×'Ñ'Ø-Ø 3Ø!ØØ1Ø%ð 	(ô 	
ð  Ò'Ø#'×#<Ñ#<Ð à�?‰?×0Ñ0Ð4HÔHØ4HˆD�O‰OÔ1ð —O‘O×0Ñ0Ø$Ø1Ø/ð 1ó 
ˆ	ñ$ &ó 
ñ &�ð ×"Ñ"Ø!Ø&;Ø&;Ø*CØ+EØ'=Ø+Øð #ö 	ñ &ð 	ð  
ð ÐØ'¨Õ*¨1×-Ð-ˆCÙ&:ÕNÑ&:™7˜4 ÀDÈÇIÀI¸q“QÁI‘QÑ&:ˆEÒNØ$)Ð˜SÓ!ñ .ñ 1EÕSÑ0D¡W Q¨ËdÈ›qÉd™qÑ0DÐÒS÷ %Ø)+Ð&Ü )Ð*>Ö ?‘�‘9�D˜!Ø*¨q¨c´C¸¸[Õ8IÓ4JÕ.JÕJÒ*ñ !@à=WÐÐ9Ñ:à)¨+×6Ð6ˆIØ×7Ñ7¸	À:ÈwÖWñ 7ô 'Ð'7Ð9LÐZhÔiˆ÷ ˜nÒ4×=VÜ*ð '5×&:Ñ&:Ô&<ôá&<™
˜˜Uð ¤c¨%£j°1¤n¼ÀEÈ!ÅHÌd×9SÒ9S˜% ž(ÐY^Ò^Ù&<òð ×(Ñ(óˆNð ÐùòW 
ùô" OùäSùó"s   Ç"M%ÈM*
ÉM1ÌAM8
c                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )rN   r  rP   )rQ   rR   )rS   r  s   "€rT   rU   r  ó  s   ø€ ÷ 
ñ 
©t±C­yð 
¹Sñ 
rW   c                óž   € V P                   P                  e&   V P                   P                  P                  V4      # RP                  V4      # )Nr<   )rs  rx  Údecoder   )rñ   r  s   &&rT   Úconvert_tokens_to_stringÚ*TokenizersBackend.convert_tokens_to_stringó  sJ   € ð ×%Ñ%×-Ñ-Ò9ð ×"Ñ"×*Ñ*×1Ñ1°&Ó9ð	
ð —‘˜&Ó!ð	
rW   c                ó`   <€ V ^8„  d   QhRS[ S[S[ ,          ,          RS[RS[R,          RS[/# )rN   Ú	token_idsr§  Úclean_up_tokenization_spacesNrP   r¨  )rS   r  s   "€rT   rU   r  ú  s?   ø€ ÷ )ñ )á™™c�•?ð)ñ "ð)ñ '+¨T¥kð	)ñ 
ñ)rW   c                ó  € VP                  R R4       \        V\        4      '       d   V.p\        V\        4      '       d
   VR,          pV P                  P                  WR7      pVe   TMV P                  pV'       d�   \        V P                  P                  4      P                  R8X  dB   V P                  '       g0   \        P                  RV P                  P                   R24       V# V P                  V4      pV# )Úuse_source_tokenizerNr†  )r§  r   z=Ignoring clean_up_tokenization_spaces=True for BPE tokenizer aE  . The clean_up_tokenization post-processing step is designed for WordPiece tokenizers and is destructive for BPE (it strips spaces before punctuation). Set clean_up_tokenization_spaces=False to suppress this warning, or set clean_up_tokenization_spaces_for_bpe_even_though_it_will_corrupt_output=True to force cleanup anyway.)rj   rZ   r‰   ri   rÚ   rÝ  râ  r-   rs  r,   r|   ÚGclean_up_tokenization_spaces_for_bpe_even_though_it_will_corrupt_outputr†   Úwarning_oncer  Úclean_up_tokenization)rñ   rá  r§  râ  r˜   r¯  s   &&&&, rT   Ú_decodeÚTokenizersBackend._decodeú  sí   € ð 	�
‰
Ð)¨4Ô0ä�i¤×%Ò%Ø"˜ˆIÜ�i¤×&Ò&Ø! +Õ.ˆIØ�‰×%Ñ% iÐ%ÓYˆð ,Ò7ñ )à×2Ñ2ð 	%÷
 (ô
 �T×+Ñ+×1Ñ1Ó2×;Ñ;¸uÔDØ×d×dÐdä×#Ñ#ðØŸ™×/Ñ/Ð0ð 1-ð-ôð ˆð ×1Ñ1°$Ó7�àˆrW   c                ó    <€ V ^8„  d   QhRS[ S[P                  ,          RS[S[ R3,          RS[R,          RS[ R,          RS[S[ R3,          /# )rN   r  Ú
file_names.Úlegacy_formatNr  rP   )rR   rk   ÚPathLiker[   r  )rS   r  s   "€rT   rU   r  %  s^   ø€ ÷ ñ á™bŸk™kÕ)ðñ ™#˜s˜(•Oðñ ˜d•{ð	ñ
 ˜t�ðñ 
‰s�Cˆx�ñrW   c                óÚ   € \        V4      p\        P                  P                  Y'       d
   VR ,           MR\        ,           4      pV P
                  P                  V4       W%3,           pV# )r  r·   )rR   rk   rl   r   ÚTOKENIZER_FILErs  Úsave)rñ   r  rë  rì  r  r"   s   &&&&& rT   Ú_save_pretrainedÚ"TokenizersBackend._save_pretrained%  s[   € ô ˜^Ó,ˆäŸ™Ÿ™Ø¶o˜_¨sÖ2È2ÔQ_Õ_ó
ˆð 	×Ñ×#Ñ# NÔ3ØÐ"3Õ3ˆ
àÐrW   c           
     óþ  € \         P                  ! V P                  P                  4       4      pVP	                  R4      pVP	                  R4      p	Rp
VR,          R,          R8X  d   / VR,          R&   . VR,          R&   MÂVR,          R,          R	8X  do   VR,          R
,          e\   VR,          R
,          pVR,          R,          V,          ^ ,          p
Ve   W¥9   d	   WZ,          p
^ VR,          R
&   V
R..VR,          R&   M?VR,          R,          R&9   d   / VR,          R&   M\        RVR,          R,           R24      hVeD   RVR,          9   d6   VR,          R,          V9   d!   WWR,          R,          ,          VR,          R&   \        P                  ! \         P                  ! V4      4      p. pV F„  pVP	                  RR4      pVP	                  RR4      pVR,          R,          R	8w  d   V'       g   KF  Ve!   VR,          V9   d   W^R,          ,          VR&   VP                  \        R'/ VB 4       K†  	  Ve   VP                  V4       VR,          R,          R8X  d-   RV9  d&   VR,          R,          e   VR,          R,          VR&   VR,          R,          R8X  d-   RV9  d&   VR,          R,          e   VR,          R,          VR&   VR,          R,          R	8X  d	   V
e   W¦R&   VR,          e°   VR,          R,          R8X  gz   VR,          R,          R8X  d†   RVR,          9   dx   \        ;QJ d*    R VR,          R,           4       F  '       g   K   RM	  RM! R VR,          R,           4       4      '       d"   \        P                  P                  4       VR&   \         VR,          R,          ,          pV! R'RVRV/VB pVP#                  WVR7       V	Een   \         P                  ! VP                  4       4      pRV	9   d»   V	R,           F­  pV	R,          V,          R,          pVe"   V Uu. uF  pVP%                  VV4      NK  	  ppVV	R,          V,          R&   V F#  pVP'                  V4      pVe   K  \        R 4      h	  V Uu. uF  pVP'                  V4      NK  	  upV	R,          V,          R!&   K¯  	  R( FS  pVV	9   g   K  V	V,          w  ppVe   VV9   d
   VV,          pVP'                  V4      pVf   \        R 4      hVV.V	V&   KU  	  V	VR&   \        P                  ! \         P                  ! V4      4      pV P(                  P+                  4       p\,        P.                   F¨  p\1        V V4      f   K  \1        V V4      pVe   VV9   d
   VV,          pV P2                  P%                  VR4      p\5        V\        4      '       d?   \        VVP6                  VP8                  VP:                  VP<                  RR"7      VV&   K£  VVV&   Kª  	  V P>                  '       d   V P>                  P+                  4       M. pVe   VP                  V4       \A        V4      ^ 8”  d   VVR#&   WÆR$&    V PB                  ! R'/ VB # u upi u upi   \D         dI   pR%\G        T4      9   d3   TP	                  R$R4       T PB                  ! R'/ TB pTTn        Tu Rp?# h Rp?ii ; i))u¾  
Trains a tokenizer on a new corpus with the same defaults (in terms of special tokens or tokenization pipeline)
as the current one.

Args:
    text_iterator (generator of `list[str]`):
        The training corpus. Should be a generator of batches of texts, for instance a list of lists of texts
        if you have everything in memory.
    vocab_size (`int`):
        The size of the vocabulary you want for your tokenizer.
    length (`int`, *optional*):
        The total number of sequences in the iterator. This is used to provide meaningful progress tracking
    new_special_tokens (list of `str` or `AddedToken`, *optional*):
        A list of new special tokens to add to the tokenizer you are training.
    special_tokens_map (`dict[str, str]`, *optional*):
        If you want to rename some of the special tokens this tokenizer uses, pass along a mapping old special
        token name to new special token name in this argument.
    kwargs (`dict[str, Any]`, *optional*):
        Additional keyword arguments passed along to the trainer from the ðŸ¤— Tokenizers library.

Returns:
    [`PreTrainedTokenizerFast`]: A new tokenizer of the same type as the original one, trained on
    `text_iterator`.

r0   r1   Nr,   r-   r   r.   r/   r   r‘   g        z;This method does not support this type of tokenizer (found z-) only BPE, Unigram, WordLevel and WordPiece.rJ   rÓ   ÚidrY  Úcontinuing_subword_prefixÚend_of_word_suffixrÔ   Ú	ByteLevelr7   Úpretokenizersc              3   ó:   "  € T F  pVR ,          R8H  x € K  	  R# 5i)r-   r÷  Nrc   )Ú.0Úpretokenizers   & rT   Ú	<genexpr>Ú<TokenizersBackend.train_new_from_iterator.<locals>.<genexpr>ž  s!   é € ð á(X˜ð ! Õ(¨KÖ7Û(Xùs   ‚TFÚinitial_alphabetr  r)  )rÆ   Útrainerr  zQAttempted to set a token in the post processor that does not exist in the mappingr‹  )Úsingle_wordÚlstripÚrstripr?  rÓ   rL   r(   z7multiple values for keyword argument 'tokenizer_object')r    r!   rc   )r–   Úsep)$rr   ÚloadsrÚ   Úto_strrj   rÛ   ro   ru   rv   r]   r   r\   ÚanyÚpre_tokenizers_fastr÷  ÚalphabetÚMODEL_TO_TRAINER_MAPPINGÚtrain_from_iteratorrt   r”  rÕ   r×   r   ÚSPECIAL_TOKENS_ATTRIBUTESr~   rê   rZ   r   r  r  r?  rL   rÙ   r  rÎ  rR   )rñ   Útext_iteratorr  rÆ   Únew_special_tokensÚspecial_tokens_mapr˜   rœ   r0   r1   rJ   r‘   r¹   r)  Úadded_tokenrÓ   rú   Útrainer_classrÿ  Útrained_tokenizer_jsonr°   r  r¤   r©   Úspecial_tokenÚspecial_token_fullrL   r¨   Únew_tokenizers   &&&&&&,                      rT   Útrain_new_from_iteratorÚ)TokenizersBackend.train_new_from_iterator6  sç  € ôD Ÿš D§O¡O×$:Ñ$:Ó$<Ó=ˆà%×)Ñ)¨.Ó9ˆà'×+Ñ+Ð,<Ó=ˆàˆ	à˜'Õ" 6Õ*¨eÔ3Ø/1ˆN˜7Õ# GÑ,Ø02ˆN˜7Õ# HÒ-Ø˜GÕ$ VÕ,°	Ô9Ø˜gÕ& xÕ0Ò<Ø'¨Õ0°Õ:�Ø*¨7Õ3°GÕ<¸VÕDÀQÕG�	Ø%Ò1°iÔ6UØ 2Õ =�IØ45�˜wÕ'¨Ñ1Ø5>ÀÐ4DÐ3E�˜wÕ'¨Ñ0øØ˜GÕ$ VÕ,Ð0JÔJØ/1ˆN˜7Õ# GÒ,äØMÈnÐ]dÕNeÐflÕNmÐMnð o>ð >óð ð Ò*Ø˜~¨gÕ6Ô6Ø˜wÕ'¨Õ4Ð8JÔJà3EÐU\ÕF]Ð^iÕFjÕ3kˆN˜7Õ# KÑ0ä!×*Ò*¬4¯:ª:°nÓ+EÓFˆ	ð ˆÛ'ˆKØ!—o‘o i°Ó6ˆGØ—‘  dÓ+ˆAØ˜gÕ& vÕ.°)Ô;ÇGÙØ!Ò-°+¸iÕ2HÐL^Ô2^Ø);È	Õ<RÕ)S�˜IÑ&Ø×!Ñ!¤*Ñ";¨{Ñ";Ö<ñ (ð Ò)Ø×!Ñ!Ð"4Ô5ð ˜7Õ# FÕ+¨uÔ4Ø+°6Ô9Ø˜wÕ'Ð(CÕDÒPà2@ÀÕ2IÐJeÕ2fˆFÐ.Ñ/à˜7Õ# FÕ+¨uÔ4Ø$¨FÔ2Ø˜wÕ'Ð(<Õ=ÒIà+9¸'Õ+BÐCWÕ+XˆFÐ'Ñ(Ø˜'Õ" 6Õ*¨iÔ7¸IÒ<QØ"+�;ÑØ˜/Õ*Ò6à˜Õ/°Õ7¸;ÔFØ! /Õ2°6Õ:¸jÔHØ# ~°oÕ'FÔFß“Cñ à(6°Õ(GÈÖ(Xó—C—C’Cñ à(6°Õ(GÈÖ(Xó÷ ò ô
 .A×-JÑ-J×-SÑ-SÓ-U�Ð)Ñ*ä0°ÀÕ1HÈÕ1PÕQˆÙÑ_¨:Ð_ÀnÐ_ÐX^Ñ_ˆØ×%Ñ% mÈGÐ%ÔTàÓ%Ü%)§Z¢Z°	×0@Ñ0@Ó0BÓ%CÐ"à >Ô1Ø)Ð*:×;Ð;�CØ+Ð,<Õ=¸cÕBÀ8ÕL�FØ)Ò5ÙTZÓ![ÑTZÈ5Ð"4×"8Ñ"8¸ÀÖ"FÑTZ˜Ð![ØFL�NÐ#3Õ4°SÕ9¸(ÑCÛ!'˜Ø#,×#8Ñ#8¸Ó#?˜Ø#Ô+Ü",Ø só#ð ñ "(ñ ouÓCuÑntÐejÀI×DYÑDYÐZ_ÖD`ÑntÑCu�NÐ#3Õ4°SÕ9¸%Ó@ñ <ó "0�Ø  NÖ2Ø-¨mÕ<‘H�E˜1Ø)Ò5¸%ÐCUÔ:UØ 2°5Õ 9˜Ø(×4Ñ4°UÓ;�HØÒ'Ü(Øoóð ð 6;¸HÐ4E�N =Ó1ñ "0ð 8FÐ"Ð#3Ñ4Ü%×.Ò.¬t¯zªzÐ:PÓ/QÓRˆIà×!Ñ!×&Ñ&Ó(ˆä,×FÔFˆEÜ�t˜UÓ#Ô/Ü '¨¨eÓ 4�Ø%Ò1°mÐGYÔ6YØ$6°}Õ$E�Mà%)×%=Ñ%=×%AÑ%AÀ%ÈÓ%NÐ"ÜÐ0´*×=Ò=ä$.Ø%Ø$6×$BÑ$BØ1×8Ñ8Ø1×8Ñ8Ø#5×#@Ñ#@Ø $ô%�F˜5“Mð %2�F˜5“Mñ% Gð* DH×C\×C\ÐC\˜t×8Ñ8×=Ñ=Ô?ÐbdÐØÒ)Ø ×'Ñ'Ð(:Ô;ÜÐ#Ó$ qÔ(Ø-AˆFÐ)Ñ*ð &/Ð!Ñ"ð	Ø—>’>Ñ+ FÑ+Ð+ùò{ "\ùò Dvøôj ô 	àHÌCÐPQËFÔRð —
‘
Ð-¨tÔ4Ø $§¢Ñ 8°Ñ 8�Ø+4�Ô(Ø$Õ$ð ûð	ús0   ÑZÒ Z$ÚZ) Ú)[<Ú4<[7Û0[<Û6[7Û7[<c
                óÌ  aa€ ^ RI o^ RIHp ^ RIHp ^ RIHpHo V! ^€R7      R VV3R ll4       pV'       g   \        4       '       d   RpVEe�   V'       g   V'       Egp   V! V4      '       Eda   V! VR	VVVR
R
VR7      pR
pVeË   \        VRR7      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  R4      pVP                  R4      pV'       d<   VP                  V4      VP                  R4      8  d   V'       d   Ve
   VR9  d   V# M/V'       d(   VP                  V4      VP                  R4      8¼  d   V# RpV'       g   V'       Egp   V! V4      '       Eda   V'       d   RV9   d   \        VRVR,          4       V	f<   \        VRR
4      '       g)   \        VRR
4       \         P#                  RV R24       V# V	RJ g   \        VRR
4      '       dæ   \        VRR4       ^ RIpVP&                  P)                  VP+                  R4      RR7      pVP,                  p\/        VVP&                  P0                  4      '       d   VVP,                  ^ &   V# \/        VVP&                  P2                  4      '       d   VP&                  P5                  R
R
R7      pVP&                  P1                  VV.4      Vn        V#   + '       g   i     EL); i)a6  
Patches mistral related tokenizers with incorrect regex if detected
    1) Local file with an associated config saved next to it
        >> Model type one of the mistral models (on older versions)
    2) Remote models on the hub from official mistral models
        >> Tags including `base_model:.*mistralai`
N)Ú	lru_cache)Úversion)r   Úhf_api)Úmaxsizec                ó0   € V ^8„  d   QhR\         R\        /# )rN   Úmodel_idrP   )rR   r  )rS   s   "rT   rU   Ú<TokenizersBackend._patch_mistral_regex.<locals>.__annotate__  s   € ÷ 		ñ 		¤cð 		¬dñ 		rW   c                 óÜ   <€  S! 4       P                  V 4      pTP                  e4   SP                  RRP	                  TP                  4      4      '       d   R# R #   \         d     R # i ; i)Fzbase_model:.*mistralair·   T)Ú
model_infor…   ÚtagsÚsearchr   )r  r,   r  Úres   & €€rT   Úis_base_mistralÚ?TokenizersBackend._patch_mistral_regex.<locals>.is_base_mistral  s_   ø€ ðÙ›×+Ñ+¨HÓ5�ð �z‰zÒ%Ø—9‘9Ð5°r·w±w¸u¿z¹zÓ7J×KÒKÙÙøô ô âðús   ƒA ÁA+Á*A+Tzconfig.jsonF)Ú	cache_dirr¤   Úlocal_files_onlyÚ%_raise_exceptions_for_missing_entriesÚ'_raise_exceptions_for_connection_errorsÚ_commit_hashr)   r*   Útransformers_versionr�   z5.0.0rÖ   z$The tokenizer you are loading from 'a  ' with an incorrect regex pattern: https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503/discussions/84#69121093e8b480e709447d5e. This will lead to incorrect tokenization. You should set the `fix_mistral_regex=True` flag when loading this tokenizer to fix this issue.zÓ[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]*[\p{Ll}\p{Lm}\p{Lo}\p{M}]+|[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]+[\p{Ll}\p{Lm}\p{Lo}\p{M}]*|\p{N}| ?[^\s\p{L}\p{N}]+[\r\n/]*|\s*[\r\n]+|\s+(?!\S)|\s+Úisolated)ÚpatternÚbehavior)rµ   Ú	use_regex)ÚmistralÚmistral3ÚvoxtralÚ	ministralÚpixtral)r#  Ú	functoolsr  Ú	packagingr  Útransformers.utils.hubr   r  r   rq   rr   rs   rt   ÚparseÚsetattrr~   r†   r‡   rÉ   Úpre_tokenizersÚSplitÚRegexrÔ   rZ   r7   Ú	Metaspacer÷  )r–   r¹   Úpretrained_model_name_or_pathr¤   r&  r'  r*  Úis_localrÕ   rÖ   r˜   r  r  r   r$  Ú_config_fileÚmistral_config_detectedÚfÚ_configr+  Útransformers_model_typerÉ   Úsplit_pretokenizerÚcurrent_pretokenizerr  r#  s   &&&&&&&&&&,             @@rT   rï   Ú&TokenizersBackend._patch_mistral_regexû  sÏ  ù€ ó* 	Ý'å%ç>á	˜3Ô	÷		ð 		ó 
 ð		÷ œ×0Ò0ØˆHà(Ó4ßŸX˜X©/Ð:W×*XÓ*Xá&Ø-ØØ#ØØ!1Ø6;Ø8=Ø)ô	ˆLð ',Ð#ØÒ'Ü˜,°×9Õ9¸QÜ"Ÿiši¨›l�G÷ :à'.§{¡{Ð3IÓ'JÐ$Ø*1¯+©+°lÓ*CÐ'÷
 (¨G¯M©MÐ:NÓ,OÐRY×R_ÑR_Ð`gÓRhÔ,hç Ø3Ò?Ø3ð ôð  )Ð(øß)¨g¯m©mÐ<PÓ.QÐU\×UbÑUbÐcjÓUkÔ.kØ$Ð$à*.Ð'ç&¯x¨x¹OÐLi×<jÓ<jçÐ#6¸+Ô#EÜ˜IÐ':¸KÐH[Õ<\Ô]ð %Ò,´W¸YÐH[Ð]b×5cÒ5cÜ˜IÐ':¸EÔBÜ—N‘NØ>Ð?\Ð>]ð ^eð eôðH Ðð? '¨$Ó.´'¸)ÐEXÐZ_×2`Ò2`Ü˜IÐ':¸DÔAÛ%à)3×)BÑ)B×)HÑ)HØ *× 0Ñ 0ð só!ð ",ð	 *Ió *Ð&ð ,5×+BÑ+BÐ(ä!Ð"6¸
×8QÑ8Q×8ZÑ8Z×[Ò[à5G˜	×/Ñ/°Ñ2ð" Ðô &Ð&:¸J×<UÑ<U×<_Ñ<_×`Ò`Ø3=×3LÑ3L×3VÑ3VØ16À%ð 4Wó 4Ð0ð
 3=×2KÑ2K×2TÑ2Tà 2Ø 4ðó3˜	Ô/ð Ð÷O :×9Ð9ús   ÂKËK#	)rß   rà   rá   rÚ   rÊ   rË   rµ   r#   )FrY   )NNFFFFT)NF)FN)NN)NNN)NNFNFNN)6r|   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!  r  r,   rÚ   Úclassmethodr±   r'   Úpropertyr  r  r$  rð   rË   rÊ   ÚsetterrA  r  rM  r.   rè   rD   Ú_added_tokens_encoderÚ_added_tokens_decoderrg  rk  ro  rs  rx  r�  r–  rš  r   r¤  r¬  r³  rÀ  r   rº  r   r¹  r²  rÞ  rè  rñ  r  rï   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r  r  s   @@rT   r%   r%   S   st  ù‡ € ñ
ð *ÐØ€EØ€Jàó`ó ð`õDa)ðF ÷ó ðð ÷ó ð÷!ò !ò
ð4 ñ6ó ð6ð ñ6ó ð6ð ×Ññ%ó ð%ð ×Ññ%ó ð%ò)ð@ ÷Gó ðG÷Að Að ÷ ó ð ð ÷nó ðnð ÷:ó ð:ð 1ÐØ0Ð÷nð n÷ð ÷Fð Fð ÷ó ðð ÷'ó ð'÷-(ò -(÷^ð ÷7ð 7÷6ò 6÷?ò ?÷*ò ÷4vò v÷I9ð I9ð\ gkØ#'Ø,;×,FÑ,FØ2D×2TÑ2TØ!%ØØ$)Ø)-Ø#'Ø&*Ø-1Ø-1Ø*/Ø+0Ø',Ø#ØØ,0÷)Xò X÷t
ð 
÷)ò )÷Vò ô"CðJ óBó ÷Bð BrW   r%   )CrK  r×   rr   rk   Úcollectionsr   Úcollections.abcr   Úshutilr   Útypingr   Útokenizers.pre_tokenizersr:  r  Úhuggingface_hubr   rÉ   r   r   r	   r‚  r
   ro   Útokenizers.decodersr   rv  Útokenizers.modelsr   r   Útokenizers.trainersr   r   r   r   r7  r   r�   r   Úintegrations.ggmlr   Úmodeling_gguf_pytorch_utilsr   Útokenization_utils_baser   r   r   r   r   r   r   Úutilsr   r   r   Ú
get_loggerr|   r†   rï  ÚSPECIAL_TOKENS_MAP_FILEÚTOKENIZER_CONFIG_FILEÚTIKTOKEN_VOCAB_FILEÚADDED_TOKENS_FILEr	  r!  r%   ÚPreTrainedTokenizerFastrc   rW   rT   Ú<module>rg     s  ðñó
 Û Û 	Ý #Ý $Ý Ý å 7Ý +ß -Ý /Ý 1Ý 6ß *ß ^Ó ^å .å 0Ý 5Ý =÷÷ ñ ÷ @Ñ ?ð 
×	Ò	˜HÓ	%€ð "€Ø3Ð Ø/Ð Ø'Ð ð (Ð à ð õ Ð ð 
ˆ:Øˆ~ØÐ!ØÐ!ð	Ð ð & ~°|ÐEXÐYÐ ñ Ð,Ó-ôjÐ/ó jó .ðjð\) ,Ò rW   