hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
Ë
ž¬`iüoãó–—ddlZddlZddlmZddlmZmZmZmZm    Z    ddl
m Z dZ ejdk(red«‚ed    e «Zd    ed
œZeed «red «‚Gd „de«Ze«Zeddk(r,ddlmZmZmZmZGd„de«Zd„Zeej8_n    ddlmZd„Zdej>d«zZ Gd„de «Z!y)éN)Ú is_native_int)ÚbackendÚload_libÚc_ulongÚc_size_tÚ c_uint8_ptré)Ú IntegerBaseaÆ typedef unsigned long UNIX_ULONG;
        typedef struct { int a; int b; void *c; } MPZ;
        typedef MPZ mpz_t[1];
        typedef UNIX_ULONG mp_bitcnt_t;
 
        void __gmpz_init (mpz_t x);
        void __gmpz_init_set (mpz_t rop, const mpz_t op);
        void __gmpz_init_set_ui (mpz_t rop, UNIX_ULONG op);
 
        UNIX_ULONG __gmpz_get_ui (const mpz_t op);
        void __gmpz_set (mpz_t rop, const mpz_t op);
        void __gmpz_set_ui (mpz_t rop, UNIX_ULONG op);
        void __gmpz_add (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_add_ui (mpz_t rop, const mpz_t op1, UNIX_ULONG op2);
        void __gmpz_sub_ui (mpz_t rop, const mpz_t op1, UNIX_ULONG op2);
        void __gmpz_addmul (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_addmul_ui (mpz_t rop, const mpz_t op1, UNIX_ULONG op2);
        void __gmpz_submul_ui (mpz_t rop, const mpz_t op1, UNIX_ULONG op2);
        void __gmpz_import (mpz_t rop, size_t count, int order, size_t size,
                            int endian, size_t nails, const void *op);
        void * __gmpz_export (void *rop, size_t *countp, int order,
                              size_t size,
                              int endian, size_t nails, const mpz_t op);
        size_t __gmpz_sizeinbase (const mpz_t op, int base);
        void __gmpz_sub (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_mul (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_mul_ui (mpz_t rop, const mpz_t op1, UNIX_ULONG op2);
        int __gmpz_cmp (const mpz_t op1, const mpz_t op2);
        void __gmpz_powm (mpz_t rop, const mpz_t base, const mpz_t exp, const
                          mpz_t mod);
        void __gmpz_powm_ui (mpz_t rop, const mpz_t base, UNIX_ULONG exp,
                             const mpz_t mod);
        void __gmpz_pow_ui (mpz_t rop, const mpz_t base, UNIX_ULONG exp);
        void __gmpz_sqrt(mpz_t rop, const mpz_t op);
        void __gmpz_mod (mpz_t r, const mpz_t n, const mpz_t d);
        void __gmpz_neg (mpz_t rop, const mpz_t op);
        void __gmpz_abs (mpz_t rop, const mpz_t op);
        void __gmpz_and (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_ior (mpz_t rop, const mpz_t op1, const mpz_t op2);
        void __gmpz_clear (mpz_t x);
        void __gmpz_tdiv_q_2exp (mpz_t q, const mpz_t n, mp_bitcnt_t b);
        void __gmpz_fdiv_q (mpz_t q, const mpz_t n, const mpz_t d);
        void __gmpz_mul_2exp (mpz_t rop, const mpz_t op1, mp_bitcnt_t op2);
        int __gmpz_tstbit (const mpz_t op, mp_bitcnt_t bit_index);
        int __gmpz_perfect_square_p (const mpz_t op);
        int __gmpz_jacobi (const mpz_t a, const mpz_t b);
        void __gmpz_gcd (mpz_t rop, const mpz_t op1, const mpz_t op2);
        UNIX_ULONG __gmpz_gcd_ui (mpz_t rop, const mpz_t op1,
                                     UNIX_ULONG op2);
        void __gmpz_lcm (mpz_t rop, const mpz_t op1, const mpz_t op2);
        int __gmpz_invert (mpz_t rop, const mpz_t op1, const mpz_t op2);
        int __gmpz_divisible_p (const mpz_t n, const mpz_t d);
        int __gmpz_divisible_ui_p (const mpz_t n, UNIX_ULONG d);
 
        size_t __gmpz_size (const mpz_t op);
        UNIX_ULONG __gmpz_getlimbn (const mpz_t op, size_t n);
        Úwin32zNot using GMP on WindowsÚgmp)ÚlibraryÚapiÚ__mpir_versionzMPIR library detectedcó—eZdZd„Zy)Ú_GMPcóė|jd«r    d|ddz}n(|jd«r    d|ddz}ntd|z«‚tt|«}t    |||«|S)NÚmpz_Ú__gmpz_éÚgmp_Ú__gmp_zAttribute %s is invalid)Ú
startswithÚAttributeErrorÚgetattrÚlibÚsetattr)ÚselfÚnameÚ    func_nameÚfuncs    õjH:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\Crypto/Math/_IntegerGMP.pyÚ __getattr__z_GMP.__getattr__psh€Ø ?‰?˜6Ô "Ø! D¨¨ HÑ,‰IØ _‰_˜VÔ $Ø  4¨¨ 8Ñ+‰Iä Ð!:¸TÑ!AÓBÐ BÜ”s˜IÓ&ˆÜd˜DÔ!؈ óN)Ú__name__Ú
__module__Ú __qualname__r"©r#r!rrns„ó    r#rrÚctypes)Ú    StructureÚc_intÚc_void_pÚbyrefcó"—eZdZdefdefdefgZy)Ú_MPZÚ    _mp_allocÚ_mp_sizeÚ_mp_dN)r$r%r&r*r+Ú_fields_r'r#r!r.r.…s!„Ø  %Ð(Ø Ð'ؘhÐ'ð)‰r#r.có(—tt««S©N)r,r.r'r#r!Únew_mpzr5Šs€Ü”T“V‹}Ðr#)Úfficó,—tjd«S)NzMPZ*)r6Únewr'r#r!r5r5“s€Üw‰wv‹Ðr#éÚPcó²—eZdZdZe«Zejeed««d„Z    d„Z
d„Z d„Z d„Z d„Zd8d    „Zed9d
„«Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„ZeZd„Zd„Zd„Zd„Zd„Zd„Z d:d„Z!d:d„Z"d„Z#d:d„Z$d„Z%d„Z&d „Z'd!„Z(d"„Z)d#„Z*d$„Z+d%„Z,d&„Z-d'„Z.d(„Z/d)„Z0d*„Z1d+„Z2d,„Z3d-„Z4d.„Z5d/„Z6d0„Z7d1„Z8d2„Z9d3„Z:d4„Z;ed5„«Z<ed6„«Z=d7„Z>y);Ú
IntegerGMPz#A fast, arbitrary precision integerrc    ó¼—t«|_d|_t|t«r t d«‚t |«r>tj|j«d|_|dk(ryt«}tj|«    |dk\}t|«}|j«dz
dzdz}|dkDr|dz
}tj|td||dzz    z««tj||t|dz««tj|j|j|«|dkDrŒtj|«|s+tj!|j|j«yyt|t"«r2tj%|j|j«d|_yt&‚#tj|«wxYw)    z*Initialize the integer to the given value.Fz-A floating point type is not a natural numberTrNr    é ìÿÿ)r5Ú_mpz_pÚ _initializedÚ
isinstanceÚfloatÚ
ValueErrorrÚ_gmpÚmpz_initÚabsÚ
bit_lengthÚ
mpz_set_uirÚ mpz_mul_2expÚmpz_addÚ    mpz_clearÚmpz_negr<Ú mpz_init_setÚNotImplementedError)rÚvalueÚtmpÚpositiveÚreduceÚslotss      r!Ú__init__zIntegerGMP.__init__¡s{€ô“iˆŒ Ø!ˆÔä eœUÔ #ÜÐLÓMÐ Mä ˜Õ Ü M‰M˜$Ÿ+™+Ô &Ø $ˆDÔ Ø˜ŠzØä“)ˆCÜ M‰M˜#Ô ð $Ø  A™:Ü˜U›Ø×*Ñ*Ó,¨qÑ0°RÑ7¸!Ñ;à˜a’iØ! A™IEÜ—O‘O CÜ$+¨J¸&ÀUÈRÁZÑ:PÑ,QÓ$RôTä×%Ñ% c¨3´¸À¹
Ó0CÔDÜ—L‘L §¡¨d¯k©k¸3Ô?ð ˜a“iô—‘˜sÔ#áÜ— ‘ ˜TŸ[™[¨$¯+©+Õ6ðô˜œzÔ *Ü × Ñ ˜dŸk™k¨5¯<©<Ô 8Ø $ˆDÕ ä%Ð %øô—‘˜sÕ#ús Â
B.GÇGcó—t«}tj||j«    d}d}tj    ||j
«dk7rltj |«dz}|||dzzz}tj||td««|dz}tj    ||j
«dk7rŒltj|«|dkr| }t|«S#tj|«wxYw)Nrr?r>r    ) r5rErNr@Úmpz_cmpÚ _zero_mpz_pÚ
mpz_get_uiÚmpz_tdiv_q_2exprrLÚint)rrQrPÚslotÚlsbs     r!Ú__int__zIntegerGMP.__int__ËsۀÜ‹iˆÜ ×ј#˜tŸ{™{Ô+ð         ØˆE؈DÜ—,‘,˜s D×$4Ñ$4Ó5¸Ò:Ü—o‘o cÓ*¨ZÑ7Ø˜ ¨¡Ñ+Ñ+Ü×$Ñ$ S¨#¬w°r«{Ô;ؘa‘xô    —,‘,˜s D×$4Ñ$4Ó5¸Ó:ô N‰N˜3Ô à !Š8ؐFˆEܐ5‹zÐøô     N‰N˜3Õ ús ¬BC'Ã'C>có*—tt|««Sr4)Ústrr[©rs r!Ú__str__zIntegerGMP.__str__Þó€Ü”3t“9‹~Ðr#có—dt|«zS)Nz Integer(%s))r`ras r!Ú__repr__zIntegerGMP.__repr__ás€Øœs 4›yÑ(Ð(r#có*—tt|««Sr4)Úhexr[ras r!Ú__hex__zIntegerGMP.__hex__årcr#có—t|«Sr4)r[ras r!Ú    __index__zIntegerGMP.__index__és €Ü4‹yÐr#có¶—|dkr td«‚tj|j«}tdk(rd}t d||dzdz«}n*tdk(rd    }t d||d
zd z«}n td «‚t |«Dcgc](}tj|j||z
dz
«‘Œ*}}tjd ||zzg|¢­Ž}t|«|z
}|dk(r|jd«}n/|dkDr|d|d|zk7r td«‚||d}n|dkr    d| z|z}|dk(r    |ddd…}n|dk(rn td«‚t|«dk(rd}|Scc}w)aªConvert the number into a byte string.
 
        This method encodes the number in network order and prepends
        as many zero bytes as required. It only works for non-negative
        values.
 
        :Parameters:
          block_size : integer
            The exact size the output byte string must have.
            If zero, the string has the minimal length.
          byteorder : string
            'big' for big-endian integers (default), 'little' for litte-endian.
        :Returns:
          A byte string.
        :Raise ValueError:
          If the value is negative or if ``block_size`` is
          provided and the length of the byte string would exceed it.
        rú.Conversion only valid for non-negative numbersr>ÚLr    éré@ÚQér9zUnknown limb sizeú>óNz@Number is too big to convert to byte string of prescribed lengthÚlittleéÿÿÿÿÚbigúIncorrect byteorder) rDrEÚmpz_sizer@Ú    _sys_bitsÚmaxÚrangeÚ mpz_getlimbnÚstructÚpackÚlenÚlstrip)    rÚ
