Ë
    	V.j 1  ã                  óš  — U 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 d dlmZ d dlmZ d d	lmZ d
dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$  ee¬«      d2d„«       Z% ee¬«      d3d„«       Z& ee¬«      d4d„«       Z' e(d„  ejR                  «       D «       «      Z*de+d<   e*D � cg c]  } | d    ‘Œ	 c} Z,de+d<    ee¬«      d5d„«       Z- ee¬«      d3d„«       Z. ee¬«      d3d„«       Z/ ee¬«      d3d„«       Z0 ee¬«      d3d„«       Z1 ee¬«      d3d„«       Z2 ee¬«      d3d„«       Z3 ee¬«      d3d„«       Z4 ee¬«      d3d„«       Z5 ee¬«      d3d„«       Z6 ee¬«      d3d„«       Z7 ee¬«      d3d „«       Z8 ee¬«      d3d!„«       Z9 ee¬«      d3d"„«       Z: ee¬«      d3d#„«       Z; e e<e«      ¬«      d6d$„«       Z= ee¬«      d3d%„«       Z>	 d7	 	 	 	 	 d8d&„Z? ed'¬«      d9d(„«       Z@d:d)„ZAd;d*„ZBd<d=d+„ZCd>d,„ZDd?d-„ZEd.ejŒ                  d/f	 	 	 	 	 	 	 d@d0„ZG	 dA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dBd1„ZHyc c} w )Cé    )ÚannotationsN)Úbisect_right)ÚIncrementalDecoder)Úaliases)Ú	lru_cache)Úfindall)Ú	Generator)ÚMultibyteIncrementalDecoderé   )ÚENCODING_MARKSÚIANA_SUPPORTED_SIMILARÚRE_POSSIBLE_ENCODING_INDICATIONÚUNICODE_RANGES_COMBINEDÚUNICODE_SECONDARY_RANGE_KEYWORDÚUTF8_MAXIMAL_ALLOCATIONÚCOMMON_CJK_CHARACTERSÚ_LATINÚ_CJKÚ_HANGULÚ	_KATAKANAÚ	_HIRAGANAÚ_THAIÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ_ACCENT_KEYWORDSÚ_ACCENTUATED)Úmaxsizec                óZ  — 	 t        j                  | «      }d}d|v r	|t        z  }d|v r	|t        z  }d|v r	|t
        z  }d|v r	|t        z  }d|v r	|t        z  }d|v r	|t        z  }d|v r|t        z  }d	|v r	|t        z  }t        D ]  }||v sŒ|t        z  } |S  |S # t        $ r Y yw xY w)
zRCompute all name-based classification flags with a single unicodedata.name() call.r   ÚLATINÚCJKÚHANGULÚKATAKANAÚHIRAGANAÚTHAIÚARABICzISOLATED FORM)ÚunicodedataÚnameÚ
ValueErrorr   r   r   r   r   r   r   r   r   r   )Ú	characterÚdescÚflagsÚkws       úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\charset_normalizer/utils.pyÚ_character_flagsr.   &   sç   € ðÜ×$Ñ$ YÓ/ˆð €Eà�$�Ø”‰ˆØ��}Ø”‰ˆØ�4ÑØ”ÑˆØ�TÑØ”ÑˆØ�TÑØ”ÑˆØ��~Ø”‰ˆØ�4ÑØ”ÑˆØ˜dÑ"ØÔ*Ñ*ˆEçˆØ�Š:Ø”\Ñ!ˆEØà€Lð ð
 €Løô7 ò Ùðús   ‚B Â	B*Â)B*c                ó8   — t        t        | «      t        z  «      S ©N)Úboolr.   r   ©r)   s    r-   Úis_accentuatedr3   I   s   € äÔ  Ó+¬lÑ:Ó;Ð;ó    c                ó†   — t        j                  | «      }|s| S |j                  d«      }t        t	        |d   d«      «      S )NÚ r   é   )r&   ÚdecompositionÚsplitÚchrÚint)r)   Ú
