HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/charset_normalizer/__pycache__/md.cpython-310.pyc
o

�h�N�@sVddlmZddlmZddlmZddlmZmZm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZGdd�d�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$Gdd�de�Z%Gdd�de�Z&edd�d/d"d#��Z'ed$d�	&d0d1d,d-��Z(d.S)2�)�annotations)�	lru_cache)�	getLogger�)�COMMON_SAFE_ASCII_CHARACTERS�TRACE�UNICODE_SECONDARY_RANGE_KEYWORD)�is_accentuated�	is_arabic�is_arabic_isolated_form�is_case_variable�is_cjk�is_emoticon�	is_hangul�is_hiragana�is_katakana�is_latin�is_punctuation�is_separator�	is_symbol�is_thai�is_unprintable�
remove_accent�
unicode_range�is_cjk_uncommonc@s<eZdZdZddd�Zdd	d
�Zddd�Zeddd��ZdS)�MessDetectorPluginzy
    Base abstract class used for mess detection plugins.
    All detectors MUST extend and implement given methods.
    �	character�str�return�boolcC�t�)z@
        Determine if given character should be fed in.
        ��NotImplementedError��selfr�r%�H/usr/local/CyberCP/lib/python3.10/site-packages/charset_normalizer/md.py�eligible'�zMessDetectorPlugin.eligible�NonecCr )z�
        The main routine to be executed upon character.
        Insert the logic in witch the text would be considered chaotic.
        r!r#r%r%r&�feed-szMessDetectorPlugin.feedcCr )zB
        Permit to reset the plugin to the initial state.
        r!�r$r%r%r&�reset4r(zMessDetectorPlugin.reset�floatcCr )z�
        Compute the chaos ratio based on what your feed() has seen.
        Must NOT be lower than 0.; No restriction gt 0.
        r!r+r%r%r&�ratio:szMessDetectorPlugin.ratioN�rrrr�rrrr)�rr)�rr-)	�__name__�
__module__�__qualname__�__doc__r'r*r,�propertyr.r%r%r%r&r!s


rc@�BeZdZddd�Zddd	�Zdd
d�Zddd
�Zeddd��ZdS)� TooManySymbolOrPunctuationPluginrr)cCs"d|_d|_d|_d|_d|_dS)NrF)�_punctuation_count�
_symbol_count�_character_count�_last_printable_char�_frenzy_symbol_in_wordr+r%r%r&�__init__Ds

z)TooManySymbolOrPunctuationPlugin.__init__rrrcC�|��S�N��isprintabler#r%r%r&r'L�z)TooManySymbolOrPunctuationPlugin.eligiblecCsp|jd7_||jkr3|tvr3t|�r|jd7_n|��dur3t|�r3t|�dur3|jd7_||_dS)NrF�)	r<r=rrr:�isdigitrrr;r#r%r%r&r*Os
�
z%TooManySymbolOrPunctuationPlugin.feedcCsd|_d|_d|_dS�Nr)r:r<r;r+r%r%r&r,a�
z&TooManySymbolOrPunctuationPlugin.resetr-cCs0|jdkrdS|j|j|j}|dkr|SdS)Nr��333333�?)r<r:r;)r$�ratio_of_punctuationr%r%r&r.fs

�z&TooManySymbolOrPunctuationPlugin.ratioNr1r/r0r2�	r3r4r5r?r'r*r,r7r.r%r%r%r&r9Cs



r9c@r8)�TooManyAccentuatedPluginrr)cC�d|_d|_dSrG�r<�_accentuated_countr+r%r%r&r?s�
z!TooManyAccentuatedPlugin.__init__rrrcCr@rA)�isalphar#r%r%r&r'wrDz!TooManyAccentuatedPlugin.eligiblecC�,|jd7_t|�r|jd7_dSdS�Nr)r<r	rPr#r%r%r&r*z��zTooManyAccentuatedPlugin.feedcCrNrGrOr+r%r%r&r,�rQzTooManyAccentuatedPlugin.resetr-cCs*|jdkrdS|j|j}|dkr|SdS)N�rIgffffff�?rO)r$�ratio_of_accentuationr%r%r&r.�s
zTooManyAccentuatedPlugin.ratioNr1r/r0r2rLr%r%r%r&rMrs



rMc@r8)�UnprintablePluginrr)cCrNrG)�_unprintable_countr<r+r%r%r&r?�rQzUnprintablePlugin.__init__rrrcC�dS�NTr%r#r%r%r&r'��zUnprintablePlugin.eligiblecCs(t|�r|jd7_|jd7_dSrT)rrYr<r#r%r%r&r*�szUnprintablePlugin.feedcCs
d|_dSrG)rYr+r%r%r&r,�s
zUnprintablePlugin.resetr-cC�|jdkrdS|jd|jS)NrrIrV)r<rYr+r%r%r&r.��
zUnprintablePlugin.ratioNr1r/r0r2rLr%r%r%r&rX�s