block_sizeÚ    byteorderÚ    num_limbsÚspcharÚiÚlimbsÚresultÚ
cutoff_lens             r!Úto_byteszIntegerGMP.to_bytesìsŽ€ð( !Š8ÜÐMÓNÐ Nä—M‘M $§+¡+Ó.ˆ    Ü ˜Š?؈FܘA˜y¨:¸©>¸aÑ*?Ó@‰IÜ ˜"Š_؈FܘA˜y¨:¸©>¸aÑ*?Ó@‰IäÐ0Ó1Ð 1ôMRÐR[ÓL\Ö]Àq”×"Ñ" 4§;¡;°    ¸A± ÀÑ0AÕBÐ]ˆÐ]ä—‘˜S 6¨IÑ#5Ñ5Ð>¸Ò>ˆÜ˜“[ :Ñ-ˆ
Ø ˜Š?Ø—]‘] 7Ó+‰FØ ˜!Š^ؐkzÐ" g°Ñ&<Ò<Ü ð"DóEðEà˜J˜KÐ(‰FØ ˜!Š^Ø   Ñ,¨vÑ5ˆFà ˜Ò  Ø™D˜b˜D‘\‰FØ ˜%Ò Ø äÐ2Ó3Ð 3ä ˆv‹;˜!Ò ØˆFàˆ ùò1^sÂ-Ec ó$—td«}|dk(rn,|dk(rt|«}|j«n td«‚tj |j tt|««dtd«dtd«t|««|S)aŽConvert a byte string into a number.
 
        :Parameters:
          byte_string : byte string
            The input number, encoded in network order.
            It can only be non-negative.
          byteorder : string
            'big' for big-endian integers (default), 'little' for litte-endian.
 
        :Return:
          The ``Integer`` object carrying the same value as the input.
        rrvrtrwr    )
