o
    üÞh^  ã                   @   sÎ   d dl Z d dlZd dlmZmZmZ ddlmZmZm	Z	m
Z
mZ e d¡ZG dd„ de jƒZG dd	„ d	e jƒZG d
d„ de jƒZG dd„ dee jƒZG dd„ dee jƒZdedee j fdd„Ze  e¡ dS )é    N)ÚAnyÚOptionalÚTupleé   )Ú	IDNAErrorÚalabelÚdecodeÚencodeÚulabelu   [.ã€‚ï¼Žï½¡]c                	   @   sL   e Zd Zd
dededeeef fdd„Zd
dededeeef fdd„Zd	S )ÚCodecÚstrictÚdataÚerrorsÚreturnc                 C   ó.   |dkrt d |¡ƒ‚|sdS t|ƒt|ƒfS )Nr   úUnsupported error handling "{}"©ó    r   )r   Úformatr	   Úlen©Úselfr   r   © r   úJ/var/www/html/premium_crap/venv/lib/python3.10/site-packages/idna/codec.pyr	      ó
   zCodec.encodec                 C   r   )Nr   r   ©Ú r   )r   r   r   r   r   r   r   r   r      r   zCodec.decodeN)r   )	Ú__name__Ú
__module__Ú__qualname__Ústrr   ÚbytesÚintr	   r   r   r   r   r   r   
   s     $	r   c                
   @   s.   e Zd Zdedededeeef fdd„ZdS )ÚIncrementalEncoderr   r   Úfinalr   c           
      C   s°   |dkrt d |¡ƒ‚|sdS t |¡}d}|r+|d s"d}|d= n	|s+|d= |r+d}g }d}|D ]}| t|ƒ¡ |r@|d7 }|t|ƒ7 }q1d |¡| }	|t|ƒ7 }|	|fS )	Nr   r   r   r   éÿÿÿÿó   .r   r   )r   r   Ú_unicode_dots_reÚsplitÚappendr   r   Újoin)
r   r   r   r$   ÚlabelsÚtrailing_dotÚresultÚsizeÚlabelÚresult_bytesr   r   r   Ú_buffer_encode   s0   
z!IncrementalEncoder._buffer_encodeN)	r   r   r   r    Úboolr   r!   r"   r1   r   r   r   r   r#      ó    &r#   c                
   @   s.   e Zd Zdedededeeef fdd„ZdS )ÚIncrementalDecoderr   r   r$   r   c           
      C   sÄ   |dkrt d |¡ƒ‚|sdS t|tƒst|dƒ}t |¡}d}|r5|d s,d}|d= n	|s5|d= |r5d}g }d}|D ]}| t|ƒ¡ |rJ|d	7 }|t|ƒ7 }q;d 	|¡| }	|t|ƒ7 }|	|fS )
Nr   r   r   Úasciir   r%   Ú.r   r   )
r   r   Ú
isinstancer    r'   r(   r)   r
   r   r*   )
r   r   r   r$   r+   r,   r-   r.   r/   Ú
result_strr   r   r   Ú_buffer_decodeA   s4   


z!IncrementalDecoder._buffer_decodeN)	r   r   r   r   r    r2   r   r"   r9   r   r   r   r   r4   @   r3   r4   c                   @   ó   e Zd ZdS )ÚStreamWriterN©r   r   r   r   r   r   r   r;   d   ó    r;   c                   @   r:   )ÚStreamReaderNr<   r   r   r   r   r>   h   r=   r>   Únamer   c              	   C   s,   | dkrd S t j| tƒ jtƒ jttttd�S )NÚidna2008)r?   r	   r   ÚincrementalencoderÚincrementaldecoderÚstreamwriterÚstreamreader)	ÚcodecsÚ	CodecInfor   r	   r   r#   r4   r;   r>   )r?   r   r   r   Úsearch_functionl   s   ùrG   )rE   ÚreÚtypingr   r   r   Úcorer   r   r   r	   r
   Úcompiler'   r   ÚBufferedIncrementalEncoderr#   ÚBufferedIncrementalDecoderr4   r;   r>   r    rF   rG   Úregisterr   r   r   r   Ú<module>   s    
"$