Ë
    V.j§E  ã                   ób  — d dl mZ d dlZd dlmZmZ d dlmZ 	 e 	 d dlmZmZ dZdZeser ee e ed	«      «      fz   «      Zd dlZd dlZd dlZd	d
lmZ  G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#erd„ Z$nerd„ Z$nejJ                  dk\  rd„ Z$nd„ Z$	 ejL                  Z'd„ Z&d „ Z)d!„ Z*d"„ Z+d#„ Z,d$„ Z-d%„ Z.d&„ Z/d'„ Z0d(„ Z1d)„ Z2d*„ Z3d+„ Z4g d,¢Z5d a6y# e	$ r e
ZY Œßw xY w# e$ r dZ	 d dlmZ dZn# e$ r dZY nw xY wY Œöw xY w# e($ r d„ Z'Y Œiw xY w)-é    )ÚdivisionN)Úinteger_typesÚPY2)Úreduce)ÚpowmodÚmpzTF©r   é   )Ú
bit_lengthc                   ó   — e Zd ZdZy)ÚErrorz)Base class for exceptions in this module.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úTC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\ecdsa/numbertheory.pyr   r   /   s   „ Ù3àr   r   c                   ó   — e Zd Zy)ÚJacobiErrorN©r   r   r   r   r   r   r   r   5   ó   „ Ør   r   c                   ó   — e Zd Zy)ÚSquareRootErrorNr   r   r   r   r   r   9   r   r   r   c                   ó   — e Zd Zy)ÚNegativeExponentErrorNr   r   r   r   r   r   =   r   r   r   c                 óv   — t        j                  dt        «       |dk  rt        d|z  «      ‚t	        | ||«      S )z+Raise base to exponent, reducing by moduluszRFunction is unused in library code. If you use this code, change to pow() builtin.r   z#Negative exponents (%d) not allowed)ÚwarningsÚwarnÚDeprecationWarningr   Úpow)ÚbaseÚexponentÚmoduluss      r   Úmodular_expr%   A   sG   € ô ‡M�Mð	#äôð
 �!‚|Ü#Ø1°HÑ<ó
ð 	
ô ˆt�X˜wÓ'Ð'r   c                 ó   — |d   dk(  sJ ‚t        |«      dkD  sJ ‚t        | «      t        |«      k\  r\| d   dk7  r7t        dt        |«      dz   «      D ]  }| |    | d   ||    z  z
  |z  | | <   Œ | dd } t        | «      t        |«      k\  rŒ\| S )z�Reduce poly by polymod, integer arithmetic modulo p.

    Polynomials are represented as lists of coefficients
    of increasing powers of x.éÿÿÿÿr
   r   é   )ÚlenÚxrange)ÚpolyÚpolymodÚpÚis       r   Úpolynomial_reduce_modr/   P   s«   € ð �2‰;˜!ÒÐÐäˆw‹<˜!ÒÐÐä
ˆd‹)”s˜7“|Ò
#Ø�‰8�qŠ=Ü˜Aœs 7›|¨aÑ/Ö0�Ø  ! ™H t¨B¡x°'¸1¸"±+Ñ'=Ñ=ÀÑB��a�R’ð 1à�A�bˆzˆô	 ˆd‹)”s˜7“|Ó
#ð €Kr   c                 óö   — t        | «      t        |«      z   dz
  dgz  }t        t        | «      «      D ]8  }t        t        |«      «      D ]  }|||z      | |   ||   z  z   |z  |||z   <   Œ! Œ: t        |||«      S )z—Polynomial multiplication modulo a polynomial over ints mod p.

    Polynomials are represented as lists of coefficients
    of increasing powers of x.r
   r   )r)   r*   r/   )Úm1Úm2r,   r-   Úprodr.   Újs          r   Úpolynomial_multiply_modr5   g   s„   € ô �‹G”c˜"“gÑ Ñ! a SÑ(€Dô ”C˜“GŽ_ˆÜœ˜B›–ˆAØ  A¡™;¨¨A©°°A±©Ñ6¸!Ñ;ˆD��Q‘ŠKñ !ð ô !  w°Ó2Ð2r   c                 ó°   — ||k  sJ ‚|dk(  rdgS | }|}|dz  dk(  r|}ndg}|dkD  r/|dz  }t        ||||«      }|dz  dk(  rt        ||||«      }|dkD  rŒ/|S )z—Polynomial exponentiation modulo a polynomial over ints mod p.

    Polynomials are represented as lists of coefficients
    of increasing powers of x.r   r
   r(   )r5   )r"   r#   r,   r-   ÚGÚkÚss          r   Úpolynomial_exp_modr:      sŠ   € ð �aŠ<Ðˆ<à�1‚}Øˆsˆ
