U
    ”ªSh*
  ã                   @  sˆ   U d dl mZ d dlmZ d dlmZmZmZ d dlm	Z
 ee ZdZdZi Zded< d	d
dœdd„Zefddœd	d	dd	dœdd„ZdS )é    )Úannotations)ÚSequence)Úascii_lettersÚdigitsÚ	hexdigits)Úquotez;/?:@&=+$,-_.!~*'()#z	-_.!~*'()zdict[str, list[str]]Úencode_cacheÚstrzSequence[str])ÚexcludeÚreturnc                 C  sš   | t krt |  S g }|t | < tdƒD ]J}t|ƒ}|tkrD| |¡ q$| ddt|ƒdd …  ¡  dd …  ¡ q$tt| ƒƒD ]}| | |t| | ƒ< q||S )Né€   ú%Ú0é   éþÿÿÿ)	r   ÚrangeÚchrÚASCII_LETTERS_AND_DIGITSÚappendÚhexÚupperÚlenÚord)r
   ÚcacheÚiÚch© r   ú@/root/rtd-docs/venv/lib/python3.8/site-packages/mdurl/_encode.pyÚget_encode_cache   s    ,r   T)Úkeep_escapedÚbool)Ústringr
   r   r   c          	      C  sd  d}t |ƒ}t| ƒ}d}||k r`t| | ƒ}|rŽ|dkrŽ|d |k rŽtdd„ | |d |d … D ƒƒrŽ|| ||d … 7 }|d7 }|d7 }q|d	k r¬||| 7 }|d7 }q|d
krF|dkrF|d
kr4|dkr4|d |k r4t| |d  ƒ}|dkr4|dkr4|t| | | |d   ƒ7 }|d7 }|d7 }q|d7 }|d7 }q|t| | ƒ7 }|d7 }q|S )NÚ r   é%   r   c                 s  s   | ]}|t kV  qd S )N)r   )Ú.0Úcr   r   r   Ú	<genexpr>;   s     zencode.<locals>.<genexpr>é   é   r   i Ø  iÿß  iÿÛ  i Ü  z	%EF%BF%BD)r   r   r   ÚallÚencode_uri_component)	r!   r
   r   Úresultr   Úlr   ÚcodeZ	next_coder   r   r   Úencode-   s<    
""
r.   N)Ú
__future__r   Úcollections.abcr   r!   r   r   r   Úurllib.parser   r*   r   ZENCODE_DEFAULT_CHARSZENCODE_COMPONENT_CHARSr   Ú__annotations__r   r.   r   r   r   r   Ú<module>   s    ÿÿ