r<Ú    bytearrayÚreverserDrEÚ
mpz_importr@rrr)Ú byte_stringr‚r‡s   r!Ú
from_byteszIntegerGMP.from_bytes(s…€ô˜A“ˆØ ˜Ò Ø Ø ˜(Ò "Ü# KÓ0ˆKØ × Ñ Õ !äÐ2Ó3Ð 3Ü ‰ØŸ ™ Ü ¤ [Ó!1Ó2ØÜ  › ØÜ  › Ü# KÓ0ô    2ðˆ r#cór—t|t«s t|«}||j|j«Sr4)rBr<r@)rr Úterms   r!Ú_apply_and_returnzIntegerGMP._apply_and_returnIs+€Ü˜$¤
Ô+ܘdÓ#ˆDِD—K‘K §¡Ó-Ð-r#có€—t|t«s t|«sy|jtj
|«dk(S)NFr©rBr<rr’rErW©rr‘s  r!Ú__eq__zIntegerGMP.__eq__Ns2€Ü˜4¤Ô,´ ¸dÔ0CØØ×%Ñ%¤d§l¡l°DÓ9¸QÑ>Ð>r#có€—t|t«s t|«sy|jtj
|«dk7S)NTrr”r•s  r!Ú__ne__zIntegerGMP.__ne__Ss2€Ü˜4¤Ô,´ ¸dÔ0CØØ×%Ñ%¤d§l¡l°DÓ9¸QÑ>Ð>r#cóH—|jtj|«dkS©Nr©r’rErWr•s  r!Ú__lt__zIntegerGMP.__lt__Xó€Ø×%Ñ%¤d§l¡l°DÓ9¸AÑ=Ð=r#cóH—|jtj|«dkSršr›r•s  r!Ú__le__zIntegerGMP.__le__[ó€Ø×%Ñ%¤d§l¡l°DÓ9¸QÑ>Ð>r#cóH—|jtj|«dkDSršr›r•s  r!Ú__gt__zIntegerGMP.__gt__^rr#cóH—|jtj|«dk\Sršr›r•s  r!Ú__ge__zIntegerGMP.__ge__ar r#có\—tj|j|j«dk7Srš©rErWr@rXras r!Ú __nonzero__zIntegerGMP.__nonzero__ds"€Ü|‰|˜DŸK™K¨×)9Ñ)9Ó:¸aÑ?Ð?r#có\—tj|j|j«dkSršr¦ras r!Ú is_negativezIntegerGMP.is_negativehs"€Ü|‰|˜DŸK™K¨×)9Ñ)9Ó:¸QÑ>Ð>r#cóè—td«}t|t«s     t|«}tj |j |j |j «|S#t$r    tcYSwxYwrš)r<rBrOÚNotImplementedrErKr@©rr‘r‡s   r!Ú__add__zIntegerGMP.__add__lód€Ü˜A“ˆÜ˜$¤
Ô+ð &Ü! $Ó'ô      ‰ V—]‘]Ø—[‘[Ø—[‘[ô    "ðˆ øô 'ò &Ü%Ò%ð &úó AÁA1Á0A1cóè—td«}t|t«s     t|«}tj |j |j |j «|S#t$r    tcYSwxYwrš)r<rBrOr«rEÚmpz_subr@r¬s   r!Ú__sub__zIntegerGMP.__sub__xr®r¯cóè—td«}t|t«s     t|«}tj |j |j |j «|S#t$r    tcYSwxYwrš)r<rBrOr«rEÚmpz_mulr@r¬s   r!Ú__mul__zIntegerGMP.__mul__„r®r¯có,—t|t«s t|«}tj|j|j
«dk(r t d«‚td«}tj|j|j|j«|S)NrúDivision by zero)rBr<rErWr@rXÚZeroDivisionErrorÚ
mpz_fdiv_q)rÚdivisorr‡s   r!Ú __floordiv__zIntegerGMP.__floordiv__su€Ü˜'¤:Ô.Ü  Ó)ˆGÜ <‰<˜Ÿ™Ø×(Ñ(ó *Ø-.ò /ä#Ð$6Ó7Ð 7ܘA“ˆÜ ‰˜Ÿ ™ ØŸ ™ ØŸ™ô    (ðˆ r#cóP—t|t«s t|«}tj|j|j
«}|dk(r t d«‚|dkr td«‚td«}tj|j|j|j«|S©Nrr·úModulus must be positive©    rBr<rErWr@rXr¸rDÚmpz_mod)rrºÚcompr‡s    r!Ú__mod__zIntegerGMP.__mod__œs‰€Ü˜'¤:Ô.Ü  Ó)ˆG܏|‰|˜GŸN™NØ ×,Ñ,ó.ˆà 1Š9Ü#Ð$6Ó7Ð 7Ø !Š8ÜÐ7Ó8Ð 8ܘA“ˆÜ  ‰ V—]‘]Ø—[‘[Ø—^‘^ô    %ðˆ r#Nc    óÞ—|€_|dkr td«‚|dkDr td«‚tj|j|jt    t |«««|St |t«s t|«}|s td«‚|j«r td«‚t|«rb|dkr td«‚|dkrAtj|j|jt    |«|j«|St|«}n|j«r td«‚tj|j|j|j|j«|S)NrzExponent must not be negativeézExponent is too bigr·r¾é) rDrEÚ
mpz_pow_uir@rr[rBr<r¸r©rÚ mpz_powm_uiÚmpz_powm)rÚexponentÚmoduluss   r!Ú inplace_powzIntegerGMP.inplace_pow«s<€à ˆ?ؘ!Š|Ü Ð!@ÓAÐAð˜#Š~Ü Ð!6Ó7Ð7Ü O‰O˜DŸK™KØ ŸK™KÜ#¤C¨£MÓ2ô ð8ˆ ô-˜g¤zÔ2Ü$ WÓ-ÙÜ'Ð(:Ó;Ð;Ø×"Ñ"Ô$Ü Ð!;Ó<Ð<ܘXÔ&ؘa’<Ü$Ð%DÓEÐEؘeÒ#Ü×$Ñ$ T§[¡[Ø%)§[¡[Ü%,¨XÓ%6Ø%,§^¡^ô5ð KÜ% hÓ/‘Ø×%Ñ%Ô'Ü Ð!@ÓAÐAÜ M‰M˜$Ÿ+™+ØŸ+™+Ø"Ÿ/™/Ø!Ÿ.™.ô *ðˆ r#có<—t|«}|j||«Sr4)r<rË)rrÉrÊr‡s    r!Ú__pow__zIntegerGMP.__pow__Òs€Ü˜DÓ!ˆØ×!Ñ! (¨GÓ4Ð4r#cóp—td«}tj|j|j«|Srš)r<rEÚmpz_absr@)rr‡s  r!Ú__abs__zIntegerGMP.__abs__Ös&€Ü˜A“ˆÜ  ‰ V—]‘] D§K¡KÔ0؈ r#có—|€G|dkr td«‚td«}tj|j|j«|S|dkr td«‚t |«}t|j t |«|z|««}|S)zGReturn the largest Integer that does not
        exceed the square rootrzSquare root of negative valuer¾)rDr<rEÚmpz_sqrtr@r[Ú_tonelli_shanks©rrÊr‡s   r!ÚsqrtzIntegerGMP.sqrtÛsˆ€ð ˆ?ؐaŠxÜ Ð!@ÓAÐAÜ “]ˆFÜ M‰M˜&Ÿ-™-ØŸ+™+ô 'ðˆ ð ˜!Š|Ü Ð!;Ó<Ð<ܘ'“lˆGÜ × 4Ñ 4´S¸³YÀÑ5HÈ'Ó RÓSˆFàˆ r#có®—t|«r”d|cxkrdkr9nn6tj|j|jt    |««|Sd|cxkrdkr:nn7tj |j|jt    | ««|St |«}tj|j|j|j«|S©NrrÅéÿÿ)rrEÚ