à€AØ€AØˆ1�u�‚zØ‰àˆCˆà
ˆaŠ%Ø�‰FˆÜ# A q¨'°1Ó5ˆØˆq‰5�AŠ:Ü'¨¨1¨g°qÓ9ˆAð	 ˆa‹%ð €Hr   c                 ó:  — |dk\  st        d«      ‚|dz  dk(  st        d«      ‚| |z  } | dk(  ry| dk(  ry| d}}|dz  dk(  r|dz  |dz   }}|dz  dk(  rŒ|dz  dk(  s|dz  dk(  s|dz  dk(  rd}nd	}|dk(  r|S |d
z  dk(  r|d
z  dk(  r| }|t        ||z  |«      z  S )zJacobi symbolé   zn must be larger than 2r(   r
   zn must be oddr   é   é   r'   é   )r   Újacobi)ÚaÚnÚa1Úer9   s        r   r@   r@   Ÿ   sã   € ð �Š6ÜÐ3Ó4Ð4Øˆq‰5�AŠ:Ü˜/Ó*Ð*Ø	ˆA‰€AØˆA‚vØØˆA‚vØØˆqˆ€BØ
ˆq‰&�AŠ+Ø�a‘˜˜Q™ˆAˆð ˆq‰&�A‹+àˆ1�u�‚z�Q˜‘U˜a’Z 1 q¡5¨A¢:Ø‰àˆØ	ˆQ‚wØˆØˆ1�u�‚z�b˜1‘f ’kØˆBˆØŒv�a˜"‘f˜bÓ!Ñ!Ð!r   c                 ón  — d| cxk  r|k  sJ ‚ J ‚d|k  sJ ‚| dk(  ry|dk(  r| S t        | |«      }|dk(  rt        d| |fz  «      ‚|dz  dk(  rt        | |dz   dz  |«      S |dz  d	k(  rTt        | |dz
  dz  |«      }|dk(  rt        | |dz   dz  |«      S ||dz
  k(  sJ ‚d| z  t        d| z  |d	z
  dz  |«      z  |z  S t        rt	        d
|«      }n|}t        d|«      D ]K  }t        ||z  d| z  z
  |«      dk(  sŒ| | df}t        d|dz   dz  ||«      }|d   rt        d«      ‚|d   c S  t        d«      ‚)z)Modular square root of a, mod p, p prime.r   r
   r(   r'   z%d has no square root modulo %dr?   r<   r=   é   iÿÿÿ)r   r
   zp is not primezNo b found.)r@   r   r!   r   Úminr*   r:   ÚRuntimeError)rA   r-   ÚjacÚdÚ	range_topÚbÚfÚffs           r   Úsquare_root_mod_primerO   ¿   s‰  € ð �Œ:�AŠ:Ð‰:Ðˆ:ØˆqŠ5€Lˆ5àˆA‚vØØˆA‚vØˆä
��A‹,€CØ
ˆb‚yÜÐ?À1ÀaÀ&ÑHÓIÐIàˆ1�u�‚zÜ�1�q˜1‘u ‘l AÓ&Ð&àˆ1�u�‚zÜ��A˜‘E˜a‘< Ó#ˆØ�Š6Ü�q˜1˜q™5 Q™,¨Ó*Ð*Ø�A˜‘EŠzÐˆzØ�A‘œ˜A ™E A¨¡E¨a¡<°Ó3Ñ3°qÑ8Ð8å
ä˜
 AÓ&‰	àˆ	Ü�A�yÖ!ˆÜ�!�a‘%˜!˜a™%‘- Ó# rÓ)Ø�Q�B˜�
ˆAÜ# F¨Q°©U°q©L¸!¸QÓ?ˆBØ�!ŠuÜ%Ð&6Ó7Ð7Ø�a‘5ŠLð "ô �}Ó
%Ð%r   c                 ó(   — | dk(  ryt        | d|«      S ©úInverse of a mod m.r   r'   )r   ©rA   Úms     r   Úinverse_modrU   ò   s   € à�Š6ØÜ�a˜˜QÓÐr   c                 óÌ   — | dk(  ryt        | «      } t        |«      }t        d«      t        d«      }}| |z  |}}|dkD  r"||z  }|||z  z
  |||z  z
  ||f\  }}}}|dkD  rŒ"||z  S )rR   r   r
   r	   ©rA   rT   ÚlmÚhmÚlowÚhighÚrs          r   rU   rU   ú   s‰   € ð �Š6ØÜ�‹FˆÜ�‹Fˆä�Q“œ˜Q›ˆBˆØ˜‘E˜1ˆTˆØ�AŠgØ˜‘ˆAØ " R¨!¡V¡¨T°C¸!±G©^¸RÀÐ DÑˆB��R˜ð �A‹gð �A‰vˆr   )r<   r=   c                 ó(   — | dk(  ryt        | d|«      S rQ   )r!   rS   s     r   rU   rU     s   € à�Š6ØÜ�1�b˜!‹}Ðr   c                 ó~   — | dk(  ryd\  }}| |z  |}}|dkD  r"||z  }|||z  z
  |||z  z
  ||f\  }}}}|dkD  rŒ"||z  S )rR   r   )r
   r   r
   r   rW   s          r   rU   rU     so   € ð �Š6Øà‰ˆˆBØ˜‘E˜1ˆTˆØ�AŠgØ˜‘ˆAØ " R¨!¡V¡¨T°C¸!±G©^¸RÀÐ DÑˆB��R˜ð �A‹gð �A‰vˆr   c                 ó   — | r
