§
    
Á³g :  ã                   óÐ   — d Z ddlZddlZddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZ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  G d„ d¦  «        ZdS )a  
Module containing the UniversalDetector detector class, which is the primary
class a user of ``chardet`` should use.

:author: Mark Pilgrim (initial port to Python)
:author: Shy Shalom (original C code)
:author: Dan Blanchard (major refactoring for 3.0)
:author: Ian Cordasco
é    N)ÚListÚOptionalÚUnioné   )ÚCharSetGroupProber)ÚCharSetProber)Ú
InputStateÚLanguageFilterÚProbingState)ÚEscCharSetProber)ÚLatin1Prober)ÚMacRomanProber)ÚMBCSGroupProber)Ú
ResultDict)ÚSBCSGroupProber)ÚUTF1632Proberc            	       óX  — e Zd ZdZdZ ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z	dddd	d
ddddœZ
ddddddddœZej        dfdededdfd„Zedefd„¦   «         Zedefd„¦   «         Zedee         fd„¦   «         Zd!d„Zdeeef         ddfd„Zdefd „ZdS )"ÚUniversalDetectoraq  
    The ``UniversalDetector`` class underlies the ``chardet.detect`` function
    and coordinates all of the different charset probers.

    To get a ``dict`` containing an encoding and its confidence, you can simply
    run:

    .. code::

            u = UniversalDetector()
            u.feed(some_bytes)
            u.close()
            detected = u.result

    gš™™™™™É?s   [€-ÿ]s   (|~{)s   [€-Ÿ]zWindows-1252zWindows-1250zWindows-1251zWindows-1256zWindows-1253zWindows-1255zWindows-1254zWindows-1257)ú
iso-8859-1z
iso-8859-2z
iso-8859-5z
iso-8859-6z
iso-8859-7z
iso-8859-8ú
iso-8859-9ziso-8859-13zISO-8859-11ÚGB18030ÚCP949úUTF-16)Úasciir   ztis-620r   Úgb2312zeuc-krzutf-16leFÚlang_filterÚshould_rename_legacyÚreturnNc                 ó   — d | _         d | _        g | _        d dd dœ| _        d| _        d| _        t          j        | _        d| _	        || _
        t          j        t          ¦  «        | _        d| _        || _        |                      ¦   «          d S )Nç        ©ÚencodingÚ
confidenceÚlanguageFó    )Ú_esc_charset_proberÚ_utf1632_proberÚ_charset_probersÚresultÚdoneÚ	_got_datar	   Ú
PURE_ASCIIÚ_input_stateÚ
_last_charr   ÚloggingÚ	getLoggerÚ__name__ÚloggerÚ_has_win_bytesr   Úreset)Úselfr   r   s      úc/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_vendor/chardet/universaldetector.pyÚ__init__zUniversalDetector.__init__d   s’   € ð
 @DˆÔ Ø8<ˆÔØ57ˆÔàØØð#
ð #
ˆŒð
 ˆŒ	ØˆŒÝ&Ô1ˆÔØˆŒØ&ˆÔÝÔ'­Ñ1Ô1ˆŒØ#ˆÔØ$8ˆÔ!Ø�
Š
‰Œˆˆˆr%   c                 ó   — | j         S ©N)r-   ©r5   s    r6   Úinput_statezUniversalDetector.input_state{   s   € àÔ Ð r%   c                 ó   — | j         S r9   )r3   r:   s    r6   Úhas_win_byteszUniversalDetector.has_win_bytes   s   € àÔ"Ð"r%   c                 ó   — | j         S r9   )r(   r:   s    r6   Úcharset_probersz!UniversalDetector.charset_probersƒ   s   € àÔ$Ð$r%   c                 ó2  — ddddœ| _         d| _        d| _        d| _        t          j        | _        d| _        | j        r| j         	                    ¦   «          | j
        r| j
         	                    ¦   «          | j        D ]}| 	                    ¦   «          ŒdS )zæ
        Reset the UniversalDetector and all of its probers back to their
        initial states.  This is called by ``__init__``, so you only need to
        call this directly in between analyses of different documents.
        Nr    r!   Fr%   )r)   r*   r+   r3   r	   r,   r-   r.   r&   r4   r'   r(   )r5   Úprobers     r6   r4   zUniversalDetector.reset‡   s¨   € ð $(°sÈÐMÐMˆŒØˆŒ	ØˆŒØ#ˆÔÝ&Ô1ˆÔØˆŒØÔ#ð 	-ØÔ$×*Ò*Ñ,Ô,Ð,ØÔð 	)ØÔ ×&Ò&Ñ(Ô(Ð(ØÔ+ð 	ð 	ˆFØ�LŠL‰NŒNˆNˆNð	ð 	r%   Úbyte_strc                 óp  — | j         rdS |sdS t          |t          ¦  «        st          |¦  «        }| j        s÷|                     t
          j        ¦  «        rddddœ| _        n¯|                     t
          j        t
          j	        f¦  «        rddddœ| _        nx|                     d¦  «        rddddœ| _        nW|                     d	¦  «        rd
dddœ| _        n6|                     t
          j
        t
          j        f¦  «        rddddœ| _        d| _        | j        d         �	d| _         dS | j        t          j        k    rt| j                             |¦  «        rt          j        | _        nH| j        t          j        k    r3| j                             | j        |z   ¦  «        rt          j        | _        |dd…         | _        | j        st-          ¦   «         | _        | j        j        t0          j        k    r]| j                             |¦  «        t0          j        k    r5| j        j        | j                             ¦   «         ddœ| _        d| _         dS | j        t          j        k    r‰| j        st?          | j         ¦  «        | _        | j                             |¦  «        t0          j        k    r?| j        j        | j                             ¦   «         | j        j!        dœ| _        d| _         dS dS | j        t          j        k    �r'| j"        s tG          | j         ¦  «        g| _"        | j         tH          j%        z  r&| j"         &                    tO          ¦   «         ¦  «         | j"         &                    tQ          ¦   «         ¦  «         | j"         &                    tS          ¦   «         ¦  «         | j"        D ]U}|                     |¦  «        t0          j        k    r0|j        |                     ¦   «         |j!        dœ| _        d| _          nŒV| j*                             |¦  «        rd| _+        dS dS dS )aý  
        Takes a chunk of a document and feeds it through all of the relevant
        charset probers.

        After calling ``feed``, you can check the value of the ``done``
        attribute to see if you need to continue feeding the
        ``UniversalDetector`` more data, or if it has made a prediction
        (in the ``result`` attribute).

        .. note::
           You should always call ``close`` when you're done feeding in your
           document if ``done`` is not already ``True``.
        Nz	UTF-8-SIGç      ð?Ú r!   zUTF-32s   þÿ  zX-ISO-10646-UCS-4-3412s     ÿþzX-ISO-10646-UCS-4-2143r   Tr"   éÿÿÿÿ),r*   Ú
