o
    Df
                     @   st   d dl Z d dlZd dlZdddZdddZdd	d
Zdd ZdddZdd Zdd Z	dd Z
dd Zdd ZdS )    Nutf-8strictc                 C   sV   | d u rd S t | tr| S t | tr| ||S t | ttfr't| ||S t| S N)
isinstancebytesstrencodeintfloatxcharseterrors r   P/home/ubuntu/webapp/venv/lib/python3.10/site-packages/authlib/common/encoding.pyto_bytes   s   

r   c                 C   s4   | d u s	t | tr| S t | tr| ||S t| S r   )r   r   r   decoder   r   r   r   
to_unicode   s
   
r   asciic                 C   s   t | tr| S | |S r   )r   r   r   )r   encodingr   r   r   	to_native   s   

r   c                 C   s
   t | S r   )jsonloadssr   r   r   
json_loads    s   
r   Fc                 C   s   t j| |ddS )N),:)ensure_ascii
separators)r   dumps)datar   r   r   r   
json_dumps$      r"   c                 C   s    | dt |  d  7 } t| S )N   =   )lenbase64urlsafe_b64decoder   r   r   r   r(   (   s   
r(   c                 C   s   t | dS )Nr$   )r'   urlsafe_b64encoderstripr   r   r   r   r)   -   r#   r)   c                 C   s>   t t| dd}tdt| |}tddd |D dS )Nr   )r   z%sB c                 S   s   g | ]}d | qS )z%02xr   ).0byter   r   r   
<listcomp>4   s    z!base64_to_int.<locals>.<listcomp>   )r(   r   structunpackr&   r	   join)r   r!   bufr   r   r   base64_to_int1   s   r4   c                 C   s8   | dk rt d| j|  d d ddd}tt|S )Nr   zMust be a positive integer      bigF)signed)
ValueErrorr   
bit_lengthr   r)   )numr   r   r   r   int_to_base647   s   r<   c                 C   s   t | tr	t| } tt| S r   )r   dictr"   r)   r   )textr   r   r   json_b64encode?   s   
r?   )r   r   )r   )F)r   r'   r0   r   r   r   r   r"   r(   r)   r4   r<   r?   r   r   r   r   <module>   s    