|| z  | }} | rŒ
|S )z1Greatest common divisor using Euclid's algorithm.r   ©rA   rL   s     r   Úgcd2ra   *  s   € áØ�q‘5˜!ˆqˆAò àˆr   c                  óŒ   — t        | «      dkD  rt        t        | «      S t        | d   d«      rt        t        | d   «      S | d   S )zRGreatest common divisor.

    Usage: gcd([ 2, 4, 6 ])
    or:    gcd(2, 4, 6)
    r
   r   Ú__iter__)r)   r   ra   Úhasattr©rA   s    r   Úgcdrf   1  óC   € ô ˆ1ƒv�‚zÜ”d˜A‹ÐÜˆq�‰t�ZÔ Ü”d˜A˜a™DÓ!Ð!ØˆQ‰4€Kr   c                 ó&   — | |z  t        | |«      z  S )z&Least common multiple of two integers.)rf   r`   s     r   Úlcm2ri   ?  s   € ð �‰E”c˜!˜Q“iÑÐr   c                  óŒ   — t        | «      dkD  rt        t        | «      S t        | d   d«      rt        t        | d   «      S | d   S )zPLeast common multiple.

    Usage: lcm([ 3, 4, 5 ])
    or:    lcm(3, 4, 5)
    r
   r   rc   )r)   r   ri   rd   re   s    r   Úlcmrk   E  rg   r   c                 óZ  — t        | t        «      sJ ‚| dk  rg S g }t        D ]Z  }|| kD  r nSt        | |«      \  }}|dk(  sŒd}|| k  r"|} t        | |«      \  }}|dk7  rn|dz   }|| k  rŒ"|j	                  ||f«       Œ\ | t        d   kD  r t        | «      r|j	                  | df«       |S t        d   }	 |dz   }t        | |«      \  }}||k  rnD|dk(  r>d}|} || k  r"t        | |«      \  }}|dk7  rn|} |dz   }|| k  rŒ"|j	                  ||f«       Œ^| dkD  r|j	                  | df«       |S )z2Decompose n into a list of (prime,exponent) pairs.r(   r   r
   r'   )Ú
isinstancer   ÚsmallprimesÚdivmodÚappendÚis_prime)rB   ÚresultrJ   Úqr\   Úcounts         r   Úfactorizationru   S  sx  € ô �aœÔ'Ð'Ð'àˆ1‚uØˆ	à€F÷ ˆØˆqŠ5ÙÜ�a˜‹|‰ˆˆ1Ø�‹6ØˆEØ�q’&Ø�Ü˜a “|‘��1Ø˜’6ØØ ™	�ð �q“&ð �M‰M˜1˜e˜*Õ%ð ð" 	Œ;�r‰?ÒÜ�AŒ;Ø�M‰M˜1˜a˜&Ô!ð, €Mô) ˜B‘ˆAØØ˜‘E�Ü˜a “|‘��1Ø�q’5ØØ˜’6Ø�EØ�Aà˜qš&Ü% a¨›|™˜˜1Ø š6Ø!Ø˜Ø %¨¡	˜ð ˜q›&ð —M‘M 1 e *Ô-ð ð  �1ŠuØ—‘˜q !˜fÔ%à€Mr   c                 óì   — t        j                  dt        «       t        | t        «      sJ ‚| dk  ryd}t        | «      }|D ]/  }|d   }|dkD  r||d   |dz
  z  z  |d   dz
  z  }Œ%||d   dz
  z  }Œ1 |S )z'Return the Euler totient function of n.ú{Function is unused by library code. If you use this code, please open an issue in https://github.com/tlsfuzzer/python-ecdsar<   r
   r   )r   r   r    rm   r   ru   )rB   rr   rN   rM   rD   s        r   Úphirx   ‹  s›   € ô ‡M�Mð	4ô 	ô	ô �aœÔ'Ð'Ð'àˆ1‚uØà€FÜ	�qÓ	€BÛˆØˆa‰DˆØˆqŠ5Ø˜a ™d q¨1¡u™oÑ-°°1±¸±Ñ:‰Fà˜q ™t a™xÑ(‰Fð ð €Mr   c                 ó^   — t        j                  dt        «       t        t	        | «      «      S )z�Return Carmichael function of n.

    Carmichael(n) is the smallest integer x such that
    m**x = 1 mod n for all m relatively prime to n.
    rw   )r   r   r    Úcarmichael_of_factorizedru   )rB   s    r   Ú
carmichaelr{   ¥  s,   € ô ‡M�Mð	4ô 	ô	ô $¤M°!Ó$4Ó5Ð5r   c                 óØ   — t        j                  dt        «       t        | «      dk  ryt	        | d   «      }t        dt        | «      «      D ]  }t        |t	        | |   «      «      }Œ |S )zlReturn the Carmichael function of a number that is
    represented as a list of (prime,exponent) pairs.
    rw   r
   r   )r   r   r    r)   Úcarmichael_of_ppowerr*   rk   )Úf_listrr   r.   s      r   rz   rz   ¶  sj   € ô
 ‡M�Mð	4ô 	ô	ô ˆ6ƒ{�Q‚Øä! &¨¡)Ó,€FÜ�A”s˜6“{Ö#ˆÜ�VÔ1°&¸±)Ó<Ó=‰ð $ð €Mr   c                 ó€   — t        j                  dt        «       | \  }}|dk(  r|dkD  rd|dz
  z  S |dz
  ||dz
  z  z  S )z:Carmichael function of the given power of the given prime.rw   r(   r
   )r   r   r    )Úppr-   rA   s      r   r}   r}   Ì  sW   € ô ‡M�Mð	4ô 	ô	ð �D€A€qØˆA‚v�!�a’%Ø�Q˜‘U‰|Ðà�A‘˜˜q 1™u™Ñ%Ð%r   c                 ó    — t        j                  dt        «       |dk  ryt        | |«      dk(  sJ ‚| }d}|dk7  r|| z  |z  }|dz   }|dk7  rŒ|S )z8Return the order of x in the multiplicative group mod m.rw   r
   r   )r   r   r    rf   )ÚxrT   Úzrr   s       r   Ú	order_modr„   Ý  so   € ô ‡M�Mð	4ô 	ô	ð 	ˆA‚vØäˆq�!‹9˜Š>Ðˆ>à	€AØ€FØ
ˆqŠ&Ø�‰U�a‰KˆØ˜!‘ˆð ˆq‹&ð €Mr   c                 ó˜   — t        j                  dt        «       	 t        | |«      }|dk  r	 | S |}	 t	        | |«      \  }}|dkD  rn|} ŒŒ0)z5Return the largest factor of a relatively prime to b.rw   r
   r   )r   r   r    rf   ro   )rA   rL   rJ   rs   r\   s        r   Úlargest_factor_relatively_primer†   ÷  sm   € ô ‡M�Mð	4ô 	ô	ð Ü��1‹IˆØ�Š6Øð €Hð ˆØÜ˜!˜Q“<‰DˆAˆqØ�1ŠuØØˆAð	 ð r   c                 ób   — t        j                  dt        «       t        | t	        || «      «      S )z}Return the order of x in the multiplicative group mod m',
    where m' is the largest factor of m relatively prime to x.
    rw   )r   r   r    r„   r†   )r‚   rT   s     r   Úkinda_order_modrˆ     s1   € ô
 ‡M�Mð	4ô 	ô	ô �QÔ7¸¸1Ó=Ó>Ð>r   c                 ó(  — da | t        d   k  r
| t        v ryyt        | d«      dk7  ryd}dt        | «      z   }d|cxk  rd	k  sJ ‚ J ‚d
D ]  \  }}||k  r n|}Œ d}| dz
  }|dz  dk(  r|dz   }|dz  }|dz  dk(  rŒt	        |«      D ]‡  }t        j                  t        «      }t        ||| «      }	|	dk7  sŒ/|	| dz
  k7  sŒ8d}
|
|dz
  k  r7|	| dz
  k7  r/t        |	d| «      }	|	dk(  r|dz   a  y|
dz   }
|
|dz
  k  r	|	| dz
  k7  rŒ/|	| dz
  k7  sŒ‚|dz   a  y y)a@  Return True if x is prime, False otherwise.

    We use the Miller-Rabin test, as given in Menezes et al. p. 138.
    This test is not exact: there are composite values n for which
    it returns True.

    In testing the odd numbers from 10000001 to 19999999,
    about 66 composites got past the first test,
    5 got past the second test, and none got past the third.
    Since factors of 2, 3, 5, 7, and 11 were detected during
    preliminary screening, the number of numbers tested by
    Miller-Rabin was (19999999 - 10000001)*(2/3)*(4/5)*(6/7)
    = 4.57 million.
    r   r'   TFi	  r
   é(   é   i @  ))éd   é   )é–   é   )éÈ   é   )éú   é   )i,  é	   )i^  r=   )i�  r>   )iÂ  é   )i&  rF   )iŠ  r?   )iR  r<   )i  r(   r(   )Úmiller_rabin_test_countrn   rf   r   r*   ÚrandomÚchoicer!   )rB   ÚtÚn_bitsr8   Úttr9   r\   r.   rA   Úyr4   s              r   rq   rq     st  € ð&  ÐàŒK˜‰OÒØ”ÑØàä
ˆ1ˆdƒ|�qÒØð 	€AØ”˜A“Ñ€FØ�Ô ˜5Ò Ð Ñ Ð Ð ó‰ˆˆ2ð �AŠ:ÙØ‰ð!ð( 	
€AØ	ˆA‰€AØˆq‰5�QŠ,Ø�‰EˆØ�‰Fˆð ˆq‰5�Q‹,ô �AŽYˆÜ�M‰Mœ+Ó&ˆÜ��1�a‹LˆØ�‹6�a˜1˜q™5“jØˆAØ�q˜1‘u’*  a¨!¡e¢Ü˜˜1˜a“L�Ø˜’6Ø./°!©eÐ+Ù Ø˜‘E�ð �q˜1‘u’*  a¨!¡e£ð �A˜‘E‹zØ*+¨a©%Ð'Ùð ð r   c                 óZ   — | dk  ry| dz   dz  }t        |«      s|dz   }t        |«      sŒ|S )z9Return the smallest prime larger than the starting value.r(   r
   )rq   )Ústarting_valuerr   s     r   Ú
next_primerŸ   l  s>   € ð ˜ÒØØ˜qÑ  AÑ%€FÜ�vÔØ˜!‘ˆô �vÕà€Mr   )Ér(   r<   rF   r>   r‹   é   é   é   é   é   é   é%   é)   é+   é/   é5   é;   é=   éC   éG   éI   éO   éS   éY   éa   ée   ég   ék   ém   éq   é   éƒ   é‰   é‹   é•   é—   é�   é£   é§   é­   é³   éµ   é¿   éÁ   éÅ   éÇ   éÓ   éß   éã   éå   éé   éï   éñ   éû   i  i  i  i  i  i  i  i%  i3  i7  i9  i=  iK  iQ  i[  i]  ia  ig  io  iu  i{  i  i…  i�  i‘  i™  i£  i¥  i¯  i±  i·  i»  iÁ  iÉ  iÍ  iÏ  iÓ  iß  iç  ië  ió  i÷  iý  i	  i  i  i#  i-  i3  i9  i;  iA  iK  iQ  iW  iY  i_  ie  ii  ik  iw  i�  iƒ  i‡  i�  i“  i•  i¡  i¥  i«  i³  i½  iÅ  iÏ  i×  iÝ  iã  iç  iï  iõ  iù  i  i  i  i  i)  i+  i5  i7  i;  i=  iG  iU  iY  i[  i_  im  iq  is  iw  i‹  i�  i—  i¡  i©  i­  i³  i¹  iÇ  iË  iÑ  i×  iß  iå  iñ  iõ  iû  iý  i  i	  i  i  i  i%  i'  i-  i?  iC  iE  iI  iO  iU  i]  ic  ii  i  i�  i‹  i“  i�  i£  i©  i±  i½  iÁ  iÇ  iÍ  )7Ú
__future__r   ÚsysÚsixr   r   Ú	six.movesr   r*   Ú	NameErrorÚrangeÚgmpy2r   r   ÚGMPY2ÚGMPYÚImportErrorÚgmpyÚtupleÚtypeÚmathr   r—   Úutilr   Ú	Exceptionr   r   r   r   r%   r/   r5   r:   r@   rO   rU   Úversion_inforf   ra   ÚAttributeErrorri   rk   ru   rx   r{   rz   r}   r„   r†   rˆ   rq   rŸ   rn   r–   r   r   r   Ú<module>rã      s   ðõ  ã 
ß "Ý ðÙ
ðß!à€EØ€Dñ 	‰DÙ˜-©4±°A³«<¨/Ñ9Ó:€Mó Û Û Ý ô	ˆIô 	ô	�%ô 	ô	�eô 	ô	˜Eô 	ò(òò.3ò0ò@"ò@+&ñb 	ó ñ 
óð& 	×Ñ˜ÒóòðØ�8‰8€Dòò òò5òpò46ò"ò,&ò"ò4ò.?òLò^òJ€ðX Ñ øð_ ò Ø‚Fðûð ò Ø€EðÝà‰øØò ØŠðüðûðZ ò ôðúsX   šC2 �C? Â8D# Ã2C<Ã;C<Ã?D ÄDÄD ÄDÄD ÄDÄD ÄD Ä#D.Ä-D.