
    f jOm              	         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
R ZdZdZdZdZdZ ej        dd           G d d                      Z ej        d          	 	 ddd            Zg  eddej        d d!"           ed#d$ej        d d!"           ed%d&ej        d d!"           ed'd(ej        d d!"           ed)d*ej        d d!"           ed+d,ej        d d!"           ed-d.ej        d d!"           ed/d0ej        d d!"           ed1d2ej        d d!"           ed3d4ej        d d!"           ed5d6ej        dd7"           ed8d9ej        dd:"           ed;d<ej        dd="           ed>d?ej        dd:"           ed@dAej        dd="           edBdCej        dd7"           edDdEej        dd7"           edFdGej        dd:"           edHdIej        dd:"           edJdKej        dd:"           edLdMej        dd="           edNdOej        dd:"           edPdQej        d dR"           edSdTej        d g edUR "           edVdWej        d e"           edXdYej        d e"           edZd[ej        d d\"           ed]d^ej        d d_"           ed`daej        d db"           edcddej        d e"           ededfej        d e"           edgdhej        d di"           edjdkej        d dl"           edmdnej        d do"           edpdqej        d dR"           edrdsej        d e"           edtduej        d e"           edvdwej        d dx"           edydzej        d e"           ed{d|ej        d e"           ed}d~ej        d e"           eddej        d d\"           eddej        d db"           eddej        d d_"           eddej        d d"           eddej        d e"           eddej        d d"           eddej        d e"           eddej        d d"           eddej        dd="           eddej        d e"           eddej        d d\"           eddej        d d"           eddej        d e"           eddej        d e"           eddej        d d_"           eddej        d e"           eddej        d d"           eddej        d do"           eddej        d d"           eddej        d d"           eddej        d d"           eddej        d e"           eddej        d d"           eddej        d d\"           eddej        d e"           eddej        d e"           eddej        d e"           eddej        d e"           eddej        d db"           eddej        d d_"           eddej        d e"           eddej        d dǬ"           eddej        d d"           eddej        d db"           eddej        d dά"           eddej        d dѬ"           eddej        d dԬ"           eddej        d e"           eddej        d d\"           eddej        d e"           eddej        d db"           eddej        d e"           eddej        d d\"           eddej        d d_"           eddej        d d"          R Z  e	d e D                       Z!de"d<   ej#        dd            Z$ddZ%ddZ&dS )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                  F    e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   dS )EncodingInfozMetadata for a single encoding.EncodingNamenameztuple[str, ...]aliasesr   eraboolis_multibyte	languagesN)__name__
__module____qualname____doc____annotations__     dC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\chardet/registry.pyr   r      sT         ))r   r      )maxsizer   r   include_encodingsfrozenset[str] | Noneexclude_encodingsreturntuple[EncodingInfo, ...]c                      fdt                                           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  0   K   | ]}|j         z  |V  d S N)r   ).0encr   s     r   	<genexpr>z!get_candidates.<locals>.<genexpr>   s.      DD#cgmD#DDDDDDr   Nc              3  .   K   | ]}|j         v |V  d S r   r   )r   r   r   s     r   r   z!get_candidates.<locals>.<genexpr>   s0      QQc38?P3PQcQQQQQQr   c              3  .   K   | ]}|j         v|V  d S r   r   )r   r   r   s     r   r   z!get_candidates.<locals>.<genexpr>   s0      UUc38CT3TUcUUUUUUr   )REGISTRYvaluestuple)r   r   r   
candidatess   ``` r   get_candidatesr      s}     EDDD!2!2DDDJ RQQQQZQQQ
 VUUUUZUU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   c                    i | ]
}|j         |S r   r   )r   es     r   
<dictcomp>rd    s    ***1QVQ***r   z#MappingProxyType[str, EncodingInfo]r   r   strEncodingName | Nonec                x   |                                  }t                                          D ]C}|j        |k    r	|j        c S |j        D ]%}|                                 |k    r|j        c c S &D	 t          j        |           j        }n# t          t          f$ r Y dS w xY w||k    rt          |          S dS )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   rm  rm    s     jjllG"" " ":  	:] 	" 	"E{{}}' "z!!!!!"	"]4((-

$   ttW +z***4s   3B B"!B"
param_namec                V    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.
    NzUnknown encoding z in )rm  rl  )r   rr  	canonicalmsgs       r   _validate_encodingrv    s@      %%I :$::j::oor   	encodingsIterable[str] | Nonec                r    | dS 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  8   K   | ]}t          |          V  d S r   )rv  )r   r   rr  s     r   r   z&normalize_encodings.<locals>.<genexpr>  s.      RR)$
;;RRRRRRr   zG must not be empty; omit the argument or pass None to disable filtering)	frozensetrl  )rw  rr  resultru  s    `  r   normalize_encodingsr}    s[      tRRRR	RRRRRF dddooMr   )NN)r   r   r   r   r   r   r   r   )r   re  r   rf  )r   re  rr  re  r   re  )rw  rx  rr  re  r   r   )'r   
__future__r   ri  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   cacherm  rv  r}  r   r   r   <module>r     sZ   B B B " " " " " "          $ $ $ $ $ $ " " " " " "       % % % % % %UWt&  $0	88 

 d$///       0/ S!!! 04/3    "!0cL"  c L
 "  c0 L*"  1c> L."  ?cL L6"  McZ L6"  [ch L."  icv L6"  wcD L6"  EcR L+'  Scb L

 "  ccD L
 "  Ec` L
 
 ")  acL L	
 "  Mcl L."  mcz L 
" "9  {cv L$'  wcD L
 "  Ec^ L4"  _cl L$"  mcz L.'  {cH L
 "!  Icn L3"  oc| LG"&K&&&  }cJ LG"  KcX LG"  Ycf LG"  gct LG"  ucB	 LG"  C	cP	 LG"  Q	c^	 LG"  _	cl	 LG"  m	c|	 L="  }	cJ
 L9"  K
cZ
 L
 "  [
cx
 LL"  y
cF LL"  GcT LL"$  Ucb LL"  ccp LC"  qc~ L 	
 "'  ch L
 "  icB L 
 "+  Ccp LL"  qc~ LO"  cL L
 "  Mch L

 "*!  icL L	
 "  Mcl L	
 "6  mcN L"  Oc^ L
 "  _cx L5"  ycF L;"  GcT LL"#  Ucb L
 "  cc@ L;"  AcP L'  Qc^ L'  _cl L'  mcz L'  {cH L@'  IcV L-'  Wcd L;'  ect LOT  ucB LO  CcP LO  Qc^ LO  _cl LO  mcz LO  {cH LO  IcV LO  Wcd LO  ecr LO  sc@ LO  AcN LO  Oc\ LO  ]cj LO  kcx LO  ycF LO  GcT LO  Ucd L
 !  ec@ L!  AcN L!  Oc\ L!  ]cj L!  kcx L!  yc c J 1A0@**)***1 1    
    2        r   