isinstanceÚ	bytearrayr+   Ú
startswithÚcodecsÚBOM_UTF8r)   ÚBOM_UTF32_LEÚBOM_UTF32_BEÚBOM_LEÚBOM_BEr-   r	   r,   ÚHIGH_BYTE_DETECTORÚsearchÚ	HIGH_BYTEÚESC_DETECTORr.   Ú	ESC_ASCIIr'   r   Ústater   Ú	DETECTINGÚfeedÚFOUND_ITÚcharset_nameÚget_confidencer&   r   r   r$   r(   r   r
   ÚNON_CJKÚappendr   r   r   ÚWIN_BYTE_DETECTORr3   )r5   rB   rA   s      r6   rW   zUniversalDetector.feedš   s]  € ð Œ9ð 	ØˆFàð 	ØˆFå˜(¥IÑ.Ô.ð 	+Ý  Ñ*Ô*ˆHð Œ~ð %	à×"Ò"¥6¤?Ñ3Ô3ð Xð !,Ø"%Ø "ðð �”�ð
 ×$Ò$¥fÔ&9½6Ô;NÐ%OÑPÔPð Xð ,4À3ÐTVÐWÐW�”�Ø×$Ò$Ð%8Ñ9Ô9ð Xð !9Ø"%Ø "ð	ð �”�ð ×$Ò$Ð%8Ñ9Ô9ð Xð !9Ø"%Ø "ð	ð �”�ð ×$Ò$¥f¤mµV´]Ð%CÑDÔDð Xð ,4À3ÐTVÐWÐW�”à!ˆDŒNØŒ{˜:Ô&Ð2Ø �”	Ø�ð Ô¥
Ô 5Ò5Ð5ØÔ&×-Ò-¨hÑ7Ô7ð 9Ý$.Ô$8�Ô!Ð!àÔ!¥ZÔ%:Ò:Ð:ØÔ%×,Ò,¨T¬_¸xÑ-GÑHÔHð ;õ %/Ô$8�Ô!à" 2 3 3œ-ˆŒð Ô#ð 	3Ý#0¡?¤?ˆDÔ àÔÔ%­Ô)?Ò?Ð?ØÔ#×(Ò(¨Ñ2Ô2µlÔ6KÒKÐKà $Ô 4Ô AØ"&Ô"6×"EÒ"EÑ"GÔ"GØ "ðð �”ð
 !�”	Ø�ð Ô¥
Ô 4Ò4Ð4ØÔ+ð NÝ+;¸DÔ<LÑ+MÔ+M�Ô(ØÔ'×,Ò,¨XÑ6Ô6½,Ô:OÒOÐOà $Ô 8Ô EØ"&Ô":×"IÒ"IÑ"KÔ"KØ $Ô 8Ô Aðð �”ð
 !�”	�	�	ð PÐOð Ô¥*Ô"6Ò6Ñ6ØÔ(ð ?Ý)8¸Ô9IÑ)JÔ)JÐ(K�Ô%àÔ#¥nÔ&<Ñ<ð DØÔ)×0Ò0µÑ1BÔ1BÑCÔCÐCØÔ%×,Ò,­\©^¬^Ñ<Ô<Ð<ØÔ%×,Ò,­^Ñ-=Ô-=Ñ>Ô>Ð>ØÔ/ð ð �Ø—;’;˜xÑ(Ô(­LÔ,AÒAÐAà$*Ô$7Ø&,×&;Ò&;Ñ&=Ô&=Ø$*¤Oð#ð #�D”Kð
 !%�D”IØ�Eð Bð Ô%×,Ò,¨XÑ6Ô6ð +Ø&*�Ô#Ð#Ð#ð% 7Ð6ð"+ð +r%   c           	      ó¤  — | j         r| j        S d| _         | j        s| j                             d¦  «         �n%| j        t          j        k    rddddœ| _        �n| j        t          j        k    rîd}d}d}| j	        D ]#}|sŒ| 
                    ¦   «         }||k    r|}|}Œ$|r»|| j        k    r°|j        }|€J ‚|                     ¦   «         }| 
                    ¦   «         }|                     d	¦  «        r"| j        r| j                             ||¦  «        }| j        r/| j                             |pd                     ¦   «         |¦  «        }|||j        dœ| _        | j                             ¦   «         t,          j        k    rÆ| j        d
         €¹| j                             d¦  «         | j	        D ]—}|sŒt1          |t2          ¦  «        rD|j        D ];}| j                             d|j        |j        | 
                    ¦   «         ¦  «         Œ<Œ^| j                             d|j        |j        | 
                    ¦   «         ¦  «         Œ˜| j        S )zæ
        Stop analyzing the current document and come up with a final
        prediction.

        :returns:  The ``result`` attribute, a ``dict`` with the keys
                   `encoding`, `confidence`, and `language`.
        Tzno data received!r   rD   rE   r!   Nr    ziso-8859r"   z no probers hit minimum thresholdz%s %s confidence = %s)r*   r)   r+   r2   Údebugr-   r	   r,   rR   r(   rZ   ÚMINIMUM_THRESHOLDrY   ÚlowerrI   r3   ÚISO_WIN_MAPÚgetr   Ú
