§
    jŠtja
  ã                   ój   — d Z ddlZddlZddlmZmZ dedefd„Zdedefd„Z	dedefd„Z
d	edefd
„ZdS )z(Functions for generating random numbers.é    N)ÚcommonÚ	transformÚnbitsÚreturnc                 óâ   — t          | d¦  «        \  }}t          j        |¦  «        }|dk    rAt          t          j        d¦  «        ¦  «        }|d|z
  z  }t	          j        d|¦  «        |z   }|S )z�Reads 'nbits' random bits.

    If nbits isn't a whole number of bytes, an extra byte will be appended with
    only the lower bits set.
    é   r   é   ÚB)ÚdivmodÚosÚurandomÚordÚstructÚpack)r   ÚnbytesÚrbitsÚ
randomdataÚrandomvalues        úI/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/rsa/randnum.pyÚread_random_bitsr      sr   € õ ˜5 !Ñ$Ô$�M€FˆEõ ”˜FÑ#Ô#€Jð ˆq‚y€yÝ�"œ* Q™-œ-Ñ(Ô(ˆØ˜˜E™	Ñ!ˆÝ”[  kÑ2Ô2°ZÑ?ˆ
àÐó    c                 ób   — t          | ¦  «        }t          j        |¦  «        }|d| dz
  z  z  }|S )z3Reads a random integer of approximately nbits bits.r	   )r   r   Ú	bytes2int)r   r   Úvalues      r   Úread_random_intr   .   s;   € õ " %Ñ(Ô(€JÝÔ 
Ñ+Ô+€Eð 
ˆQ�5˜1‘9ÑÑ€Eà€Lr   c                 ó*   — t          | ¦  «        }|dz  S )zhReads a random odd integer of approximately nbits bits.

    >>> read_random_odd_int(512) & 1
    1
    r	   )r   )r   r   s     r   Úread_random_odd_intr   ;   s   € õ ˜EÑ"Ô"€Eð �1‰9Ðr   Úmaxvaluec                 óŒ   — t          j        | ¦  «        }d}	 t          |¦  «        }|| k    rn|dz  dk    r|r|dz  }|dz  }Œ,|S )zÞReturns a random integer x with 1 <= x <= maxvalue

    May take a very long time in specific situations. If maxvalue needs N bits
    to store, the closer maxvalue is to (2 ** N) - 1, the faster this function
    is.
    r   Té
   r	   )r   Úbit_sizer   )r   r!   Útriesr   s       r   Úrandintr#   H   si   € õ Œ˜xÑ(Ô(€Hà€Eð
Ý Ñ)Ô)ˆØ�HÒÐØà�2‰:˜Š?ˆ?˜uˆ?ð ˜‰MˆHØ�‰
ˆð
ð €Lr   )Ú__doc__r   r   Úrsar   r   ÚintÚbytesr   r   r   r#   © r   r   ú<module>r)      sË   ðð /Ð .ð 
€	€	€	Ø €€€à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ð˜Cð  Eð ð ð ð ð*
˜3ð 
 3ð 
ð 
ð 
ð 
ð
˜sð 
 sð 
ð 
ð 
ð 
ð�cð ˜cð ð ð ð ð ð r   