�
�d9! � �B � d dl mZmZ ddlmZ ddlmZ G d� de� Zy)� )�List�Union� )�
CharSetProber)�ProbingStatec � � � e Zd ZdZdZdZd� fd�Zd� fd�Zede fd�� Z
ede fd �� Zdefd
�Z
defd�Zdefd�Zdefd
�Zdefd�Zdefd�Zdee ddfd�Zdee ddfd�Zdeeef defd�Zedefd�� Zdefd�Z� xZS )�
UTF1632Proberad
This class simply looks for occurrences of zero bytes, and infers
whether the file is UTF16 or UTF32 (low-endian or big-endian)
For instance, files looking like ( [nonzero] )+
have a good probability to be UTF32BE. Files looking like ( [nonzero] )+
may be guessed to be UTF16BE, and inversely for little-endian varieties.
� g�G�z�?�returnNc � �� t �| � � d| _ dgdz | _ dgdz | _ t
j | _ g d�| _ d| _ d| _
d| _ d| _ d| _
d| _ | j � y )Nr � �r r r r F)�super�__init__�position�zeros_at_mod�nonzeros_at_modr � DETECTING�_state�quad�invalid_utf16be�invalid_utf16le�invalid_utf32be�invalid_utf32le�'first_half_surrogate_pair_detected_16be�'first_half_surrogate_pair_detected_16le�reset��self� __class__s ��7/usr/lib/python3/dist-packages/chardet/utf1632prober.pyr zUTF1632Prober.__init__) s~ �� �
������
��C�!�G��� !�s�Q�w���"�,�,��� �� �$���$���$���$���7<��4�7<��4��
�
�� c �� �� t �| � � d| _ dgdz | _ dgdz | _ t
j | _ d| _ d| _ d| _
d| _ d| _ d| _
g d�| _ y )Nr r
Fr )r r r r r r r r r r r r r r r r s �r! r zUTF1632Prober.reset8 ss �� �
��
����
��C�!�G��� !�s�Q�w���"�,�,���$���$���$���$���7<��4�7<��4� �� r" |