mpz_add_uir@rÚ
mpz_sub_uir<rKr•s  r!Ú__iadd__zIntegerGMP.__iadd__íó¥€Ü ˜Ô ؐDÔ ˜5Õ Ü—‘ § ¡ Ø $§ ¡ Ü '¨£ ô/ð Ø˜Ô ˜qÕ Ü—‘ § ¡ Ø $§ ¡ Ü '¨¨£ô0ð ܘdÓ#ˆDÜ  ‰ T—[‘[Ø—[‘[Ø—[‘[ô    "ðˆ r#có®—t|«r”d|cxkrdkr9nn6tj|j|jt    |««|Sd|cxkrdkr:nn7tj |j|jt    | ««|St |«}tj|j|j|j«|Sr×)rrErÚr@rrÙr<r±r•s  r!Ú__isub__zIntegerGMP.__isub__ÿrÜr#có—t|«r¾d|cxkrdkr9nn6tj|j|jt    |««|Sd|cxkrdkrdnnatj|j|jt    | ««tj |j|j«|St |«}tj|j|j|j«|Sr×)rrEÚ
mpz_mul_uir@rrMr<r´r•s  r!Ú__imul__zIntegerGMP.__imul__s»€Ü ˜Ô ؐDÔ ˜5Õ Ü—‘ § ¡ Ø $§ ¡ Ü '¨£ ô/ð Ø˜Ô ˜qÕ Ü—‘ § ¡ Ø $§ ¡ Ü '¨¨£ô0ô— ‘ ˜TŸ[™[¨$¯+©+Ô6ؐ ܘdÓ#ˆDÜ  ‰ T—[‘[Ø—[‘[Ø—[‘[ô    "ðˆ r#có:—t|t«s t|«}tj|j|j
«}|dk(r t d«‚|dkr td«‚tj|j|j|j«|Sr½r¿)rrºrÁs   r!Ú__imod__zIntegerGMP.__imod__$s€€Ü˜'¤:Ô.Ü  Ó)ˆG܏|‰|˜GŸN™NØ#×/Ñ/ó1ˆà 1Š9Ü#Ð$6Ó7Ð 7Ø !Š8ÜÐ7Ó8Ð 8Ü  ‰ T—[‘[Ø—[‘[Ø—^‘^ô    %ðˆ r#có¼—td«}t|t«s t|«}tj|j|j|j«|Srš)r<rBrEÚmpz_andr@r¬s   r!Ú__and__zIntegerGMP.__and__3óF€Ü˜A“ˆÜ˜$¤
Ô+ܘdÓ#ˆDÜ  ‰ V—]‘]Ø—[‘[Ø—[‘[ô    "ðˆ r#có¼—td«}t|t«s t|«}tj|j|j|j«|Srš)r<rBrEÚmpz_iorr@r¬s   r!Ú__or__zIntegerGMP.__or__<rçr#c    óΗtd«}|dkr td«‚|dkDr|dkryytj|j|jt t |«««|S©Nrznegative shift countrÅru)r<rDrErZr@rr[©rÚposr‡s   r!Ú
__rshift__zIntegerGMP.__rshift__Es`€Ü˜A“ˆØ Š7ÜÐ3Ó4Ð 4Ø Š;ؐaŠxØàÜ ×јVŸ]™]Ø!Ÿ[™[Ü$¤S¨£XÓ.ô    0ðˆ r#c    ó¸—|dkr td«‚|dkDr|dkryytj|j|jt    t |«««|Srì)rDrErZr@rr[©rrîs  r!Ú __irshift__zIntegerGMP.__irshift__SsW€Ø Š7ÜÐ3Ó4Ð 4Ø Š;ؐaŠxØàÜ ×јTŸ[™[Ø!Ÿ[™[Ü$¤S¨£XÓ.ô    0ðˆ r#c    óڗtd«}d|cxkrdkstd«‚td«‚tj|j|jt t |«««|S©NrrÅzIncorrect shift count)r<rDrErJr@rr[rís   r!Ú
__lshift__zIntegerGMP.__lshift__`sc€Ü˜A“ˆØCÔ˜%ÒÜÐ4Ó5Ð 5ð ÜÐ4Ó5Ð 5Ü ×ј&Ÿ-™-ØŸ+™+Ü!¤# c£(Ó+ô    -ðˆ r#c    óėd|cxkrdkstd«‚td«‚tj|j|jt    t |«««|Srô)rDrErJr@rr[rñs  r!Ú __ilshift__zIntegerGMP.__ilshift__isZ€ØCÔ˜%ÒÜÐ4Ó5Ð 5ð ÜÐ4Ó5Ð 5Ü ×ј$Ÿ+™+ØŸ+™+Ü!¤# c£(Ó+ô    -ðˆ r#c
óė|dkr td«‚|dkr td«‚|dkDryttj|jt t |««««S)zPReturn True if the n-th bit is set to 1.
        Bit 0 is the least significant.rz)no bit representation for negative valuesznegative bit countrÅ)rDÚboolrEÚ
