
    3jDi              	      4   U d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ed   Zd	Zg ed
ZdZdZdZdZdZ ej,                  dd       G d d             Z ej0                  d      	 	 d	 	 	 	 	 	 	 dd       Zg  eddej4                  dd       eddej4                  dd       eddej4                  dd       ed d!ej4                  dd       ed"d#ej4                  dd       ed$d%ej4                  dd       ed&d'ej4                  dd       ed(d)ej4                  dd       ed*d+ej4                  dd       ed,d-ej6                  dd       ed.d/ej4                  dd0       ed1d2ej4                  dd3       ed4d5ej4                  dd6       ed7d8ej4                  dd3       ed9d:ej4                  dd6       ed;d<ej4                  dd0       ed=d>ej6                  dd0       ed?d@ej4                  dd3       edAdBej4                  dd3       edCdDej4                  dd3       edEdFej6                  dd6       edGdHej4                  dd3       edIdJej4                  ddK       edLdMej4                  dg edN       edOdPej4                  de       edQdRej4                  de       edSdTej4                  ddU       edVdWej4                  ddX       edYdZej4                  dd[       ed\d]ej4                  de       ed^d_ej4                  de       ed`daej4                  ddb       edcddej4                  dde       edfdgej4                  ddh       edidjej4                  ddK       edkdlej8                  de       edmdnej8                  de       edodpej8                  ddq       edrdsej8                  de       edtduej8                  de       edvdwej8                  de       edxdyej8                  ddU       edzd{ej8                  dd[       ed|d}ej8                  ddX       ed~dej8                  dd       eddej8                  de       eddej8                  dd       eddej8                  de       eddej8                  dd       eddej8                  dd6       eddej:                  de       eddej:                  ddU       eddej:                  dd       eddej:                  de       eddej:                  de       eddej:                  ddX       eddej6                  de       eddej6                  dd       eddej6                  ddh       eddej6                  dd       eddej6                  dd       eddej6                  dd       eddej6                  de       eddej<                  dd       eddej<                  ddU       eddej<                  de       eddej<                  de       eddej<                  de       eddej<                  de       eddej<                  dd[       eddej<                  ddX       eddej<                  de       eddej<                  dd       eddej<                  dd       eddej<                  dd[       eddej<                  ddǬ       eddej<                  ddʬ       eddej<                  ddͬ       eddej<                  de       eddej<                  ddU       eddej>                  de       eddej>                  dd[       eddej>                  de       eddej>                  ddU       eddej>                  ddX       eddej>                  ddެ      Z  e	e D  ci c]  } | jB                  |  c}       Z"de#d<   ejH                  dd       Z%ddZ&	 	 	 	 	 	 ddZ'yc c} w )z<Encoding registry with metadata for all supported encodings.    )annotationsN)Iterable)MappingProxyType)Literal)EncodingEra)Vascii	big5hkscscp1006cp1026cp1125cp1140cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp273cp424cp437cp500cp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp864cp865cp866cp869cp874cp875cp932cp949euc_jis_2004euc_krgb18030	hp-roman8hziso2022_jp_2iso2022_jp_2004iso2022_jp_ext
iso2022_kr	iso8859-1
iso8859-10
iso8859-13
iso8859-14
iso8859-15
iso8859-16	iso8859-2	iso8859-3	iso8859-4	iso8859-5	iso8859-6	iso8859-7	iso8859-8	iso8859-9johabkoi8-rkoi8-tkoi8-ukz1048mac-cyrillic	mac-greekmac-iceland
mac-latin2	mac-romanmac-turkishptcp154shift_jis_2004tis-620utf-16	utf-16-be	utf-16-leutf-32	utf-32-be	utf-32-leutf-7utf-8	utf-8-sig)brcydadeenesfifrgaidisitmsnlnoptsvtr)rubguksrmkbe)plcshuhrrosksl)rv   rw   rx   ry   r{   r|   )etltlv)arfaT)frozenslotsc                  D    e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   y)EncodingInfozMetadata for a single encoding.EncodingNamenameztuple[str, ...]aliasesr   eraboolis_multibyte	languagesN)__name__
__module____qualname____doc____annotations__     =/DATA/.local/lib/python3.12/site-packages/chardet/registry.pyr   r      s#    )
	r   r      )maxsizec                      fdt         j                         D        }fd|D        }fd|D        }t        |      S )a  Return registry entries matching the given filters.

    Filters are applied in order: era, include, exclude.

    :param era: Bit flags specifying which encoding eras to include.
    :param include_encodings: If not ``None``, only return encodings in this set.
    :param exclude_encodings: If not ``None``, exclude encodings in this set.
    :returns: A tuple of matching :class:`EncodingInfo` entries.
    c              3  B   K   | ]  }|j                   z  s|  y wN)r   ).0encr   s     r   	<genexpr>z!get_candidates.<locals>.<genexpr>   s     D!2#cggm#!2s   c              3  @   K   | ]  }|j                   v s|  y wr   r   )r   r   include_encodingss     r   r   z!get_candidates.<locals>.<genexpr>   s     QZc388?P3PcZ   c              3  @   K   | ]  }|j                   vs|  y wr   r   )r   r   exclude_encodingss     r   r   z!get_candidates.<locals>.<genexpr>   s     UZc388CT3TcZr   )REGISTRYvaluestuple)r   r   r   
