3 \��@s�ddlZdd�Zdd�Zdd�Zdd �Zd d �Zd Zd d�Zdd�Zdd�Z dd�Z dd�Z dd�Z dd�Z Gdd�dej�ZGdd�dej�ZGdd �d ej�ZGd!d"�d"eej�ZGd#d$�d$eej�Zd%d&�ZdS)'�NcCsTt�}t�}x2|D]*}t|�dkr2|jt|��q|j|�qWt|�}t|�|fS)N�)� bytearray�set�ord�append�add�sorted�bytes)�str�base�extended�c�r�*/usr/lib64/python3.6/encodings/punycode.py� segregate s  rcCs*d}x |D]}t|�|kr |d7}q W|S)Nr�)r)r �max�resr rrr� selective_lens    rcCsRt|�}xD|d7}||krdS||}||kr:|d|fS||kr |d7}q WdS)Nr�����r)rr)�len)r �char�index�pos�lr rrr�selective_finds rc Cs�d}g}d}x~|D]v}d}}t|�}t||�} | d||} xBt||||�\}}|dkr^P| ||7} |j| d�|}d} qBW|}qW|S)Nrrrrrr)rrrr) r r Zoldchar�resultZoldindexr rrrZcurlen�deltarrr�insertion_unsort0s$   rcCs,d|d|}|dkrdS|dkr(dS|S)N�$r�r)�j�biasrrrr�TFs r#s$abcdefghijklmnopqrstuvwxyz0123456789cCsrt�}d}xbt||�}||kr4|jt|�t|�S|jt|||d|�||d|}|d7}q WdS)Nrrr)rr#r�digitsr )�Nr"rr!�trrr�generate_generalized_integerNs r'cCs\|r|d}n|d}|||7}d}x|dkrB|d}|d7}q(W|d||d}|S)Ni��ri��#r�&r)r�first�numcharsZ divisionsr"rrr�adapt[s    r-cCsTt�}d}x@t|�D]4\}}t||�}|j|�t||dk||d�}qWt|�S)N�Hrr)r� enumerater'�extendr-r )Zbaselen�deltasrr"Zpointsr�srrr�generate_integersjs  r3cCs8t|�\}}t||�}tt|�|�}|r4|d|S|S)N�-)rrr3r)�textr r r1rrr�punycode_encodeus    r6c Cs�d}d}d}x�yt||�}Wn,tk rJ|dkr>td��|ddfSX|d7}d|kofdknrv|d}nDd|ko�dknr�|d }n"|dkr�td ||��n|dfSt||�} |||7}|| kr�||fS|d | }|d7}qWdS) Nrr�strictzincomplete punicode string�A�Z�0�9�z Invalid extended code point '%s'r)r� IndexError� UnicodeErrorr#) r �extposr"�errorsr�wr!rZdigitr&rrr�decode_generalized_numbers2     rBc Cs�d}d }d}d}x�|t|�kr�t||||�\}}|dkr<|S||d7}||t|�d7}|dkr�|dkrxtd|��td�}|t|�d}|d|�t|�||d�}t||dkt|��}|}qW|S) Nrrr.ri��r7zInvalid character U+%x�?r)rrBr>r�chrr-) r r r@rrr"r?Znewposrrrr�insertion_sort�s(    rEcCs�t|t�r|jd�}t|t�r&t|�}|jd�}|dkrLd}t|d�j�}n.t|d|�d|�}t||dd�d�j�}t|||�S)N�asciir4r�r)� isinstancer �encode� memoryviewr �rfind�upperrE)r5r@rr r rrr�punycode_decode�s    rMc@s eZdZddd�Zddd�ZdS) �Codecr7cCst|�}|t|�fS)N)r6r)�self�inputr@rrrrrI�sz Codec.encodecCs*|dkrtd|��t||�}|t|�fS)Nr7�replace�ignorezUnsupported error handling )r7rQrR)r>rMr)rOrPr@rrrr�decode�s  z Codec.decodeN)r7)r7)�__name__� __module__� __qualname__rIrSrrrrrN�s rNc@seZdZddd�ZdS)�IncrementalEncoderFcCst|�S)N)r6)rOrP�finalrrrrI�szIncrementalEncoder.encodeN)F)rTrUrVrIrrrrrW�srWc@seZdZddd�ZdS)�IncrementalDecoderFcCs$|jdkrtd|j��t||j�S)Nr7rQrRzUnsupported error handling )r7rQrR)r@r>rM)rOrPrXrrrrS�s zIncrementalDecoder.decodeN)F)rTrUrVrSrrrrrY�srYc@s eZdZdS)� StreamWriterN)rTrUrVrrrrrZ�srZc@s eZdZdS)� StreamReaderN)rTrUrVrrrrr[�sr[c Cs tjdt�jt�jttttd�S)NZpunycode)�namerIrS�incrementalencoder�incrementaldecoder� streamwriter� streamreader) �codecs� CodecInforNrIrSrWrYrZr[rrrr� getregentry�src)rarrrrr#r$r'r-r3r6rBrErMrNrWrYrZr[rcrrrr�s&