
    vg\j                    &   % S SK Jr  S SKrS SKJr  S SKJr  \R                  S:  a  S SKJ	r	  O S SK
J	r	  SS	KJrJrJrJrJrJrJrJrJrJrJrJrJr  SS
KJrJrJrJrJrJ r J!r!  \\-  \-  \-  \-  r"S\#S'   \	 " S S5      5       r$\" SS9S+S j5       r%\&" S5       V s/ s H  n \$" \'" U 5      5      PM     sn r(S\#S'    " S S5      r)\	 " S S\)5      5       r*\	 " S S\)5      5       r+\	 " S S\)5      5       r,\	 " S S\)5      5       r-\	 " S S\)5      5       r.\	 " S  S!\)5      5       r/\	 " S" S#\)5      5       r0\	 " S$ S%\)5      5       r1\	 " S& S'\)5      5       r2\" S(S9      S,S) j5       r3 S-       S.S* jjr4g! \ a    S r	 GNTf = fs  sn f )/    )annotationsN)	lru_cache)	getLogger)      )finalc                    U $ )N )clss    P/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/charset_normalizer/md.pyr   r      s    J       )COMMON_CJK_CHARACTERSCOMMON_SAFE_ASCII_CHARACTERSTRACEUNICODE_SECONDARY_RANGE_KEYWORD_ACCENTUATED_ARABIC_ARABIC_ISOLATED_FORM_CJK_HANGUL	_HIRAGANA	_KATAKANA_LATIN_THAI)_character_flagsis_emoticonis_punctuationis_separator	is_symbolremove_accentunicode_rangeint_GLYPH_MASKc                     \ rS rSr% SrSrS\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S!S jrSrg )"CharInfo/   z>Pre-computed character properties shared across all detectors.)	character	printablealphaupperlowerspacedigitis_asciicase_variableflagsaccentuatedlatinis_cjk	is_arabicis_glyphpunctsymrangesepemoticonsafe
common_cjkstrr(   boolr)   r*   r+   r,   r-   r.   r/   r0   r#   r1   r2   r3   r4   r5   r6   r7   r8   
str | Noner9   r:   r;   r<   r=   c                X   Xl         [        U5      nUS:  GaE  SU l        SU l        SU l        SU l        SU l        SUs=::  a  S::  aV  O  OSSU l        SU l        SU l	        SU l
        SU l        SU l        SU l        [        U l        SU l        SU l        SU l        GO@SUs=::  a  S::  aV  O  OSSU l        SU l        SU l	        SU l
        SU l        SU l        SU l        [        U l        SU l        SU l        SU l        GOSUs=::  a  S	::  aR  O  OOSU l        SU l        SU l	        SU l
        SU l        SU l        SU l        S
U l        SU l        SU l        SU l        GO~US:X  d  SUs=::  a  S::  aU  O  ORSU l        SU l        SU l	        SU l
        SU l        US:H  U l        SU l        S
U l        SU l        SU l        SU l        GOUR'                  5       U l        SU l        SU l        SU l	        SU l
        SU l        SU l        S
U l        SU l        U R                  (       a  [)        U5      OSU l        U R                  (       a  [+        U5      OSU l        GOSU l        UR'                  5       U l        UR-                  5       U l        UR/                  5       U l        UR1                  5       U l	        UR3                  5       U l
        UR5                  5       U l        U R                  U R                  :g  U l        U R                  (       a  [7        U5      nOS
nX0l        [9        U[:        -  5      U l        [9        U[        -  5      U l        [9        U[<        -  5      U l        [9        U[>        -  5      U l        [9        U[@        -  5      U l        U R                  (       a  [)        U5      OSU l        U R                  (       a  [+        U5      OSU l        [C        U5      U l"        [G        U5      U l$        [K        U5      U l&        U[N        ;   U l(        U[R        ;   U l*        g)zcCompute all properties for *character* (built once per codepoint,
every branch assigns every slot).   TFA   Z   a   z   0   9   r       	      N)+r(   ordr/   r2   r4   r5   r6   r*   r+   r,   r-   r.   r)   r0   r   r1   r3   r7   r8   isprintabler   r    isalphaisupperislowerisspaceisdigitr   r?   r   r   r   r$   r"   r9   r   r:   r   r;   r   r<   r   r=   )selfr(   or1   s       r   __init__CharInfo.__init__c   sv    # Ys7 DM$DDK"DN!DMQ}"}!
!
"
"
"
!%%)"#
!
"
 qC!
"
!
"
"
!%%)"#
!
"
 qB"
"
"
"
!
!%%*"
"
"
 bQ!\r\"
"
"
!
"
!"b%*"
"
"
  "+!6!6!8"
"
"
"
"
%*"
"
:>..^I6e
37>>9Y/u "DM&224DN"**,DJ"**,DJ"**,DJ"**,DJ"**,DJ!%tzz!9D zz(3J#EL$89Defn-DJut|,DK!%'/2DN !45DM 7;nn	2%DJ/3~~y+5DH"9-
	*#I.!==	#'<<r   )r2   r*   r0   r(   r=   r.   r;   r1   r5   r/   r4   r6   r3   r,   r)   r7   r9   r<   r:   r-   r8   r+   N)r(   r>   returnNone)	__name__
__module____qualname____firstlineno____doc__	__slots____annotations__rU   __static_attributes__r
   r   r   r&   r&   /   s    HI2 NOKKKKKNJKLONK	I	IN
Jq=r   r&   )maxsizec                    [        U 5      $ )zBBuild (once per codepoint) and cache the CharInfo for *character*.)r&   )r(   s    r   
_char_inforc      s     Ir   rB   zlist[CharInfo]_ASCII_CHAR_INFOc                  D    \ rS rSrSrSrSS jrS	S jr\S
S j5       r	Sr
g)MessDetectorPlugin   zm
Base abstract class used for mess detection plugins.
All detectors MUST extend and implement given methods.
r
   c                    [         e)zq
The main routine to be executed upon character.
Insert the logic in witch the text would be considered chaotic.
NotImplementedErrorrS   r(   infos      r   	feed_infoMessDetectorPlugin.feed_info   s
    
 "!r   c                    [         e)z2
Permit to reset the plugin to the initial state.
ri   rS   s    r   resetMessDetectorPlugin.reset   s
     "!r   c                    [         e)zm
Compute the chaos ratio based on what your feed() has seen.
Must NOT be lower than 0.; No restriction gt 0.
ri   rp   s    r   ratioMessDetectorPlugin.ratio   s
     "!r   Nr(   r>   rl   r&   rW   rX   rW   rX   rW   float)rY   rZ   r[   r\   r]   r^   rm   rq   propertyrt   r`   r
   r   r   rf   rf      s,    
 I"" " "r   rf   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g) TooManySymbolOrPunctuationPlugini  _punctuation_count_symbol_count_character_count_last_printable_char_frenzy_symbol_in_wordc                J    SU l         SU l        SU l        S U l        SU l        g Nr   Fr}   rp   s    r   rU   )TooManySymbolOrPunctuationPlugin.__init__  s*    '("#%&04!,1#r   c                X   U =R                   S-  sl         XR                  :w  a  UR                  (       do  UR                  (       a  U =R                  S-  sl        OHUR
                  (       d7  UR                  (       a&  UR                  (       d  U =R                  S-  sl        Xl        g)1Optimized feed using pre-computed character info.r      N)	r   r   r<   r7   r~   r.   r8   r;   r   rk   s      r   rm   *TooManySymbolOrPunctuationPlugin.feed_info  sg    "111$))zz''1,'ZZDHHT]]""a'"$-!r   c                .    SU l         SU l        SU l        g Nr   )r~   r   r   rp   s    r   rq   &TooManySymbolOrPunctuationPlugin.reset!  s    "# !r   c                    U R                   S:X  a  gU R                  U R                  -   U R                   -  nUS:  a  U$ S$ )Nr           333333?)r   r~   r   )rS   ratio_of_punctuations     r   rt   &TooManySymbolOrPunctuationPlugin.ratio&  sO      A% ##d&8&88!!'" (<s'B#KKr   )r   r   r   r~   r   Nrw   rv   rx   rY   rZ   r[   r\   r^   rU   rm   rq   rz   rt   r`   r
   r   r   r|   r|     s.    I2
.
 L Lr   r|   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)TooManyAccentuatedPlugini2  r   _accentuated_countc                     SU l         SU l        g r   r   rp   s    r   rU   !TooManyAccentuatedPlugin.__init__6  s    %&'(r   c                |    U =R                   S-  sl         UR                  (       a  U =R                  S-  sl        ggr   r   N)r   r2   r   rk   s      r   rm   "TooManyAccentuatedPlugin.feed_info:  s2    "##q(# r   c                     SU l         SU l        g r   r   rp   s    r   rq   TooManyAccentuatedPlugin.resetA  s     !"#r   c                j    U R                   S:  a  gU R                  U R                   -  nUS:  a  U$ S$ )Nr   r   gffffff?r   )rS   ratio_of_accentuations     r   rt   TooManyAccentuatedPlugin.ratioE  s=      1$'+'>'>AVAV'V(=(E$N3Nr   )r   r   Nrw   rv   rx   r   r
   r   r   r   r   2  s,    :I))$ O Or   r   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)UnprintablePluginiN  _unprintable_countr   c                     SU l         SU l        g r   r   rp   s    r   rU   UnprintablePlugin.__init__R  s    '(%&r   c                    UR                   (       d2  UR                  (       d!  US:w  a  US:w  a  U =R                  S-  sl        U =R                  S-  sl        g)r   u   ﻿r   N)r-   r)   r   r   rk   s      r   rm   UnprintablePlugin.feed_infoV  sD     

NNV#X%##q(#"r   c                    SU l         g r   )r   rp   s    r   rq   UnprintablePlugin.reseta  s
    "#r   c                \    U R                   S:X  a  gU R                  S-  U R                   -  $ )Nr   r   r   r   r   rp   s    r   rt   UnprintablePlugin.ratiod  s/      A%''!+t/D/DDDr   r   Nrw   rv   rx   r   r
   r   r   r   r   N  s,    :I'	#$ E Er   r   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)SuspiciousDuplicateAccentPluginil  _successive_countr   _last_latin_character_last_was_accentuatedc                <    SU l         SU l        S U l        SU l        g r   r   rp   s    r   rU   (SuspiciousDuplicateAccentPlugin.__init__u  s"    &'%&15"+0"r   c                   U =R                   S-  sl         U R                  b  UR                  (       a  U R                  (       a|  UR                  (       a4  U R                  R                  5       (       a  U =R                  S-  sl        [        U5      [        U R                  5      :X  a  U =R                  S-  sl        Xl        UR                  U l        gr   )r   r   r2   r   r+   rO   r   r!   rk   s      r   rm   )SuspiciousDuplicateAccentPlugin.feed_info|  s    "&&2  **zzd88@@BB&&!+&Y'=9S9S+TT&&!+&%."%)%5%5"r   c                <    SU l         SU l        S U l        SU l        g r   r   rp   s    r   rq   %SuspiciousDuplicateAccentPlugin.reset  s"    !" !%)"%*"r   c                \    U R                   S:X  a  gU R                  S-  U R                   -  $ )Nr   r   r   )r   r   rp   s    r   rt   %SuspiciousDuplicateAccentPlugin.ratio  s/      A%&&*d.C.CCCr   )r   r   r   r   Nrw   rv   rx   r   r
   r   r   r   r   l  s.    I16+ D Dr   r   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)SuspiciousRangei  "_suspicious_successive_range_countr   _last_printable_seen_last_printable_rangec                <    SU l         SU l        S U l        S U l        g r   r   rp   s    r   rU   SuspiciousRange.__init__  s"    78/%&04!15"r   c                   U =R                   S-  sl         UR                  (       d"  UR                  (       d  UR                  (       a  SU l        SU l        gU R                  c  Xl        UR                  U l        gU R
                  nUR                  nX4:w  d  Uc%  [        X45      (       a  U =R                  S-  sl        Xl        X@l        gr   )	r   r-   r7   r<   r   r   r9    is_suspiciously_successive_ranger   )rS   r(   rl   unicode_range_aunicode_range_bs        r   rm   SuspiciousRange.feed_info  s    "::tyy(,D%)-D&$$,(1%)-D&&*&@&@&*jj -1H/QQ771<7$-!%4"r   c                <    SU l         SU l        S U l        S U l        g r   )r   r   r   r   rp   s    r   rq   SuspiciousRange.reset  s"     !23/$(!%)"r   c                `    U R                   S::  a  gU R                  S-  U R                   -  nU$ )NrK   r   r   )r   r   )rS   ratio_of_suspicious_range_usages     r   rt   SuspiciousRange.ratio  s<      B& 33a7!!2"' /.r   )r   r   r   r   Nrw   rv   rx   r   r
   r   r   r   r     s,    I652* / /r   r   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)SuperWeirdWordPlugini  _word_count_bad_word_count_foreign_long_count_is_current_word_bad_foreign_long_watchr   _bad_character_count_buffer_length_buffer_last_char_buffer_last_char_accentuated_buffer_accent_count_buffer_glyph_count_buffer_upper_count_buffer_first_lower_buffer_has_non_asciic                    SU l         SU l        SU l        SU l        SU l        SU l        SU l        SU l        S U l        SU l	        SU l
        SU l        SU l        SU l        SU l        g r   r   rp   s    r   rU   SuperWeirdWordPlugin.__init__  sz     !$%() */!). %&)*!#$-138*)*!() () ). +0"r   c                   UR                   (       Ga#  U R                  S:X  a  UR                  U l        U =R                  S-  sl        Xl        UR
                  (       a  U =R                  S-  sl        UR                  (       d  SU l        UR                  U l
        UR                  (       a  U =R                  S-  sl        U R                  (       d:  UR                  (       a  UR                  (       a  UR                  (       d  SU l        UR                  (       a  U =R                  S-  sl        gU R                  (       d  gUR                   (       d#  UR"                  (       d  UR$                  (       Ga  U =R&                  S-  sl        U R                  nU =R(                  U-  sl        US:  a  U R                  U-  S:  a  SU l        OU R                  (       aL  U R                  R-                  5       (       a-  U R                  U:w  a  U =R.                  S-  sl        SU l        O~U R                  S:X  a  SU l        U =R.                  S-  sl        OQU R                  (       a@  U R                  (       a/  U R                  US-
  :X  a  U =R.                  S-  sl        SU l        US:  a\  U R                  (       aK  U R                  S:  =(       a    U R                  U-  S:*  nU(       d  U =R.                  S-  sl        SU l        U R*                  (       a1  U =R0                  S-  sl        U =R2                  U-  sl        S	U l        S	U l        SU l        SU l        S	U l
        SU l        SU l        SU l        S	U l        S	U l        gUS
;  aN  UR4                  (       d<  UR6                  (       a*  SU l        U =R                  S-  sl        Xl        S	U l
        gggg)r   r   r   TN         ?   r   F>   -<=>_|~)r*   r   r,   r   r   r+   r   r/   r   r2   r   r   r   r3   r6   r   r-   r7   r:   r   r   r   rO   r   r   r   r.   r8   )rS   r(   rl   buffer_lengthprobable_camel_caseds        r   rm   SuperWeirdWordPlugin.feed_info  s   :::""a'+/::(1$%."zz((A-(==-1*151A1AD.))Q.),,t'7'7+/(}}((A-(""::txxx!!%!4!4M!!]2!!,,}<C04D-66..668800MA,,1,04D---204D-,,1,..0000MA4EE
 ,,1,04D-"t'?'?,,q0 H00=@CG %
 ,,,1,04D-(($$)$))]:),1)',D$"#D%)D"16D.()D%'(D$'(D$',D$).D&@@JJ(,D%1$%."16D.   Ar   c                    SU l         S U l        SU l        SU l        SU l        SU l        SU l        SU l        SU l        SU l	        SU l
        SU l        SU l        SU l        SU l        g r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   s    r   rq   SuperWeirdWordPlugin.resetV  sz    !%-2*$)!#(   !$%!#$ $%!#$ #$ #( %*"r   c                v    U R                   S::  a  U R                  S:X  a  gU R                  U R                  -  $ )N
   r   r   )r   r   r   r   rp   s    r   rt   SuperWeirdWordPlugin.ratiog  s7    r!d&>&>!&C((4+@+@@@r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Nrw   rv   rx   r   r
   r   r   r   r     s0    I$1(Y7v+" A Ar   r   c                  N    \ rS rSrSrSrS	S jrS
S jrS	S jr\	SS j5       r
Srg)CjkUncommonPluginio  z4
Detect messy CJK text that probably means nothing.
r   _uncommon_countc                     SU l         SU l        g r   r   rp   s    r   rU   CjkUncommonPlugin.__init__w  s    %&$%r   c                |    U =R                   S-  sl         UR                  (       d  U =R                  S-  sl        ggr   )r   r=   r   rk   s      r   rm   CjkUncommonPlugin.feed_info{  s0    "  A%  r   c                     SU l         SU l        g r   r   rp   s    r   rq   CjkUncommonPlugin.reset  s     ! r   c                p    U R                   S:  a  gU R                  U R                   -  nUS:  a  US-  $ S$ )Nr   r   r   r   r   )rS   uncommon_form_usages     r   rt   CjkUncommonPlugin.ratio  sD      1$%)%9%9D<Q<Q%Q ,?+D"R'M#Mr   Nrw   rv   rx   )rY   rZ   r[   r\   r]   r^   rU   rm   rq   rz   rt   r`   r
   r   r   r   r   o  s3     8I&&! N Nr   r   c                  J    \ rS rSrSrS	S jrS
S jrS	S jr\SS j5       r	Sr
g)ArchaicUpperLowerPlugini  	_buf_character_count_since_last_sep_successive_upper_lower_count#_successive_upper_lower_count_finalr   _last_alpha_seen_last_alpha_seen_upper_last_alpha_seen_lower_current_ascii_onlyc                    SU l         SU l        SU l        SU l        SU l        S U l        SU l        SU l        SU l        g )NFr   Tr  rp   s    r   rU    ArchaicUpperLowerPlugin.__init__  sI    	45,23*890%&,0,1#,1#)- r   c                   UR                   =(       a    UR                  nU(       + nU(       a  U R                  S:  a  U R                  S::  aA  UR                  (       d0  U R                  (       d  U =R
                  U R                  -  sl        SU l        SU l        SU l        SU l        U =R                  S-  sl	        SU l        gU R                  (       a  UR                  (       d  SU l        U R                  b  UR                  (       a  U R                  (       d"  UR                  (       aG  U R                  (       a6  U R                  (       a  U =R                  S-  sl        SU l        OSU l        OSU l        U =R                  S-  sl	        U =R                  S-  sl        Xl        UR                  U l        UR                  U l        g)r   r   @   NFr   Tr   )r*   r0   r  r.   r  r  r  r	  r  r   r/   r+   r  r,   r
  )rS   r(   rl   is_concerned	chunk_seps        r   rm   !ArchaicUpperLowerPlugin.feed_info  sQ   !ZZ>D,>,>**	==A44:

0088668 23D.34D0$(D!DI!!Q&!'+D$##DMM',D$  ,

t::

t::9966!;6 %DI $DI!	",,1, )&*jj#&*jj#r   c                    SU l         SU l        SU l        SU l        S U l        SU l        SU l        SU l        SU l        g )Nr   FT)	r   r  r  r  r	  r
  r  r  r  rp   s    r   rq   ArchaicUpperLowerPlugin.reset  sI     !/0,-.*340 $&+#&+#	#' r   c                V    U R                   S:X  a  gU R                  U R                   -  $ )Nr   r   )r   r  rp   s    r   rt   ArchaicUpperLowerPlugin.ratio  s*      A%77$:O:OOOr   )	r  r   r  r  r	  r  r
  r  r  Nrw   rv   rx   r   r
   r   r   r  r    s/    
I.+1Z	( P Pr   r  c                  J    \ rS rSrSrSS jrSS jrS	S jr\S
S j5       r	Sr
g)ArabicIsolatedFormPlugini  r   _isolated_form_countc                     SU l         SU l        g r   r  rp   s    r   rU   !ArabicIsolatedFormPlugin.__init__  s    %&)*!r   c                     SU l         SU l        g r   r  rp   s    r   rq   ArabicIsolatedFormPlugin.reset  s     !$%!r   c                    U =R                   S-  sl         UR                  [        -  (       a  U =R                  S-  sl        ggr   )r   r1   r   r  rk   s      r   rm   "ArabicIsolatedFormPlugin.feed_info  s6    "::--%%*% .r   c                Z    U R                   S:  a  gU R                  U R                   -  nU$ )Nr   r   r  )rS   isolated_form_usages     r   rt   ArabicIsolatedFormPlugin.ratio  s0      1$%)%>%>AVAV%V""r   Nrw   rv   rx   )rY   rZ   r[   r\   r^   rU   rq   rm   rz   rt   r`   r
   r   r   r  r    s*    <I+&+ # #r   r     c                .   U b  Uc  gX:X  a  gSU ;   a  SU;   a  gSU ;   d  SU;   a  gSU ;   d  SU;   a  SU ;   d  SU;   a  gU R                  S5      UR                  S5      p2U H  nU[        ;   a  M  XC;   d  M    g   U S;   US;   peU(       d  U(       a  SU ;   d  SU;   a  gU(       a  U(       a  gS	U ;   d  S	U;   a  SU ;   d  SU;   a  gU S
:X  d  US
:X  a  gSU ;   d  SU;   d  U S;   a-  US;   a'  SU ;   d  SU;   a  gSU ;   d  SU;   a  gU S
:X  d  US
:X  a  gg)zY
Determine if two Unicode range seen next to each other can be considered as suspicious.
TFLatin	Emoticons	Combining )HiraganaKatakanaCJKHangulzBasic Latin)r,  r+  PunctuationForms)splitr   )r   r   keywords_range_akeywords_range_belrange_a_jp_charsrange_b_jp_charss          r   r   r     sw    /"9)/!g&@o%)G 	?"g&@&+*H 	c"c" '
 00!	  	
	

 	33 ' 	, E_$<,?"h/&AO#u'?m+-/O 	 E_$<3377O+}/Oo%O)Cm+-/Or   c           	        [        U 5      nUS:  a  SnOUS:  a  SnOSnU R                  5       n[        n[        n[	        5       n[        5       n	[        5       n
[        5       n[        5       n[        5       n[        5       n[        5       n[        5       nUR                  nU	R                  nU
R                  nUR                  nUR                  nUR                  nUR                  nUR                  nUR                  n[        SX45       GH{  nU UUU-     H  n[        U5      nUS:  a  UU   nOU" U5      nU" UU5        U" UU5        U(       a  UR                   (       a	  U" UU5        MW  U" UU5        UR                   (       a  U" UU5        U" UU5        UR"                  (       d  M  U" UU5        UR$                  (       a	  U" UU5        UR&                  (       a	  U" UU5        UR(                  (       d  M  U" UU5        M     UR*                  U	R*                  -   U
R*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   nUU:  d  GM|    O   US   nU" SU5        U(       d	  U" SU5        U" SU5        UR*                  U	R*                  -   U
R*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   UR*                  -   nU(       a  [-        S	5      n U R/                  [0        S
U SU SU 35        US:  a8  U R/                  [0        SU SS  35        U R/                  [0        SU SS  35        XXXXU4	 H2  n!U R/                  [0        U!R2                   SU!R*                   35        M4     [5        US5      $ )zo
Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.
i  rI   r%  r  rB   r   r   
charset_normalizerzIMess-detector extended-analysis start. intermediary_mean_mess_ratio_calc=z mean_mess_ratio=z maximum_threshold=   zStarting with: NzEnding with: iz: r   )lenisasciird   rc   r|   r   r   r   r   r   r   r  r  rm   r9   rL   r)   r*   r3   r4   r5   rt   r   logr   	__class__round)"decoded_sequencemaximum_thresholddebugseq_lenstepis_pure_ascii
ascii_info	char_infod_spd_tad_upd_sdad_srd_swd_cud_aud_ai	d_sp_feed	d_ta_feed	d_up_feed
d_sda_feed	d_sr_feed	d_sw_feed	d_cu_feed	d_au_feed	d_ai_feedblock_startr(   	codepointrl   mean_mess_rationl_infologgerdts"                                     r   
mess_ratior`  V  s    '(G}	4
 +224M
 "JI .N-OD%=%?D/1D-L-NE+-D!5!7D/1D$;$=D%=%?D IIIJIIIIIQ.)+d8JKI
 !^I3!), + i&i&>>i.i& ~~)T*)T* zzz)T*::y$/;;i.>>>i.O LT JJjjjj kk jj	
 jj jj jj jj 	 //o /t R.$ dG$$  JJjjjj kk jj	
 jj jj jj jj 	 /0

1156GGX Y!!2 35	
 R<JJu0@"0E/FGHJJu.>su.E-FGHtDDIBJJub
;< J !$$r   )r(   r>   rW   r&   )r   r@   r   r@   rW   r?   )g?F)r@  r>   rA  ry   rB  r?   rW   ry   )5
__future__r   sys	functoolsr   loggingr   version_infotypingr   typing_extensionsImportErrorconstantr   r   r   r   r   r   r   r   r   r   r   r   r   utilsr   r   r   r   r    r!   r"   r$   r_   r&   rc   r9   chrrd   rf   r|   r   r   r   r   r   r   r  r  r   r`  )
_codepoints   0r   <module>rm     s}   " 
  v+      '>I-	9EAS A d= d= d=R 4  16c
$0:*HS_
$ . 
" "< +L'9 +L +L\ O1 O O6 E* E E: )D&8 )D )DX 6/( 6/ 6/r XA- XA XAv N* N ND YP0 YP YPx #1 # #8 4FF2<F	F FT JOT%T%.3T%BFT%
T%U  	h$s   E>  F>	F
F