candidatess   ``` r   get_candidatesr      sB     E!2DJ$QZQ
$UZU
r   r   )zus-asciiFr   )r   r   r   r   r   r\   )r\   utf8csutf8zunicode-1-1-utf-8unicode11utf8unicode20utf8zx-unicode20utf8r]   )z	UTF-8-SIGz	utf-8-bomrU   )zUTF-16utf16csutf16rV   )z	UTF-16-BEzutf-16be	csutf16berW   )z	UTF-16-LEzutf-16le	csutf16lerX   )zUTF-32utf32csutf32rY   )z	UTF-32-BEzutf-32be	csutf32berZ   )z	UTF-32-LEzutf-32le	csutf32ler[   )zUTF-7utf7csutf7r	   )	z
Big5-HKSCS	Big5HKSCSbig5zbig5-twcsbig5cp950zcn-big5zx-x-big5csbig5hkscs)zhr.   )CP932ms932mskanjizms-kanjicswindows31jzwindows-31j)jar/   )
CP949ms949uhczwindows-949csksc56011987z
iso-ir-149zks_c_5601-1987zks_c_5601-1989ksc5601ksc_5601)kor0   )zEUC-JIS-2004zeuc-jpeucjpujiszu-jiszeuc-jisx0213cseucpkdfmtjapanesezx-euc-jpr1   )zEUC-KReuckrcseuckrr2   )GB18030zgb-18030gb2312gbkcsgb2312gb_2312z
gb_2312-80zx-gbkcsiso58gb231280z	iso-ir-58	csgb18030csgbkcp936ms936zwindows-936r4   )z
HZ-GB-2312r4   r5   )zISO-2022-JP-2ziso-2022-jpcsiso2022jpziso2022-jp-1csiso2022jp2r6   )zISO-2022-JP-2004ziso2022-jp-3r7   )zISO-2022-JP-EXTr8   )zISO-2022-KRcsiso2022krrS   )
zShift-JIS-2004Shift_JIS_2004	shift_jissjisshiftjiss_jiszshift-jisx0213zx-sjis
csshiftjisms_kanjir,   )CP874zwindows-874zdos-874)thr   )zWindows-1250r   zx-cp1250cswindows1250rs   r   )zWindows-1251r   zx-cp1251cswindows1251r   )zWindows-1252r   zx-cp1252cswindows1252r   )zWindows-1253r   zx-cp1253cswindows1253)elr   )zWindows-1254r   zx-cp1254cswindows1254)ro   r   )zWindows-1255r   zx-cp1255cswindows1255)her   )zWindows-1256r   zx-cp1256cswindows1256r   )zWindows-1257r   zx-cp1257cswindows1257r   )zWindows-1258r   zx-cp1258cswindows1258)virH   )zKOI8-Rkoi8rkoikoi8cskoi8r)rp   rJ   )zKOI8-Ukoi8uzkoi8-rucskoi8u)rr   rT   )zTIS-620tis620ziso-8859-11z
iso8859-11	iso885911cstis620r9   )z
ISO-8859-1zlatin-1latin1r9   iso88591r?   )z
ISO-8859-2zlatin-2latin2r?   iso88592r@   )z
ISO-8859-3zlatin-3latin3r@   iso88593)eomtro   rA   )z
ISO-8859-4zlatin-4latin4rA   iso88594rB   )z
ISO-8859-5rB   cyrilliciso88595rC   )z
ISO-8859-6rC   arabiciso88596ziso-8859-6-eziso-8859-6-icsiso88596ecsiso88596irD   )z
ISO-8859-7rD   greekiso88597sun_eu_greekrE   )
z
ISO-8859-8rE   hebrewiso88598ziso-8859-8-eziso-8859-8-icsiso88598ecsiso88598ivisuallogicalrF   )z
ISO-8859-9zlatin-5latin5rF   iso88599r:   )zISO-8859-10zlatin-6latin6r:   	iso885910)rh   rd   r;   )zISO-8859-13zlatin-7latin7r;   	iso885913csiso885913r<   )	zISO-8859-14zlatin-8latin8r<   	iso885914csiso885914z
iso-ir-199z
iso-celticl8)r_   rf   r^   gdr=   )zISO-8859-15zlatin-9latin9r=   	iso885915csisolatin9csiso885915l9r>   )zISO-8859-16zlatin-10latin10r>   	iso885916csiso885916z
iso-ir-226l10)rz   rv   ry   rx   r{   r|   rG   )JohabrL   )zMac-CyrillicMacCyrillicmaccyrilliczx-mac-cyrilliczx-mac-ukrainianrM   )z	Mac-GreekMacGreekmacgreekrN   )zMac-Iceland
MacIceland
maciceland)rh   rO   )z
Mac-Latin2	MacLatin2	maclatin2maccentraleuroperP   )z	Mac-RomanMacRomanmacroman	macintoshcsmacintoshmaczx-mac-romanrQ   )zMac-Turkish
MacTurkish
macturkishr   )CP720r
   )CP1006)urr   )CP1125rI   )zKOI8-T)tgrK   )zKZ-1048rK   zstrk1048-2002rk1048)kkrR   )PTCP154pt154cp154r3   )z	HP-Roman8roman8r8
csHPRoman8r   )CP437)rb   re   ra   rc   rm   ri   rk   r`   rn   rd   rf   r   )CP737r   )CP775r   )CP850r   )CP852r    )CP855r!   )CP856r"   )CP857r#   )CP858r$   )CP860)rm   r%   )CP861r&   )CP862r'   )CP863)re   r(   )CP864)r   r)   )CP865)r`   rl   r*   )CP866r+   )CP869r   )CP1140cp037cp01140ibm01140ibm1140
csibm01140r   )CP424r   )CP500r-   )CP875r   )CP1026r   )CP273)ra   z#MappingProxyType[str, EncodingInfo]r   c                   | j                         }t        j                         D ]S  }|j                  |k(  r|j                  c S |j                  D ]%  }|j                         |k(  s|j                  c c S  U 	 t        j                  |       j                  }||k7  rt        |      S y# t        t        f$ r Y yw xY w)zConvert an encoding name string to the canonical EncodingName.

    Handles arbitrary casing, aliases, and Python codec names.

    :param name: Any encoding name string.
    :returns: The canonical :data:`EncodingName`, or ``None`` if unknown.
    N)
