Ë
    RPf’  ã                   óÎ   — U d dl Z d dlZd dlZd dlZd dlZd dlmZmZ  G d„ d«      Z e«       Z	ee   e
d<   	  ej                  «       Zdefd„Zded	edefd
„Zy# e$ r dZY Œw xY w)é    N)ÚAnyÚOptionalc                   ó€   — e Zd Zddee   fd„Zdeddfd„Zdeddfd„Zdd„Zde	fd	„Z
de	fd
„Zde	fd„Zde	de	de	fd„Zy)ÚEntropyPoolNÚseedc                 ó^  — d| _         d | _        d| _        t        j                  «       | _        t        j                  «       | _        d| _	        t        d| j                  z  «      | _        |�2| j                  |«       d| _        t        j                  «       | _        y d| _        d| _        y )Nr   é   ó    TF)Ú
pool_indexÚdigestÚ	next_byteÚ	threadingÚLockÚlockÚhashlibÚsha1ÚhashÚhash_lenÚ	bytearrayÚpoolÚ_stirÚseededÚosÚgetpidÚseed_pid)Úselfr   s     úE/var/www/fastapitest/venv/lib/python3.12/site-packages/dns/entropy.pyÚ__init__zEntropyPool.__init__    s‚   € ØˆŒØ+/ˆŒØˆŒÜ—N‘NÓ$ˆŒ	Ü—L‘L“NˆŒ	ØˆŒÜ˜e d§m¡mÑ3Ó4ˆŒ	ØÐØ�J‰J�tÔØˆDŒKÜŸI™I›KˆD�MàˆDŒKØˆD�Mó    ÚentropyÚreturnc                 óÈ   — |D ]]  }| j                   | j                  k(  rd| _         |dz  }| j                  | j                   xx   |z  cc<   | xj                   dz  c_         Œ_ y )Nr   éÿ   é   )r   r   r   )r   r    ÚcÚbs       r   r   zEntropyPool._stir0   sW   € Øò 	!ˆAØ�‰ $§-¡-Ò/Ø"#�”Ø�D‘ˆAØ�I‰I�d—o‘oÓ&¨!Ñ+Ó&Ø�OŠO˜qÑ ŽOñ	!r   c                 óh   — | j                   5  | j                  |«       d d d «       y # 1 sw Y   y xY w©N)r   r   )r   r    s     r   ÚstirzEntropyPool.stir8   s*   € Ø�Y‰Yñ 	 Ø�J‰J�wÔ÷	 ÷ 	 ñ 	 ús   �(¨1c                 ó  — | j                   r!| j                  t        j                  «       k7  rZ	 t        j                  d«      }d| _         t        j                  «       | _        d | _        t        «      }| j                  |«       y y # t
        $ rs 	 t        ddd«      5 }|j                  d«      }d d d «       n# 1 sw Y   nxY wn:# t
        $ r. t        t        j                  «       «      j                  «       }Y nw xY wY ŒÀw xY w)Né   z/dev/urandomÚrbr   T)r   r   r   r   ÚurandomÚ	ExceptionÚopenÚreadÚstrÚtimeÚencoder   r   r   )r   r   Úrs      r   Ú_maybe_seedzEntropyPool._maybe_seed<   sÐ   € Ø�{Š{˜dŸm™m¬r¯y©y«{Ò:ð5Ü—z‘z "“~�ð ˆDŒKÜŸI™I›KˆDŒMØˆDŒKÜ˜T“?ˆDØ�J‰J�tÕð ;øô ò 5ð5Ü˜n¨d°AÓ6ð *¸!Ø Ÿv™v b›z˜÷*÷ *ñ *üä ò 5ÜœtŸy™y›{Ó+×2Ñ2Ó4’Dð5üð	5úsM   ¯B	 Â		DÂCÂ B;Â2	CÂ;C	Ã CÃDÃ4C?Ã<DÃ>C?Ã?DÄDc                 ó   — | j                   5  | j                  «        | j                  �| j                  | j                  k(  rx| j
                  j                  t        | j                  «      «       t        | j
                  j                  «       «      | _        | j                  | j                  «       d| _        | j                  | j                     }| xj                  dz  c_        d d d «       |S # 1 sw Y   S xY w)Nr   r$   )r   r5   r   r   r   r   ÚupdateÚbytesr   r   r   )r   Úvalues     r   Úrandom_8zEntropyPool.random_8L   s·   € Ø�Y‰Yñ 	 Ø×ÑÔØ�{‰{Ð" d§n¡n¸¿¹Ò&EØ—	‘	× Ñ ¤ t§y¡yÓ!1Ô2Ü'¨¯	©	×(8Ñ(8Ó(:Ó;�”Ø—
‘
˜4Ÿ;™;Ô'Ø!"�”Ø—K‘K §¡Ñ/ˆEØ�NŠN˜aÑ�N÷	 ð ˆ÷	 ð ˆús   �CC3Ã3C=c                 óJ   — | j                  «       dz  | j                  «       z   S )Né   )r:   ©r   s    r   Ú	random_16zEntropyPool.random_16X   s   € Ø�}‰}‹ Ñ$ t§}¡}£Ñ6Ð6r   c                 óJ   — | j                  «       dz  | j                  «       z   S )Né   )r>   r=   s    r   Ú	random_32zEntropyPool.random_32[   s    € Ø�~‰~Ó %Ñ'¨$¯.©.Ó*:Ñ:Ð:r   ÚfirstÚlastc                 óÄ   — ||z
  dz   }|dkD  rt        d«      ‚|dkD  r| j                  }d}n"|dkD  r| j                  }d}n| j                  }d}|| |«       z  |dz   z  z   S )	Nr$   l        ztoo bigr@   l   ÿÿ r<   iÿÿ  r#   )Ú