LEGACY_MAPr$   ÚgetEffectiveLevelr/   ÚDEBUGrG   r   Úprobers)	r5   Úprober_confidenceÚmax_prober_confidenceÚ
max_proberrA   rY   Úlower_charset_namer#   Úgroup_probers	            r6   ÚclosezUniversalDetector.close  sÂ  € ð Œ9ð 	Ø”;ÐØˆŒ	àŒ~ð (	ØŒK×ÒÐ1Ñ2Ô2Ð2Ñ2ð Ô¥*Ô"7Ò7Ð7Ø'.¸cÈrÐRÐRˆDŒK‰Kð Ô¥*Ô"6Ò6Ð6Ø $ÐØ$'Ð!ØˆJØÔ/ð (ð (�Øð ØØ$*×$9Ò$9Ñ$;Ô$;Ð!Ø$Ð'<Ò<Ð<Ø,=Ð)Ø!'�JøØð Ð4°tÔ7MÒMÐMØ)Ô6�Ø#Ð/Ð/Ð/Ø%1×%7Ò%7Ñ%9Ô%9Ð"Ø'×6Ò6Ñ8Ô8�
ð &×0Ò0°Ñ<Ô<ð ØÔ*ð Ø'+Ô'7×';Ò';Ø.°ñ(ô (˜ð Ô,ð Ø#'¤?×#6Ò#6Ø%Ð+¨×2Ò2Ñ4Ô4°lñ$ô $�Lð !-Ø",Ø *Ô 3ðð �”ð Œ;×(Ò(Ñ*Ô*­g¬mÒ;Ð;ØŒ{˜:Ô&Ð.Ø”×!Ò!Ð"DÑEÔEÐEØ$(Ô$9ð ð �LØ'ð !Ø Ý! ,Õ0BÑCÔCð Ø&2Ô&:ð ð ˜FØ œK×-Ò-Ø 7Ø &Ô 3Ø &¤Ø &× 5Ò 5Ñ 7Ô 7ñ	ô ð ð ðð œ×)Ò)Ø3Ø(Ô5Ø(Ô1Ø(×7Ò7Ñ9Ô9ñ	ô ð ð ð Œ{Ðr%   )r   N)r1   Ú
__module__Ú__qualname__Ú__doc__r`   ÚreÚcompilerP   rS   r]   rb   rd   r
   ÚALLÚboolr7   ÚpropertyÚintr;   r=   r   r   r?   r4   r   ÚbytesrH   rW   r   rm   © r%   r6   r   r   8   sÅ  € € € € € ðð ð  ÐØ#˜œ NÑ3Ô3ÐØ�2”:˜lÑ+Ô+€LØ"˜œ
 >Ñ2Ô2Ðà$Ø$Ø$Ø$Ø$Ø$Ø$Ø%ð	ð 	€Kð  Ø$Ø Ø$ØØØðð €Jð '5Ô&8Ø%*ðð à#ðð #ðð 
ð	ð ð ð ð. ð!˜Sð !ð !ð !ñ „Xð!ð ð#˜tð #ð #ð #ñ „Xð#ð ð%  mÔ!4ð %ð %ð %ñ „Xð%ðð ð ð ð&A+˜U 5¨)Ð#3Ô4ð A+¸ð A+ð A+ð A+ð A+ðFM�zð Mð Mð Mð Mð Mð Mr%   r   )rp   rJ   r/   rq   Útypingr   r   r   Úcharsetgroupproberr   Úcharsetproberr   Úenumsr	   r
   r   Ú	escproberr   Úlatin1proberr   Úmacromanproberr   Úmbcsgroupproberr   Ú
resultdictr   Úsbcsgroupproberr   Úutf1632proberr   r   rx   r%   r6   ú<module>r„      sF  ðð8ð ð €€€Ø €€€Ø 	€	€	€	Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø (Ð (Ð (Ð (Ð (Ð (Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø "Ð "Ð "Ð "Ð "Ð "Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø (Ð (Ð (Ð (Ð (Ð (ðrð rð rð rð rñ rô rð rð rð rr%   