o
    ÒèFh  ã                   @   sŠ   d dl Z d dlZd dlmZmZmZ e ¡ Ze jd  dk r5d dl	m
Z
mZ ddd„Zddd	„Zd
d„ ZdS ddd„Zddd	„Zdd„ ZdS )é    N)Úoct2intÚnullÚensureStringé   )Úa2b_hexÚb2a_hexFc                 C   sF   | sdS t tt| ƒƒdƒ}|r!t| d ƒd@ r!|dt| ƒd >  S |S )Nr   é   é€   é   é   )Úlongr   r   r   Úlen)ÚoctetsÚsignedÚvalue© r   úN/var/www/html/loop/nvenv/lib/python3.10/site-packages/pyasn1/compat/integer.pyÚ
from_bytes   s   r   c                 C   s4  | dk r|rt | ƒ}d|> }| | | }ntdƒ‚| dkr#|dkr#tS d}| }t|ƒdd … }| d¡r:|d d… }t|ƒd@ rDd| }| |ksJ|rtt|ƒd }t||ƒ}||krhd	|| d d
 d  | }n|rt|| dkrttdƒ‚t|d d… dƒ}	|r”|	d@ rŒ| dkr‹d	| }n| dk r”d| }t|ƒ}
|
S )Nr   r
   z&can't convert negative int to unsignedé   ÚLéÿÿÿÿÚ0é   Ú00r   é   zint too big to convertr   r	   Úff)	Ú	bitLengthÚOverflowErrorr   ÚhexÚendswithr   ÚmaxÚintr   )r   r   ÚlengthÚbitsÚmaxValueÚvalueToEncodeÚhexValueÚ	hexLengthÚ	padLengthÚ
firstOctetÚoctets_valuer   r   r   Úto_bytes   s@   

€r+   c                 C   sF   t t| ƒƒ}t|ƒd }| d¡r|d8 }|d@ r|d7 }|d9 }|S )Nr   r   r
   r   )r   Úabsr   r   )Únumberr&   r#   r   r   r   r   M   s   
r   c                 C   s   t jt| ƒd|d�S )NÚbig©r   )r!   r   Úbytes)r   r   r   r   r   r   [   s   c                 C   sJ   t |  ¡ |ƒ}|r|d dkr|d7 }| j|d |d rdpd d|d�S )Nr   r   r
   r.   r/   )r    Ú
bit_lengthr+   )r   r   r"   r   r   r   r+   ^   s   $c                 C   s   t | ƒ ¡ S )N)r!   r1   )r-   r   r   r   r   f   s   )F)Fr   )ÚsysÚplatformÚpyasn1.compat.octetsr   r   r   Úpython_implementationÚimplementationÚversion_infoÚbinasciir   r   r   r+   r   r   r   r   r   Ú<module>   s   

0