ValueErrorrA   r>   r:   )r   rB   rC   ÚsizeÚrandÚmaxs         r   Úrandom_betweenzEntropyPool.random_between^   su   € Ø�e‰|˜aÑˆØ�*ÒÜ˜YÓ'Ð'Ø�%Š<Ø—>‘>ˆDØ‰CØ�CŠZØ—>‘>ˆDØ‰Cà—=‘=ˆDØˆCØ�t™d›f‘}¨¨q©Ñ1Ñ1Ð1r   r(   )r!   N)Ú__name__Ú
__module__Ú__qualname__r   r8   r   r   r)   r5   Úintr:   r>   rA   rI   © r   r   r   r      s{   „ ñ˜X e™_ó ð !˜Uð ! tó !ð ˜Eð   dó  óð 
˜#ó 
ð7˜3ó 7ð;˜3ó ;ð2 Cð 2¨sð 2°sô 2r   r   Úsystem_randomr!   c                  ób   — t         �t         j                  dd«      S t        j                  «       S )Nr   r@   )rO   Ú	randranger   r>   rN   r   r   r>   r>   w   s(   € ÜÐ Ü×&Ñ& q¨%Ó0Ð0ä�~‰~ÓÐr   rB   rC   c                 ól   — t         �t         j                  | |dz   «      S t        j                  | |«      S )Nr$   )rO   rQ   r   rI   )rB   rC   s     r   ÚbetweenrS   ~   s2   € ÜÐ Ü×&Ñ& u¨d°Q©hÓ7Ð7ä×"Ñ" 5¨$Ó/Ð/r   )r   r   Úrandomr   r2   Útypingr   r   r   r   Ú__annotations__ÚSystemRandomrO   r.   rM   r>   rS   rN   r   r   ú<module>rX      sŠ   ðô$ Û 	Û Û Û ß  ÷Q2ñ Q2ñh ƒ}€à˜‰}Ó ðØ'�F×'Ñ'Ó)€Mð
 �3ó  ð0�3ð 0˜cð 0 cô 0øð ò Ø‚Mðús   ¸A ÁA$Á#A$