mpz_tstbitr@rr[)rÚns  r!Úget_bitzIntegerGMP.get_bitqs]€ð !Š8ÜÐHÓIÐ IØ ˆqŠ5ÜÐ1Ó2Ð 2Ø ˆuŠ9ØÜ”D—O‘O D§K¡KÜ$+¬C°«F£Oó5ó6ð    6r#cóH—tj|jd«dk(S)Nrr    ©rErúr@ras r!Úis_oddzIntegerGMP.is_oddó€Ü‰˜tŸ{™{¨AÓ.°!Ñ3Ð3r#cóH—tj|jd«dk(Sršrþras r!Úis_evenzIntegerGMP.is_even‚rr#cób—|dkr td«‚tj|jd«S)z=Return the minimum number of bits that can encode the number.rrlé)rDrEÚmpz_sizeinbaser@ras r!Ú size_in_bitszIntegerGMP.size_in_bits…s.€ð !Š8ÜÐMÓNÐ NÜ×"Ñ" 4§;¡;°Ó2Ð2r#có4—|j«dz
dzdzS)z>Return the minimum number of bytes that can encode the number.r    r9)rras r!Ú size_in_byteszIntegerGMP.size_in_bytesŒs €à×!Ñ!Ó# aÑ'¨AÑ-°Ñ1Ð1r#cóF—tj|j«dk7Srš)rEÚmpz_perfect_square_pr@ras r!Úis_perfect_squarezIntegerGMP.is_perfect_squares€Ü×(Ñ(¨¯©Ó5¸Ñ:Ð:r#có —t|«rNd|cxkrdkr8nn5tj|jt    |««r t d«‚yt |«}tj|j|j«r t d«‚y)z3Raise an exception if the small prime is a divisor.rrÅzThe value is compositeN)rrEÚmpz_divisible_ui_pr@rrDr<Úmpz_divisible_p)rÚ small_primes  r!Úfail_if_divisible_byzIntegerGMP.fail_if_divisible_by“s}€ô ˜Ô %ؐ;Ô& Õ&Ü×*Ñ*¨4¯;©;Ü+2°;Ó+?ôAä$Ð%=Ó>Ð>ØÜ$ [Ó1ˆKÜ × Ñ  § ¡ Ø +× 2Ñ 2ô 4äÐ5Ó6Ð 6ð 4r#cóä—t|t«s t|«}t|«r”d|cxkrdkr9nn6tj    |j
|j
t |««|Sd|cxkrdkr:nn7tj|j
|j
t | ««|St|«}tj|j
|j
|j
«|S)z/Increment the number by the product of a and b.rrÅrØ)    rBr<rrEÚ mpz_addmul_uir@rÚ mpz_submul_uiÚ
mpz_addmul)rÚaÚbs   r!Úmultiply_accumulatezIntegerGMP.multiply_accumulate¡s¹€ô˜!œZÔ(ܘ1“ ˆAÜ ˜Ô ؐ1Œ}u}Ü×"Ñ" 4§;¡;Ø#$§8¡8Ü#*¨1£:ô/ð Ø˜Œ~˜A~Ü×"Ñ" 4§;¡;Ø#$§8¡8Ü#*¨A¨2£;ô0ð ܘ1“ ˆAÜ ‰˜Ÿ ™ ØŸ™ØŸ™ô    "ðˆ r#có—t|t«s t|«}tj|j|j«|S)z'Set the Integer to have the given value)rBr<rEÚmpz_setr@)rÚsources  r!ÚsetzIntegerGMP.set·s6€ô˜&¤*Ô-Ü Ó'ˆFÜ  ‰ T—[‘[Ø—]‘]ô    $àˆ r#cóT—t|t«s t|«}tj|j|j
«}|dk(r t d«‚|dkr td«‚tj|j|j|j«}|s td«‚|S)z…Compute the inverse of this number in the ring of
        modulo integers.
 
        Raise an exception if no inverse exists.
        rúModulus cannot be zeror¾z No inverse value can be computed)    rBr<rErWr@rXr¸rDÚ
