U ��.e� �@s�ddlmZmZmZmZmZddlZddlZe�d�Z Gdd�dej �Z Gdd�dej �Z Gd d �d ej �ZGd d �d e ej�ZGd d�de ej�Zdd�ZdS)�)�encode�decode�alabel�ulabel� IDNAError�Nu [.。.。]c@s eZdZddd�Zddd�ZdS) �Codec�strictcCs.|dkrtd�|���|sdSt|�t|�fS�Nr � Unsupported error handling "{0}"��r)r�formatr�len��self�data�errors�r�:/usr/lib/python3.8/site-packages/pip/_vendor/idna/codec.pyr s z Codec.encodecCs.|dkrtd�|���|sdSt|�t|�fSr )rrrrrrrrrs z Codec.decodeN)r )r )�__name__� __module__� __qualname__rrrrrrrs rc@seZdZdd�ZdS)�IncrementalEncoderc Cs�|dkrtd�|���|sdSt�|�}d}|rV|dsDd}|d=n|sV|d=|rVd}g}d}|D]*}|�t|��|r�|d7}|t|�7}qbd�|�|}|t|�7}||fS) Nr r r r ������.rr)rr�_unicode_dots_re�split�appendrr�join� rrr�final�labelsZ trailing_dot�result�sizeZlabelrrr�_buffer_encodes0  z!IncrementalEncoder._buffer_encodeN)rrrr%rrrrrsrc@seZdZdd�ZdS)�IncrementalDecoderc Cs�|dkrtd�|���|sdSt|t�r4t�|�}nt|�}t|d�|�d�}d}|r~|dsld}|d=n|s~|d=|r~d}g}d}|D]*}|�t|��|r�|d 7}|t |�7}q�d� |�|}|t |�7}||fS) Nr r r �asciirr rrr) rr� isinstanceZunicoderr�strrrrrr rrr�_buffer_decode?s8     z!IncrementalDecoder._buffer_decodeN)rrrr*rrrrr&>sr&c@s eZdZdS)� StreamWriterN�rrrrrrrr+gsr+c@s eZdZdS)� StreamReaderNr,rrrrr-jsr-c Cs tjdt�jt�jttttd�S)NZidna)�namerr�incrementalencoder�incrementaldecoder� streamwriter� streamreader) �codecs� CodecInforrrrr&r+r-rrrr� getregentryms�r5)Zcorerrrrrr3�re�compilerr�BufferedIncrementalEncoderr�BufferedIncrementalDecoderr&r+r-r5rrrr�s !)