o
    3˜Žj`  ã                   @   s¶   d dl Z d dlZd dlmZmZmZ d dlmZ e d¡Z	dd„ e
dƒD ƒZdZd	Zed
 Zee Zee d Zee Ze d¡Ze d¡Ze  d¡ZG dd„ dƒZG dd„ dƒZdS )é    N)Úascii_lettersÚascii_lowercaseÚdigits)ÚoverloadÚasciic                 C   s   h | ]}d |d›�  d¡’qS )ú%Ú02Xr   )Úencode)Ú.0Úi© r   úM/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/yarl/_quoting_py.pyÚ	<setcomp>   s    r   é   z:/?#[]@z!$'()*,ú+&=;z-._~s   [A-Z0-9][A-Z0-9]z[A-Fa-f0-9][A-Fa-f0-9]zutf-8c                   @   st   e Zd Zdddddœdedededed	d
f
dd„Zeded	efdd„ƒZeddd„ƒZded
B d	ed
B fdd„Zd
S )Ú_QuoterÚ FT)ÚsafeÚ	protectedÚqsÚrequoter   r   r   r   ÚreturnNc                C   s   || _ || _|| _|| _d S ©N)Ú_safeÚ
_protectedÚ_qsÚ_requote)Úselfr   r   r   r   r   r   r   Ú__init__   s   
z_Quoter.__init__Úvalc                 C   ó   d S r   r   ©r   r   r   r   r   Ú__call__$   ó   z_Quoter.__call__c                 C   r    r   r   r!   r   r   r   r"   &   r#   c                 C   sl  |d u rd S t |tƒstdƒ‚|sdS |jddd�}tƒ }tƒ }| j}|t7 }| js.|d7 }|| j7 }| d¡}d}|t	|ƒk �r(|| }|d	7 }|rÚ|t
v rS|d
 }| |¡ t	|ƒdkrÀ|d	d … }	t |	¡sw| d¡ | ¡  |d8 }q:ztt|d	d …  d¡dd�ƒ}
W n tyž   | d¡ | ¡  |d8 }Y q:w |
| jv rª| |¡ n|
|v r¶| t|
ƒ¡ n| |¡ | ¡  nt	|ƒdkrÙ|t	|ƒkrÙ| d¡ | ¡  |d	8 }q:|tdƒkrø| jrø| ¡  | |¡ |t	|ƒkr÷| d¡ q:| j�r|tdƒk�r| tdƒ¡ q:||v �r| |¡ q:| d|d›� d¡¡ |t	|ƒk sA| d¡}||k�r4|S |S )NúArgument should be strr   Úutf8Úignore)Úerrorsr   r   r   é   é    é   s   %25é   é   ©Úbaser   ú ú+r   )Ú
isinstanceÚstrÚ	TypeErrorr	   Ú	bytearrayr   ÚALLOWEDr   r   ÚlenÚBASCII_LOWERCASEÚappendÚ_IS_HEXÚmatchÚextendÚclearÚchrÚintÚdecodeÚ
ValueErrorÚordr   )r   r   ÚbvalÚretÚpctr   ÚbsafeÚidxÚchÚbufÚunquotedÚret2r   r   r   r"   (   s†   





"
ü







È
:
©r   Nr   N©Ú__name__Ú
__module__Ú__qualname__r2   Úboolr   r   r"   r   r   r   r   r      s*    úýüûú
ùr   c                   @   st   e Zd Zdddddœdededededd	f
d
d„Zededefdd„ƒZeddd„ƒZded	B ded	B fdd„Zd	S )Ú	_Unquoterr   F)r&   Úunsafer   Úplusr&   rR   r   rS   r   Nc                C   s0   || _ || _|| _|| _tƒ | _tdd�| _d S )NT)r   )Ú_ignoreÚ_unsafer   Ú_plusr   Ú_quoterÚ
_qs_quoter)r   r&   rR   r   rS   r   r   r   r   z   s   z_Unquoter.__init__r   c                 C   r    r   r   r!   r   r   r   r"   ‰   r#   z_Unquoter.__call__c                 C   r    r   r   r!   r   r   r   r"   ‹   r#   c                 C   sÄ  |d u rd S t |tƒstdƒ‚|sdS tƒ }g }d}|t|ƒk �rA|| }|d7 }|dkr×|t|ƒd kr×|||d … }t |¡r×tt|dd�gƒ}|d7 }z| 	|¡}W n@ t
y–   |d	 t|jƒd	  }	| ||	|d	 … ¡ | ¡  z| 	|¡}W n t
y“   | ||d	 |… ¡ Y Y qw Y nw |sšq| jr´|d
v r´|  |¡}
|
d u r®tdƒ‚| |
¡ n"|| jv s¾|| jv rÑ|  |¡}
|
d u rËtdƒ‚| |
¡ n| |¡ q|jrô|d t|jƒd	  }	| ||	|d … ¡ | ¡  |dk�r| j�s| j�r|| jv �r| d¡ n| d¡ q|| jv �r6| d¡ tt|ƒƒ ¡ dd … }|D ]}| |¡ �q,q| |¡ |t|ƒk s!|j�rT| |t|jƒ d	 d … ¡ d |¡}||k�r`|S |S )Nr$   r   r   r(   r   r+   r,   r-   r*   z+=&;zCannot quote Noner0   r/   )r1   r2   r3   Úutf8_decoderr6   Ú_IS_HEX_STRÚ	fullmatchÚbytesr>   r?   ÚUnicodeDecodeErrorÚbufferr8   Úresetr   rX   ÚRuntimeErrorrU   rT   rW   rV   ÚhexrA   ÚupperÚjoin)r   r   ÚdecoderrC   rF   rG   rD   ÚbrI   Ú	start_pctÚto_addÚhrJ   r   r   r   r"   �   sˆ   

þÿû	






Ê8

rK   rL   r   r   r   r   rQ   y   s*    úýüûú
ùrQ   )ÚcodecsÚreÚstringr   r   r   Útypingr   r	   r7   ÚrangeÚBPCT_ALLOWEDÚ
GEN_DELIMSÚSUB_DELIMS_WITHOUT_QSÚ
SUB_DELIMSÚRESERVEDÚ
UNRESERVEDr5   Úcompiler9   rZ   ÚgetincrementaldecoderrY   r   rQ   r   r   r   r   Ú<module>   s"    



c