mpz_invert)rrÊrÁr‡s    r!Úinplace_inversezIntegerGMP.inplace_inverseÀs“€ô˜'¤:Ô.Ü  Ó)ˆGä|‰|˜GŸN™NØ ×,Ñ,ó.ˆà 1Š9Ü#Ð$<Ó=Ð =Ø !Š8ÜÐ7Ó8Ð 8ä—‘ §¡Ø!%§¡Ø!(§¡ó1ˆñÜÐ?Ó@Ð @؈ r#có>—t|«}|j|«|Sr4)r<rrÔs   r!ÚinversezIntegerGMP.inverseØs€Ü˜DÓ!ˆØ×јwÔ'؈ r#có:—td«}t|«rOd|cxkrdkr9nn6tj|j|jt |««|St|«}tj |j|j|j«|S)zUCompute the greatest common denominator between this
        number and another term.riÿÿ)r<rrEÚ
mpz_gcd_uir@rÚmpz_gcdr¬s   r!ÚgcdzIntegerGMP.gcdÝst€ô˜A“ˆÜ ˜Ô ؐ4Ô˜%ÕÜ—‘ § ¡ Ø $§ ¡ Ü '¨£ ô/ð ܘdÓ#ˆDÜ  ‰ V—]‘] D§K¡K°·±Ô=؈ r#có¼—td«}t|t«s t|«}tj|j|j|j«|S)zQCompute the least common multiplier between this
        number and another term.r)r<rBrEÚmpz_lcmr@r¬s   r!ÚlcmzIntegerGMP.lcmìsB€ô˜A“ˆÜ˜$¤