lowerr   r   r   r   codecslookupLookupError
ValueErrorlookup_encoding)r   loweredentryalias
codec_names        r   rf  rf    s     jjlG":: ::]]E{{}'zz! # #]]4(--
 Wz**	 $ s   <B, ,B>=B>c                F    t        |       }|d| d| }t        |      |S )a  Validate and normalize a single encoding name.

    :param name: The encoding name to validate.
    :param param_name: Parameter name for error messages.
    :returns: The canonical encoding name.
    :raises ValueError: If the encoding name is unknown.
    zUnknown encoding z in )rf  re  )r   
param_name	canonicalmsgs       r   _validate_encodingro    s6      %I!$j\:or   c                Z    | yt        fd| D              }|s d}t        |      |S )a8  Normalize an iterable of encoding names to canonical forms.

    :param encodings: Encoding names to normalize, or ``None``.
    :param param_name: Parameter name for error messages.
    :returns: A frozenset of canonical encoding names, or ``None``.
    :raises ValueError: If any encoding name is unknown.
    Nc              3  6   K   | ]  }t        |        y wr   )ro  )r   r   rl  s     r   r   z&normalize_encodings.<locals>.<genexpr>  s     R	)$
;	s   zG must not be empty; omit the argument or pass None to disable filtering)	frozensetre  )	encodingsrl  resultrn  s    `  r   normalize_encodingsru    s=     R	RRFcdoMr   )NN)r   r   r   frozenset[str] | Noner   rv  returnztuple[EncodingInfo, ...])r   strrw  zEncodingName | None)r   rx  rl  rx  rw  rx  )rs  zIterable[str] | Nonerl  rx  rw  rv  )(r   
__future__r   rb  dataclasses	functoolscollections.abcr   typesr   typingr   chardet.enumsr   r   _WESTERN_WESTERN_TR	_CYRILLIC_CENTRAL_EU_CENTRAL_EU_NO_RO_BALTIC_ARABIC	dataclassr   	lru_cacher   
MODERN_WEBLEGACY_REGIONAL
LEGACY_ISO
LEGACY_MACDOS	MAINFRAME_REGISTRY_ENTRIESr   r   r   cacherf  ro  ru  )es   0r   <module>r     s   B "    $ "  %UWt&  $0	88 

 d$/  0 S! 04/3	, - 	 "0c""c 
 ""c0 *""1c> .""?cL 6""McZ 6""[ch .""icv 6""wcD 6""EcR +''Scb 

 ""ccD 
 ""Ec` 
 
 "")acL 	
 ""Mcl .""mcz  
" ""9{cv $''wcD 
 ""Ec^ 4""_cl $""mcz .''{cH 
 ""!Icn 3""oc| G""&K&&}cJ G""KcX G""Ycf G""gct G""ucB	 G""C	cP	 G""Q	c^	 G""_	cl	 G""m	c|	 =""}	cJ
 9""K
cZ
 
 ""[
cx
 L""y
cF L""GcT L""$Ucb L""ccp C""qc~  	
 ""'ch 
 ""icB  
 ""+Ccp L""qc~ O""cL 
 ""Mch 

 ""*!icL 	
 ""Mcl 	
 ""6mcN ""Oc^ 
 ""_cx 5""ycF ;""GcT L""#Ucb 
 ""cc@ ;""AcP ''Qc^ ''_cl ''mcz ''{cH @''IcV -''Wcd ;''ect OOTucB OOCcP OOQc^ OO_cl OOmcz OO{cH OOIcV OOWcd OOecr OOsc@ OOAcN OOOc\ OO]cj OOkcx OOycF OOGcT OOUcd 
 !!ec@ !!AcN !!Oc\ !!]cj !!kcx !!yc J 1A)*)1QVVQY)*1
- 
  2# [ +s   b