decomposedÚcodess      r-   Úremove_accentr>   N   sA   € ä!×/Ñ/°	Ó:€JÙØÐà!×'Ñ'¨Ó,€EäŒs�5˜‘8˜RÓ Ó!Ð!r4   c              #  óT   K  — | ]   \  }}|j                   |j                  |f–— Œ" y ­wr0   )ÚstartÚstop)Ú.0r'   Ú	ord_ranges      r-   Ú	<genexpr>rD   [   s+   è ø€ ð <á:‰ˆˆið ‡_�_�i—n‘n dÔ+Ù:ùs   ‚&(zlist[tuple[int, int, str]]Ú_UNICODE_RANGES_SORTEDz	list[int]Ú_UNICODE_RANGE_STARTSc                ór   — t        | «      }t        t        |«      dz
  }|dk\  rt        |   \  }}}||k  r|S y)zK
    Retrieve the Unicode range official name from a single character.
    r   r   N)Úordr   rF   rE   )r)   Úcharacter_ordÚidxr@   rA   r'   s         r-   Úunicode_rangerK   b   sI   € ô
 ˜Y›€Mô Ô,¨mÓ
<¸qÑ
@€CØ
ˆa‚xÜ2°3Ñ7Ñˆˆt�TØ˜4ÒØˆKàr4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_latinrM   s   s   € äÔ  Ó+¬fÑ4Ó5Ð5r4   c                óZ   — t        j                  | «      }d|v ryt        | «      }|€yd|v S )NÚPTFÚPunctuation©r&   ÚcategoryrK   ©r)   Úcharacter_categoryÚcharacter_ranges      r-   Úis_punctuationrV   x   s=   € ä)×2Ñ2°9Ó=Ðà
Ð Ñ Øä"/°	Ó":€OàÐØà˜OÐ+Ð+r4   c                óp   — t        j                  | «      }d|v sd|v ryt        | «      }|€yd|v xr |dk7  S )NÚSÚNTFÚFormsÚLorQ   rS   s      r-   Ú	is_symbolr\   ‡   sP   € ä)×2Ñ2°9Ó=Ðà
Ð Ñ  CÐ+=Ñ$=Øä"/°	Ó":€OàÐØà�oÐ%ÒDÐ*<ÀÑ*DÐDr4   c                ó2   — t        | «      }|€yd|v xs d|v S )NFÚ	EmoticonsÚPictographs)rK   )r)   rU   s     r-   Úis_emoticonr`   –   s*   € ä"/°	Ó":€OàÐØà˜/Ð)ÒM¨]¸oÐ-MÐMr4   c                ój   — | j                  «       s| dv ryt        j                  | «      }d|v xs |dv S )N>   õ   ï½œÚ+Ú<Ú>TÚZ>   ÚPcÚPdÚPo)Úisspacer&   rR   )r)   rT   s     r-   Úis_separatorrk       sB   € à×ÑÔ˜iÐ+AÑAØä)×2Ñ2°9Ó=ÐàÐ$Ð$ÒPÐ(:Ð>PÐ(PÐPr4   c                óD   — | j                  «       | j                  «       k7  S r0   )ÚislowerÚisupperr2   s    r-   Úis_case_variablero   ª   s   € à×ÑÓ )×"3Ñ"3Ó"5Ñ5Ð5r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_cjkrq   ¯   s   € äÔ  Ó+¬dÑ2Ó3Ð3r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_hiraganars   ´   ó   € äÔ  Ó+¬iÑ7Ó8Ð8r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_katakanarv   ¹   rt   r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Ú	is_hangulrx   ¾   ó   € äÔ  Ó+¬gÑ5Ó6Ð6r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_thair{   Ã   s   € äÔ  Ó+¬eÑ3Ó4Ð4r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Ú	is_arabicr}   È   ry   r4   c                ó8   — t        t        | «      t        z  «      S r0   )r1   r.   r   r2   s    r-   Úis_arabic_isolated_formr   Í   s   € äÔ  Ó+Ô.CÑCÓDÐDr4   c                ó   — | t         vS r0   )r   r2   s    r-   Úis_cjk_uncommonr�   Ò   s   € àÔ1Ð1Ð1r4   c                ó4   ‡ — t        ˆ fd„t        D «       «      S )Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr0   © )rB   ÚkeywordÚ
range_names     €r-   rD   z-is_unicode_range_secondary.<locals>.<genexpr>Ù   s   øè ø€ ÐTÑ4S¨ˆw˜*Ô$Ñ4Sùs   ƒ)Úanyr   )r†   s   `r-   Úis_unicode_range_secondaryrˆ   ×   s   ø€ äÓTÕ4SÓTÓTÐTr4   c                ój   — | j                  «       du xr  | j                  «       du xr | dk7  xr | dk7  S )NFÚu   ï»¿)rj   Úisprintabler2   s    r-   Úis_unprintablerŒ   Ü   sL   € ð 	×ÑÓ˜uÐ$ò 	"Ø×!Ñ!Ó# uÐ,ò	"à˜Ñò	"ð ˜Ñ!ð	r4   c           	     ó~  — t        | t        t        f«      st        ‚t	        | «      }t        t        | dt        ||«       j                  dd¬«      «      }t	        |«      dk(  ry|D ]T  }|j                  «       j                  dd«      }t        j                  «       D ]  \  }}||k(  r|c c S ||k(  sŒ|c c S  ŒV y)zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    NÚasciiÚignore©Úerrorsr   Ú-Ú_)Ú
isinstanceÚbytesÚ	bytearrayÚ	TypeErrorÚlenr   r   ÚminÚdecodeÚlowerÚreplacer   Úitems)ÚsequenceÚsearch_zoneÚseq_lenÚresultsÚspecified_encodingÚencoding_aliasÚencoding_ianas          r-   Úany_specified_encodingr¥   ç   sÂ   € ô �h¤¬	Ð 2Ô3Üˆä�x“=€Gä Ü'ØÐ,”3�w Ó,Ð-×4Ñ4°WÀXÐ4ÓNó€Gô
 ˆ7ƒ|�qÒØã%ÐØ/×5Ñ5Ó7×?Ñ?ÀÀSÓIÐô
 .5¯]©]®_Ñ)ˆN˜MØÐ!3Ò3Ø$Ô$ØÐ 2Ó2Ø$Ô$ñ	 .=ð &ð r4   é€   c                ón   — | dv xs0 t        t        j                  d| › �«      j                  t        «      S )zQ
    Verify is a specific encoding is a multi byte one based on it IANA name
    >	   Úutf_7Úutf_8Úutf_16Úutf_32Ú	utf_16_beÚ	utf_16_leÚ	utf_32_beÚ	utf_32_leÚ	utf_8_sigú