Ô+ܘdÓ#ˆDÜ  ‰ V—]‘] D§K¡K°·±Ô=؈ r#có—t|t«s t|«}t|t«s t|«}|dks|j«r td«‚tj |j |j «S)zCompute the Jacobi symbolrz,n must be positive odd for the Jacobi symbol)rBr<rrDrEÚ
mpz_jacobir@)rrûs  r!Ú jacobi_symbolzIntegerGMP.jacobi_symbolös^€ô˜!œZÔ(ܘ1“ ˆAܘ!œZÔ(ܘ1“ ˆAØ Š6Q—Y‘Y”[ÜÐKÓLÐ L܏‰˜qŸx™x¨¯©Ó2Ð2r#cóX—t|t«s t|«}t|t«s t|«}t|t«s t|«}|dkr td«‚|dk(r td«‚|dzdk(r td«‚||z|z}|j    |j ««S)Nrr¾rr    zOdd modulus is required)rBr<rDr¸r‰r)Úterm1Úterm2rÊÚproducts    r!Ú_mult_modulo_byteszIntegerGMP._mult_modulo_bytess¤€ä˜%¤Ô,ܘuÓ%ˆEܘ%¤Ô,ܘuÓ%ˆEܘ'¤:Ô.Ü  Ó)ˆGà QŠ;ÜÐ7Ó8Ð 8Ø aŠ<Ü#Ð$<Ó=Ð =Ø a‰K˜AÒ ÜÐ6Ó7Ð 7à˜5‘= GÑ+ˆØ×Ñ × 5Ñ 5Ó 7Ó8Ð8r#c󠗠   |j+|jrtj|j«d|_y#t$rYywxYwr4)r@rArErLrras r!Ú__del__zIntegerGMP.__del__sC€ð    Ø{‰{Ð&Ø×$Ò$Ü—N‘N 4§;¡;Ô/àˆDKøÜò    Ù ð    ús‚>AÁ    A Á A )rrv)rvr4)?r$r%r&Ú__doc__r5rXrEÚmpz_init_set_uirrUr^rbrerhrjr‰Ú staticmethodrr’r–r˜rœrŸr¢r¤r§Ú__bool__r©r­r²rµr»rÂrËrÍrÐrÕrÛrÞrárãrærêrïròrõr÷rürÿrrrr rrrrr!r%r(r+r0r2r'r#r!r<r<›s[„Ù-á“)€KØ×ј¡g¨a£jÔ1ò'&òTò&ò)òòó:ðxòóðò@.ò
?ò
?ò
>ò?ò>ò?ò@à€Hò?ò
ò
ò
ò
ò ó%óN5òó
ò$ò$ò$ò& òòò ò òòò 6ò4ò4ò3ò2ò;ò 7òò,òò0ò
òðñ    3óð    3ðñ9óð9ó&    r#r<)"Úsysr}ÚCrypto.Util.py3compatrÚCrypto.Util._raw_apirrrrrÚ _IntegerBaser
Úgmp_defsÚplatformÚ ImportErrorrÚimplementationÚhasattrÚobjectrrEr(r)r*r+r,r.r5r|Úrestyper6Úcalcsizeryr<r'r#r!ú<module>rCsêðó> Û å/÷BõBõ&ð8 €ðt‡<<7ÒÙ
Ð0Ó
1Ð1áˆuhÓ€Ø"¨7Ñ3€á
ˆ3РÔ!Ù
Ð-Ó
.Ð.ô ˆ6ô ñ ƒv€ð %јHÒ$ß8Ó8ô)ˆyô)ò
ð!(€D×ÑÕõ)òð
—‘ Ó$Ñ $€    ôD
õD
r#