
    ¹Mc*
                    z    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   ZdZdZi Zded<   ddZefddddZdS )    )annotations)Sequence)ascii_lettersdigits	hexdigits)quotez;/?:@&=+$,-_.!~*'()#z	-_.!~*'()zdict[str, list[str]]encode_cacheexcludestrreturnSequence[str]c                   | t           v rt           |          S g }|t           | <   t          d          D ]z}t          |          }|t          v r|                    |           0|                    ddt          |          dd                                          z   dd          z              {t          t          |                     D ] }| |         |t          | |                   <   !|S )N   %0   )	r	   rangechrASCII_LETTERS_AND_DIGITSappendhexupperlenord)r
   cacheichs       //usr/lib/python3/dist-packages/mdurl/_encode.pyget_encode_cacher       s    ,G$$E!L3ZZ @ @VV)))LLLLc!ffQRRj&6&6&8&8 8"##>>????3w<<   , ,!(c'!*ooL    T)keep_escapedstringr"   boolc                  d}t          |          }t          |           }d}||k     r#t          | |                   }|rQ|dk    rK|dz   |k     rBt          d | |dz   |dz            D                       r|| ||dz            z  }|dz  }|dz  }o|dk     r|||         z  }|dz  }|d	k    rz|d
k    rt|d	k    rb|dk    r\|dz   |k     rSt          | |dz                      }|dk    r5|d
k    r/|t	          | |         | |dz            z             z  }|dz  }|dz  }|dz  }|dz  }|t	          | |                   z  }|dz  }||k     #|S )N r   %   r   c              3  (   K   | ]}|t           v V  d S )N)r   ).0cs     r   	<genexpr>zencode.<locals>.<genexpr>;   s&      AAa1	>AAAAAAr!         r   i   i  i  i   z	%EF%BF%BD)r    r   r   allencode_uri_component)	r#   r
   r"   resultr   lr   code	next_codes	            r   encoder4   -   s    FW%%EFA	A
a%%6!9~~  	DDLLQUQYYAA6!a%!a%-+@AAAAA &QU++QQ#::eDk!FFA6>>dfnnv~~$&..QUQYYq1u..	&&9+>+>26!9va!e}3LMMMFFAFAk!FFA&vay111	Q; a%%> Mr!   N)r
   r   r   r   )r#   r   r
   r   r"   r$   r   r   )
__future__r   collections.abcr   r#   r   r   r   urllib.parser   r/   r   ENCODE_DEFAULT_CHARSENCODE_COMPONENT_CHARSr	   __annotations__r    r4    r!   r   <module>r<      s    " " " " " " " $ $ $ $ $ $ 3 3 3 3 3 3 3 3 3 3 6 6 6 6 6 6(61 - $ %' ' ' ' '
   : !5(NR( ( ( ( ( ( ( (r!   