encodings.)Ú
issubclassÚ	importlibÚimport_moduler   r
   )r'   s    r-   Úis_multi_byte_encodingrµ   	  sC   € ð
 ð 
ð 
ò ô 
Ü×Ñ *¨T¨FÐ 3Ó4×GÑGÜ#ó
ðr4   c                ó’   — t         D ]>  }t         |   }t        |t        «      r|g}|D ]  }| j                  |«      sŒ||fc c S  Œ@ y)z9
    Identify and extract SIG/BOM in given sequence.
    )Nr4   )r   r”   r•   Ú
startswith)rž   Úiana_encodingÚmarksÚmarks       r-   Úidentify_sig_or_bomr»     sQ   € ÷
 (ˆÜ%3°MÑ%Bˆä�eœUÔ#Ø�GˆEãˆDØ×"Ñ" 4Õ(Ø$ dÐ*Ô*ñ ð (ð r4   c                ó
   — | dvS )N>   rª   r«   r„   )r¸   s    r-   Úshould_strip_sig_or_bomr½   0  s   € ØÐ 4Ð4Ð4r4   c                ó´   — | j                  «       j                  dd«      } t        j                  «       D ]  \  }}| ||fv sŒ|c S  |rt	        d| › d�«      ‚| S )zIReturns the Python normalized encoding name (Not the IANA official name).r’   r“   zUnable to retrieve IANA for 'Ú')r›   rœ   r   r�   r(   )Úcp_nameÚstrictr£   r¤   s       r-   Ú	iana_namerÂ   4  sc   € à�m‰m‹o×%Ñ% c¨3Ó/€Gô
 *1¯©®Ñ%ˆ˜Ø�~ }Ð5Ò5Ø Ò ð *9ñ ÜÐ8¸¸	ÀÐCÓDÐDà€Nr4   c                ót  — t        | «      st        |«      ryt        j                  d| › �«      j                  }t        j                  d|› �«      j                  } |d¬«      } |d¬«      }d}t	        d«      D ]7  }t        |g«      }|j                  |«      |j                  |«      k(  sŒ3|dz  }Œ9 |dz  S )Ng        r±   r�   r�   r   é   r   )rµ   r³   r´   r   Úranger•   rš   )	Úiana_name_aÚiana_name_bÚ	decoder_aÚ	decoder_bÚid_aÚid_bÚcharacter_match_countÚiÚto_be_decodeds	            r-   Úcp_similarityrÏ   E  s´   € Ü˜kÔ*Ô.DÀ[Ô.QØä×'Ñ'¨*°[°MÐ(BÓC×VÑV€IÜ×'Ñ'¨*°[°MÐ(BÓC×VÑV€Iá(°Ô9€DÙ(°Ô9€Dà!"Ðä�3ŽZˆÜ$ a S›zˆØ�;‰;�}Ó%¨¯©°]Ó)CÓCØ! QÑ&Ñ!ð ð
 ! 3Ñ&Ð&r4   c                ó,   — | t         v xr |t         |    v S )zŽ
    Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using
    the function cp_similarity.
    )r   )rÆ   rÇ   s     r-   Úis_cp_similarrÑ   Y  s%   € ð 	Ô-Ð-ò 	?ØÔ1°+Ñ>Ð>ðr4   Úcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)sc                óâ   — t        j                  | «      }|j                  |«       t        j                  «       }|j	                  t        j
                  |«      «       |j                  |«       y r0   )ÚloggingÚ	getLoggerÚsetLevelÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)r'   ÚlevelÚformat_stringÚloggerÚhandlers        r-   Úset_logging_handlerrß   d  sU   € ô
 ×Ñ˜tÓ$€FØ
