
    i	                     J    S SK Jr  \" SS5      rS\S\S\4S jrS\S\4S	 jrg
)    )randint   C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5B   abreturnc                 0    U(       a  XU-  pU(       a  M  U $ )N )r   r   s     B/app/mltbenv/lib/python3.13/site-packages/pyrogram/crypto/prime.pygcdr   &   s    
a%1 ! H    pqc                 J   U S-  S:X  a  g[        SU S-
  5      [        SU S-
  5      [        SU S-
  5      p2nS=n=pVS=pxUS:X  a  Un[        U5       H  n	[        USU 5      U-   U -  nM     Sn
X:  ah  US:X  ab  Un[        [        X5U
-
  5      5       H)  n	[        USU 5      U-   U -  nU[	        Xq-
  5      -  U -  nM+     [        X`5      nX-  n
X:  a  US:X  a  Mb  US-  nUS:X  a  M  X@:X  a6   [        USU 5      U-   U -  n[        [	        Xx-
  5      U 5      nUS:  a   U$ M5  U$ )N   r      )r   rangepowminabsr   )r   ycmgrqxysiks              r   	decomposer    -   sZ   	Av{aa '!R!V"4gaa6H!AMAMJA
q&qAQ2"b(A  eQB3qa%=)Ar]Q&",QU$r) * A
AFA eQ 	
Q% q&( 	wb!R.1$*BCK$A1uH  Hr   N)randomr   intCURRENT_DH_PRIMEr   r    r
   r   r   <module>r$      sM   & G 
 "3 3 3 %# %# %r   