o
    Þý°j�  ã                   @  s¨   d dl mZ d dlZd dlZd dlZd dlZddlmZ 	d d!dd„Z	d"dd„Z
d"dd„Zej› ej› d� d¡Ze d¡ZejZe dej¡Zd#dd„Zd$dd„ZdS )%é    )ÚannotationsNé   )ÚBadDataúutf-8ÚstrictÚsústr | bytesÚencodingÚstrÚerrorsÚreturnÚbytesc                 C  s   t | tƒr|  ||¡} | S )N)Ú
isinstancer
   Úencode)r   r	   r   © r   úˆ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/itsdangerous/encoding.pyÚ
want_bytes   s   
r   Ústringc                 C  s   t | ƒ} t | ¡ d¡S )z^Base64 encode a string of bytes or text. The resulting bytes are
    safe to use in URLs.
    ó   =)r   Úbase64Úurlsafe_b64encodeÚrstrip)r   r   r   r   Úbase64_encode   s   r   c              
   C  sX   t | ddd�} | dt| ƒ d  7 } zt | ¡W S  ttfy+ } ztdƒ|‚d}~ww )zOBase64 decode a URL-safe string of bytes or text. The result is
    bytes.
    ÚasciiÚignore)r	   r   r   é   zInvalid base64-encoded dataN)r   Úlenr   Úurlsafe_b64decodeÚ	TypeErrorÚ
ValueErrorr   )r   Úer   r   r   Úbase64_decode   s   
€ÿr!   z-_=r   z>Qzt.Callable[[bytes], tuple[int]]ÚnumÚintc                 C  s   t | ƒ d¡S )Nó    )Ú_int_to_bytesÚlstrip)r"   r   r   r   Úint_to_bytes1   s   r'   Úbytestrc                 C  s   t |  dd¡ƒd S )Né   r$   r   )Ú_bytes_to_intÚrjust)r(   r   r   r   Úbytes_to_int5   s   r,   )r   r   )r   r   r	   r
   r   r
   r   r   )r   r   r   r   )r"   r#   r   r   )r(   r   r   r#   )Ú
__future__r   r   r   ÚstructÚtypingÚtÚexcr   r   r   r!   Úascii_lettersÚdigitsr   Ú_base64_alphabetÚStructÚ_int64_structÚpackr%   ÚcastÚunpackr*   r'   r,   r   r   r   r   Ú<module>   s     ÿ
	