‡O�O�EÔä×#Ñ#Ó%€GØ×Ñœ×*Ñ*¨=Ó9Ô:Ø
×Ñ�gÕr4   c	              #  óš  K  — |r|du r|D ]  }	||	|	|z    }
|
s y |
–— Œ y |D ]¤  }	|	|z   }|t        | «      dz   kD  rŒ| |	|	|z    }|r	|du r||z   }|j                  ||rdnd¬«      }
|r[|	dkD  rVt        |d«      }|rH|
d | |vrAt        |	|	dz
  d	«      D ].  }| || }|r	|du r||z   }|j                  |d¬«      }
|
d | |v sŒ. n |
–— Œ¦ y ­w)
NFé   r�   rÁ   r�   r   r7   é   éÿÿÿÿ)r˜   rš   r™   rÅ   )Ú	sequencesr¤   ÚoffsetsÚ
chunk_sizeÚbom_or_sig_availableÚstrip_sig_or_bomÚsig_payloadÚis_multi_byte_decoderÚdecoded_payloadrÍ   ÚchunkÚ	chunk_endÚcut_sequenceÚchunk_partial_size_chkÚjs                  r-   Úcut_sequence_chunksrñ   q  s<  è ø€ ñ Ð0°EÑ9ÛˆAØ# A¨¨J©Ð7ˆEÙÙØ‹Kñ	 ó ˆAØ˜J™ˆIØœ3˜y›>¨AÑ-Ò-Øà$ Q¨¨Z©Ð8ˆLá#Ð(8¸EÑ(AØ*¨\Ñ9�à ×'Ñ'ØÙ#8‘x¸hð (ó ˆEñ %¨¨QªÜ.1°*¸bÓ.AÐ&ñ $ØÐ5Ð5Ð6¸oÑMä" 1 a¨!¡e¨RÖ0˜Ø'0°°9Ð'=˜á/Ð4DÈÑ4MØ+6¸Ñ+E˜Là ,× 3Ñ 3°MÈ(Ð 3Ó S˜à Ð!8Ð"8Ð9¸_ÒLÙ!ð 1ð ‹KñG ùs   ‚B>CÃ
C)r)   ÚstrÚreturnr;   )r)   rò   ró   r1   )r)   rò   ró   rò   )r)   rò   ró   ú
str | None)r†   rò   ró   r1   )i    )rž   úbytes | bytearrayrŸ   r;   ró   rô   )r'   rò   ró   r1   )rž   rõ   ró   ztuple[str | None, bytes])r¸   rò   ró   r1   )T)rÀ   rò   rÁ   r1   ró   rò   )rÆ   rò   rÇ   rò   ró   Úfloat)rÆ   rò   rÇ   rò   ró   r1   )r'   rò   rÛ   r;   rÜ   rò   ró   ÚNoner0   )rä   rõ   r¤   rò   rå   rÅ   ræ   r;   rç   r1   rè   r1   ré   r•   rê   r1   rë   rô   ró   zGenerator[str, None, None])IÚ
__future__r   r³   rÔ   r&   Úbisectr   Úcodecsr   Úencodings.aliasesr   Ú	functoolsr   Úrer   Útypingr	   Ú_multibytecodecr
   Úconstantr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r3   r>   Úsortedr�   rE   Ú__annotations__rF   rK   rM   rV   r\   r`   rk   ro   rq   rs   rv   rx   r{   r}   r   r�   r˜   rˆ   rŒ   r¥   rµ   r»   r½   rÂ   rÏ   rÑ   ÚINFOrß   rñ   )Úes   0r-   Ú<module>r     s¨  ðÞ "ã Û Û Ý Ý %Ý %Ý Ý Ý õ÷÷ ÷ ÷ õ ñ* Ð*Ô+òó ,ðñD Ð*Ô+ò<ó ,ð<ñ Ð*Ô+ò"ó ,ð"ñ 6<ñ <à8Ð2×8Ñ8Ô:ó<ó 6Ð Ð2ó ñ 3IÓ#IÑ2H¨Q A a£DÐ2HÑ#IÐ �yÓ Iñ Ð*Ô+òó ,ðñ  Ð*Ô+ò6ó ,ð6ñ Ð*Ô+ò,ó ,ð,ñ Ð*Ô+òEó ,ðEñ Ð*Ô+òNó ,ðNñ Ð*Ô+òQó ,ðQñ Ð*Ô+ò6ó ,ð6ñ Ð*Ô+ò4ó ,ð4ñ Ð*Ô+ò9ó ,ð9ñ Ð*Ô+ò9ó ,ð9ñ Ð*Ô+ò7ó ,ð7ñ Ð*Ô+ò5ó ,ð5ñ Ð*Ô+ò7ó ,ð7ñ Ð*Ô+òEó ,ðEñ Ð*Ô+ò2ó ,ð2ñ ‘3Ð.Ó/Ô0òUó 1ðUñ Ð*Ô+òó ,ðð 59ðØðØ.1ðàóñD �3Ôòó ðó(ó$5ôó"'ó(ð %Ø—‘ØDð
Ø
ð
àð
ð ð
ð 
ó	
ð, #'ð5Ø ð5àð5ð ð5ð ð	5ð
 ð5ð ð5ð ð5ð  ð5ð  ð5ð  ô5ùòe $Js   Â;I