rXc@r8)�SuspiciousDuplicateAccentPluginrr)cC�d|_d|_d|_dSrG��_successive_countr<�_last_latin_characterr+r%r%r&r?�s
z(SuspiciousDuplicateAccentPlugin.__init__rrrcCs|��ot|�SrA)rRrr#r%r%r&r'�sz(SuspiciousDuplicateAccentPlugin.eligiblecCst|jd7_|jdur5t|�r5t|j�r5|��r%|j��r%|jd7_t|�t|j�kr5|jd7_||_dSrT)r<rcr	�isupperrbrr#r%r%r&r*�s
��
z$SuspiciousDuplicateAccentPlugin.feedcCr`rGrar+r%r%r&r,�rHz%SuspiciousDuplicateAccentPlugin.resetr-cCr])NrrIrE)r<rbr+r%r%r&r.�r^z%SuspiciousDuplicateAccentPlugin.ratioNr1r/r0r2rLr%r%r%r&r_�s



r_c@r8)�SuspiciousRangerr)cCr`rG)�"_suspicious_successive_range_countr<�_last_printable_seenr+r%r%r&r?�rHzSuspiciousRange.__init__rrrcCr@rArBr#r%r%r&r'�rDzSuspiciousRange.eligiblecCsx|jd7_|��st|�s|tvrd|_dS|jdur"||_dSt|j�}t|�}t||�r7|jd7_||_dSrT)r<�isspacerrrgr� is_suspiciously_successive_rangerf)r$r�unicode_range_a�unicode_range_br%r%r&r*�s ��



zSuspiciousRange.feedcCr`rG)r<rfrgr+r%r%r&r,�rHzSuspiciousRange.resetr-cCs"|jdkrdS|jd|j}|S)N�
rIrE)r<rf)r$�ratio_of_suspicious_range_usager%r%r&r.�s
�zSuspiciousRange.ratioNr1r/r0r2rLr%r%r%r&re�s



rec@r8)�SuperWeirdWordPluginrr)cCs@d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	dS)NrF�)
�_word_count�_bad_word_count�_foreign_long_count�_is_current_word_bad�_foreign_long_watchr<�_bad_character_count�_buffer�_buffer_accent_count�_buffer_glyph_countr+r%r%r&r?�s
zSuperWeirdWordPlugin.__init__rrrcCrZr[r%r#r%r%r&r'r\zSuperWeirdWordPlugin.eligiblecCs�|��rc|j|7_t|�r|jd7_|jdurFt|�dus%t|�rFt|�durFt|�durFt|�durFt	|�durFt
|�durFd|_t|�sZt|�sZt|�sZt	|�sZt
|�ra|jd7_dS|jshdS|��sut
|�sut|��r$|j�r$|jd7_t|j�}|j|7_|dkr�|j|dkr�d|_n4t|jd�r�|jd��r�tdd�|jD��dur�|jd7_d|_n|jdkr�d|_|jd7_|d	kr�|jr�d
d�t|jtd|��D�}d}|r�t|�|d
kr�d}|s�|jd7_d|_|j�r|jd7_|jt|j�7_d|_d|_d|_d|_d|_dS|dv�rA|��du�rCt|��rEd|_|j|7_dSdSdSdS)NrFT���?���css�|]}|��VqdSrA�rd)�.0�_r%r%r&�	<genexpr>8s�z,SuperWeirdWordPlugin.feed.<locals>.<genexpr>�cSsg|]
\}}|��r|�qSr%r|)r}�c�ir%r%r&�
<listcomp>@s��z-SuperWeirdWordPlugin.feed.<locals>.<listcomp>rrJro>r~�-�<�=�>�|�~)rRrvr	rwrtrr
rrrrrxrhrrrp�lenr<rsrd�allrr�zip�rangerqrurFr)r$r�
buffer_length�camel_case_dst�probable_camel_casedr%r%r&r*s�
���������
��
�

��zSuperWeirdWordPlugin.feedcCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)NroFr)rvrsrtrqrpr<rurrr+r%r%r&r,_s
zSuperWeirdWordPlugin.resetr-cCs$|jdkr|jdkrdS|j|jS)N�
rrI)rprrrur<r+r%r%r&r.iszSuperWeirdWordPlugin.ratioNr1r/r0r2rLr%r%r%r&rn�s



Q
rnc@sFeZdZdZddd�Zdd	d
�Zddd�Zdd
d�Zeddd��Z	dS)�CjkUncommonPluginz<
    Detect messy CJK text that probably means nothing.
    rr)cCrNrG�r<�_uncommon_countr+r%r%r&r?vrQzCjkUncommonPlugin.__init__rrrcC�t|�SrA)r
r#r%r%r&r'zrDzCjkUncommonPlugin.eligiblecCrSrT)r<rr�r#r%r%r&r*}s
�zCjkUncommonPlugin.feedcCrNrGr�r+r%r%r&r,�rQzCjkUncommonPlugin.resetr-cCs.|jdkrdS|j|j}|dkr|dSdS)NrVrIrzr�r�)r$�uncommon_form_usager%r%r&r.�s
zCjkUncommonPlugin.ratioNr1r/r0r2)
r3r4r5r6r?r'r*r,r7r.r%r%r%r&r�qs



r�c@r8)�ArchaicUpperLowerPluginrr)cCs.d|_d|_d|_d|_d|_d|_d|_dS)NFrT)�_buf�_character_count_since_last_sep�_successive_upper_lower_count�#_successive_upper_lower_count_finalr<�_last_alpha_seen�_current_ascii_onlyr+r%r%r&r?�s
z ArchaicUpperLowerPlugin.__init__rrrcCrZr[r%r#r%r%r&r'�r\z ArchaicUpperLowerPlugin.eligiblecCs$|��ot|�}|du}|rC|jdkrC|jdkr+|��dur+|jdur+|j|j7_d|_d|_d|_d|_|j	d7_	d|_dS|jdurQ|�
�durQd|_|jdur|��r_|j��sh|��r||j��r||jdurx|jd7_d|_nd|_nd|_|j	d7_	|jd7_||_dS)NFr�@rTrE)
rRrr�rFr�r�r�r�r�r<�isasciird�islower)r$r�is_concerned�	chunk_sepr%r%r&r*�s@

�
��

zArchaicUpperLowerPlugin.feedcCs.d|_d|_d|_d|_d|_d|_d|_dS)NrFT)r<r�r�r�r�r�r�r+r%r%r&r,�s
zArchaicUpperLowerPlugin.resetr-cCs|jdkrdS|j|jS)NrrI)r<r�r+r%r%r&r.�s
zArchaicUpperLowerPlugin.ratioNr1r/r0r2rLr%r%r%r&r��s



*	r�c@sBeZdZddd�Zddd�Zdd
d�Zddd
�Zeddd��ZdS)�ArabicIsolatedFormPluginrr)cCrNrG�r<�_isolated_form_countr+r%r%r&r?�rQz!ArabicIsolatedFormPlugin.__init__cCrNrGr�r+r%r%r&r,�rQzArabicIsolatedFormPlugin.resetrrrcCr�rA)r
r#r%r%r&r'�rDz!ArabicIsolatedFormPlugin.eligiblecCrSrT)r<rr�r#r%r%r&r*�rUzArabicIsolatedFormPlugin.feedr-cCs|jdkrdS|j|j}|S)NrVrIr�)r$�isolated_form_usager%r%r&r.�s
zArabicIsolatedFormPlugin.ratioNr1r/r0r2)	r3r4r5r?r,r'r*r7r.r%r%r%r&r��s



r��)�maxsizerj�
str | NonerkrrcCsv|dus|dur
dS||krdSd|vrd|vrdSd|vs"d|vr$dSd|vs,d|vr6d|vs4d|vr6dS|�d�|�d�}}|D]}|tvrJqC||vrQdSqC|dv|dv}}|s_|rid	|vsgd	|vridS|ro|rodSd
|vswd
|vr�d	|vsd	|vr�dS|dks�|dkr�dSd	|vs�d	|vs�|dvr�|dvr�d
|vs�d
|vr�dSd|vs�d|vr�dS|dks�|dkr�dSdS)za
    Determine if two Unicode range seen next to each other can be considered as suspicious.
    NTF�Latin�	Emoticons�	Combining� )�Hiragana�Katakana�CJK�HangulzBasic Latin)r�r��Punctuation�Forms)�splitr)rjrk�keywords_range_a�keywords_range_b�el�range_a_jp_chars�range_b_jp_charsr%r%r&ri�sZ����rii皙�����?F�decoded_sequencer�maximum_thresholdr-�debugc	CsRdd�t��D�}t|�d}d}|dkrd}n	|dkrd}nd	}t|d
t|��D]2\}}|D]}	|	�|�r<|	�|�q0|dkrG||dksM||dkr\tdd
�|D��}||kr\nq*|r�td�}
|
�	t
d|�d|�d|���t|�dkr�|
�	t
d|dd����|
�	t
d|dd����|D]}|
�	t
|j�d|j���q�t
|d�S)zw
    Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.
    cSsg|]}|��qSr%r%)r}�md_classr%r%r&r�Ns�zmess_ratio.<locals>.<listcomp>rrIi� r�r���
rcss�|]}|jVqdSrA)r.)r}�dtr%r%r&res�zmess_ratio.<locals>.<genexpr>�charset_normalizerzIMess-detector extended-analysis start. intermediary_mean_mess_ratio_calc=z mean_mess_ratio=z maximum_threshold=�zStarting with: Nz
Ending with: i�z: �)r�__subclasses__r�r�r�r'r*�sumr�logr�	__class__r.�round)r�r�r��	detectors�length�mean_mess_ratio�!intermediary_mean_mess_ratio_calcr�index�detector�loggerr�r%r%r&�
mess_ratioFsN�

������
r�N)rjr�rkr�rr)r�F)r�rr�r-r�rrr-))�
__future__r�	functoolsr�loggingr�constantrrr�utilsr	r
rrr
rrrrrrrrrrrrrrr9rMrXr_rernr�r�r�rir�r%r%r%r&�<module>s(P"/%1v#LI