[infiniband] Use "%d" as format specifier for LIDs
[ipxe.git] / src / tests / bigint_test.c
1 /*
2 * Copyright (C) 2012 Michael Brown <mbrown@fensystems.co.uk>.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA.
18 *
19 * You can also choose to distribute this program under the terms of
20 * the Unmodified Binary Distribution Licence (as given in the file
21 * COPYING.UBDL), provided that you have satisfied its requirements.
22 */
23
24 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
25
26 /** @file
27 *
28 * Big integer self-tests
29 *
30 */
31
32 /* Forcibly enable assertions */
33 #undef NDEBUG
34
35 #include <assert.h>
36 #include <string.h>
37 #include <ipxe/bigint.h>
38 #include <ipxe/test.h>
39
40 /** Define inline big integer */
41 #define BIGINT(...) { __VA_ARGS__ }
42
43 /* Provide global functions to allow inspection of generated assembly code */
44
45 void bigint_init_sample ( bigint_element_t *value0, unsigned int size,
46 const void *data, size_t len ) {
47 bigint_t ( size ) *value __attribute__ (( may_alias ))
48 = ( ( void * ) value0 );
49
50 bigint_init ( value, data, len );
51 }
52
53 void bigint_done_sample ( const bigint_element_t *value0, unsigned int size,
54 void *out, size_t len ) {
55 const bigint_t ( size ) *value __attribute__ (( may_alias ))
56 = ( ( const void * ) value0 );
57
58 bigint_done ( value, out, len );
59 }
60
61 void bigint_add_sample ( const bigint_element_t *addend0,
62 bigint_element_t *value0, unsigned int size ) {
63 const bigint_t ( size ) *addend __attribute__ (( may_alias ))
64 = ( ( const void * ) addend0 );
65 bigint_t ( size ) *value __attribute__ (( may_alias ))
66 = ( ( void * ) value0 );
67
68 bigint_add ( addend, value );
69 }
70
71 void bigint_subtract_sample ( const bigint_element_t *subtrahend0,
72 bigint_element_t *value0, unsigned int size ) {
73 const bigint_t ( size ) *subtrahend __attribute__ (( may_alias ))
74 = ( ( const void * ) subtrahend0 );
75 bigint_t ( size ) *value __attribute__ (( may_alias ))
76 = ( ( void * ) value0 );
77
78 bigint_subtract ( subtrahend, value );
79 }
80
81 void bigint_rol_sample ( bigint_element_t *value0, unsigned int size ) {
82 bigint_t ( size ) *value __attribute__ (( may_alias ))
83 = ( ( void * ) value0 );
84
85 bigint_rol ( value );
86 }
87
88 void bigint_ror_sample ( bigint_element_t *value0, unsigned int size ) {
89 bigint_t ( size ) *value __attribute__ (( may_alias ))
90 = ( ( void * ) value0 );
91
92 bigint_ror ( value );
93 }
94
95 int bigint_is_zero_sample ( const bigint_element_t *value0,
96 unsigned int size ) {
97 const bigint_t ( size ) *value __attribute__ (( may_alias ))
98 = ( ( const void * ) value0 );
99
100 return bigint_is_zero ( value );
101 }
102
103 int bigint_is_geq_sample ( const bigint_element_t *value0,
104 const bigint_element_t *reference0,
105 unsigned int size ) {
106 const bigint_t ( size ) *value __attribute__ (( may_alias ))
107 = ( ( const void * ) value0 );
108 const bigint_t ( size ) *reference __attribute__ (( may_alias ))
109 = ( ( const void * ) reference0 );
110
111 return bigint_is_geq ( value, reference );
112 }
113
114 int bigint_bit_is_set_sample ( const bigint_element_t *value0,
115 unsigned int size, unsigned int bit ) {
116 const bigint_t ( size ) *value __attribute__ (( may_alias ))
117 = ( ( const void * ) value0 );
118
119 return bigint_bit_is_set ( value, bit );
120 }
121
122 int bigint_max_set_bit_sample ( const bigint_element_t *value0,
123 unsigned int size ) {
124 const bigint_t ( size ) *value __attribute__ (( may_alias ))
125 = ( ( const void * ) value0 );
126
127 return bigint_max_set_bit ( value );
128 }
129
130 void bigint_grow_sample ( const bigint_element_t *source0,
131 unsigned int source_size, bigint_element_t *dest0,
132 unsigned int dest_size ) {
133 const bigint_t ( source_size ) *source __attribute__ (( may_alias ))
134 = ( ( const void * ) source0 );
135 bigint_t ( dest_size ) *dest __attribute__ (( may_alias ))
136 = ( ( void * ) dest0 );
137
138 bigint_grow ( source, dest );
139 }
140
141 void bigint_shrink_sample ( const bigint_element_t *source0,
142 unsigned int source_size, bigint_element_t *dest0,
143 unsigned int dest_size ) {
144 const bigint_t ( source_size ) *source __attribute__ (( may_alias ))
145 = ( ( const void * ) source0 );
146 bigint_t ( dest_size ) *dest __attribute__ (( may_alias ))
147 = ( ( void * ) dest0 );
148
149 bigint_shrink ( source, dest );
150 }
151
152 void bigint_multiply_sample ( const bigint_element_t *multiplicand0,
153 const bigint_element_t *multiplier0,
154 bigint_element_t *result0,
155 unsigned int size ) {
156 const bigint_t ( size ) *multiplicand __attribute__ (( may_alias ))
157 = ( ( const void * ) multiplicand0 );
158 const bigint_t ( size ) *multiplier __attribute__ (( may_alias ))
159 = ( ( const void * ) multiplier0 );
160 bigint_t ( size * 2 ) *result __attribute__ (( may_alias ))
161 = ( ( void * ) result0 );
162
163 bigint_multiply ( multiplicand, multiplier, result );
164 }
165
166 void bigint_mod_multiply_sample ( const bigint_element_t *multiplicand0,
167 const bigint_element_t *multiplier0,
168 const bigint_element_t *modulus0,
169 bigint_element_t *result0,
170 unsigned int size,
171 void *tmp ) {
172 const bigint_t ( size ) *multiplicand __attribute__ (( may_alias ))
173 = ( ( const void * ) multiplicand0 );
174 const bigint_t ( size ) *multiplier __attribute__ (( may_alias ))
175 = ( ( const void * ) multiplier0 );
176 const bigint_t ( size ) *modulus __attribute__ (( may_alias ))
177 = ( ( const void * ) modulus0 );
178 bigint_t ( size ) *result __attribute__ (( may_alias ))
179 = ( ( void * ) result0 );
180
181 bigint_mod_multiply ( multiplicand, multiplier, modulus, result, tmp );
182 }
183
184 void bigint_mod_exp_sample ( const bigint_element_t *base0,
185 const bigint_element_t *modulus0,
186 const bigint_element_t *exponent0,
187 bigint_element_t *result0,
188 unsigned int size, unsigned int exponent_size,
189 void *tmp ) {
190 const bigint_t ( size ) *base __attribute__ (( may_alias ))
191 = ( ( const void * ) base0 );
192 const bigint_t ( size ) *modulus __attribute__ (( may_alias ))
193 = ( ( const void * ) modulus0 );
194 const bigint_t ( exponent_size ) *exponent __attribute__ (( may_alias ))
195 = ( ( const void * ) exponent0 );
196 bigint_t ( size ) *result __attribute__ (( may_alias ))
197 = ( ( void * ) result0 );
198
199 bigint_mod_exp ( base, modulus, exponent, result, tmp );
200 }
201
202 /**
203 * Report result of big integer addition test
204 *
205 * @v addend Big integer to add
206 * @v value Big integer to be added to
207 * @v expected Big integer expected result
208 */
209 #define bigint_add_ok( addend, value, expected ) do { \
210 static const uint8_t addend_raw[] = addend; \
211 static const uint8_t value_raw[] = value; \
212 static const uint8_t expected_raw[] = expected; \
213 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
214 unsigned int size = \
215 bigint_required_size ( sizeof ( value_raw ) ); \
216 bigint_t ( size ) addend_temp; \
217 bigint_t ( size ) value_temp; \
218 {} /* Fix emacs alignment */ \
219 \
220 assert ( bigint_size ( &addend_temp ) == \
221 bigint_size ( &value_temp ) ); \
222 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
223 bigint_init ( &addend_temp, addend_raw, \
224 sizeof ( addend_raw ) ); \
225 DBG ( "Add:\n" ); \
226 DBG_HDA ( 0, &addend_temp, sizeof ( addend_temp ) ); \
227 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
228 bigint_add ( &addend_temp, &value_temp ); \
229 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
230 bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
231 \
232 ok ( memcmp ( result_raw, expected_raw, \
233 sizeof ( result_raw ) ) == 0 ); \
234 } while ( 0 )
235
236 /**
237 * Report result of big integer subtraction test
238 *
239 * @v subtrahend Big integer to subtract
240 * @v value Big integer to be subtracted from
241 * @v expected Big integer expected result
242 */
243 #define bigint_subtract_ok( subtrahend, value, expected ) do { \
244 static const uint8_t subtrahend_raw[] = subtrahend; \
245 static const uint8_t value_raw[] = value; \
246 static const uint8_t expected_raw[] = expected; \
247 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
248 unsigned int size = \
249 bigint_required_size ( sizeof ( value_raw ) ); \
250 bigint_t ( size ) subtrahend_temp; \
251 bigint_t ( size ) value_temp; \
252 {} /* Fix emacs alignment */ \
253 \
254 assert ( bigint_size ( &subtrahend_temp ) == \
255 bigint_size ( &value_temp ) ); \
256 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
257 bigint_init ( &subtrahend_temp, subtrahend_raw, \
258 sizeof ( subtrahend_raw ) ); \
259 DBG ( "Subtract:\n" ); \
260 DBG_HDA ( 0, &subtrahend_temp, sizeof ( subtrahend_temp ) ); \
261 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
262 bigint_subtract ( &subtrahend_temp, &value_temp ); \
263 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
264 bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
265 \
266 ok ( memcmp ( result_raw, expected_raw, \
267 sizeof ( result_raw ) ) == 0 ); \
268 } while ( 0 )
269
270 /**
271 * Report result of big integer left rotation test
272 *
273 * @v value Big integer
274 * @v expected Big integer expected result
275 */
276 #define bigint_rol_ok( value, expected ) do { \
277 static const uint8_t value_raw[] = value; \
278 static const uint8_t expected_raw[] = expected; \
279 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
280 unsigned int size = \
281 bigint_required_size ( sizeof ( value_raw ) ); \
282 bigint_t ( size ) value_temp; \
283 {} /* Fix emacs alignment */ \
284 \
285 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
286 DBG ( "Rotate left:\n" ); \
287 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
288 bigint_rol ( &value_temp ); \
289 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
290 bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
291 \
292 ok ( memcmp ( result_raw, expected_raw, \
293 sizeof ( result_raw ) ) == 0 ); \
294 } while ( 0 )
295
296 /**
297 * Report result of big integer right rotation test
298 *
299 * @v value Big integer
300 * @v expected Big integer expected result
301 */
302 #define bigint_ror_ok( value, expected ) do { \
303 static const uint8_t value_raw[] = value; \
304 static const uint8_t expected_raw[] = expected; \
305 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
306 unsigned int size = \
307 bigint_required_size ( sizeof ( value_raw ) ); \
308 bigint_t ( size ) value_temp; \
309 {} /* Fix emacs alignment */ \
310 \
311 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
312 DBG ( "Rotate right:\n" ); \
313 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
314 bigint_ror ( &value_temp ); \
315 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
316 bigint_done ( &value_temp, result_raw, sizeof ( result_raw ) ); \
317 \
318 ok ( memcmp ( result_raw, expected_raw, \
319 sizeof ( result_raw ) ) == 0 ); \
320 } while ( 0 )
321
322 /**
323 * Report result of big integer zero comparison test
324 *
325 * @v value Big integer
326 * @v expected Expected result
327 */
328 #define bigint_is_zero_ok( value, expected ) do { \
329 static const uint8_t value_raw[] = value; \
330 unsigned int size = \
331 bigint_required_size ( sizeof ( value_raw ) ); \
332 bigint_t ( size ) value_temp; \
333 int is_zero; \
334 {} /* Fix emacs alignment */ \
335 \
336 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
337 DBG ( "Zero comparison:\n" ); \
338 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
339 is_zero = bigint_is_zero ( &value_temp ); \
340 DBG ( "...is %szero\n", ( is_zero ? "" : "not " ) ); \
341 ok ( ( !! is_zero ) == ( !! (expected) ) ); \
342 } while ( 0 )
343
344 /**
345 * Report result of big integer greater-than-or-equal comparison test
346 *
347 * @v value Big integer
348 * @v reference Reference big integer
349 * @v expected Expected result
350 */
351 #define bigint_is_geq_ok( value, reference, expected ) do { \
352 static const uint8_t value_raw[] = value; \
353 static const uint8_t reference_raw[] = reference; \
354 unsigned int size = \
355 bigint_required_size ( sizeof ( value_raw ) ); \
356 bigint_t ( size ) value_temp; \
357 bigint_t ( size ) reference_temp; \
358 int is_geq; \
359 {} /* Fix emacs alignment */ \
360 \
361 assert ( bigint_size ( &reference_temp ) == \
362 bigint_size ( &value_temp ) ); \
363 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
364 bigint_init ( &reference_temp, reference_raw, \
365 sizeof ( reference_raw ) ); \
366 DBG ( "Greater-than-or-equal comparison:\n" ); \
367 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
368 DBG_HDA ( 0, &reference_temp, sizeof ( reference_temp ) ); \
369 is_geq = bigint_is_geq ( &value_temp, &reference_temp ); \
370 DBG ( "...is %sgreater than or equal\n", \
371 ( is_geq ? "" : "not " ) ); \
372 ok ( ( !! is_geq ) == ( !! (expected) ) ); \
373 } while ( 0 )
374
375 /**
376 * Report result of big integer bit-set test
377 *
378 * @v value Big integer
379 * @v bit Bit to test
380 * @v expected Expected result
381 */
382 #define bigint_bit_is_set_ok( value, bit, expected ) do { \
383 static const uint8_t value_raw[] = value; \
384 unsigned int size = \
385 bigint_required_size ( sizeof ( value_raw ) ); \
386 bigint_t ( size ) value_temp; \
387 int bit_is_set; \
388 {} /* Fix emacs alignment */ \
389 \
390 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
391 DBG ( "Bit set:\n" ); \
392 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
393 bit_is_set = bigint_bit_is_set ( &value_temp, bit ); \
394 DBG ( "...bit %d is %sset\n", bit, \
395 ( bit_is_set ? "" : "not " ) ); \
396 ok ( ( !! bit_is_set ) == ( !! (expected) ) ); \
397 } while ( 0 )
398
399 /**
400 * Report result of big integer maximum set bit test
401 *
402 * @v value Big integer
403 * @v expected Expected result
404 */
405 #define bigint_max_set_bit_ok( value, expected ) do { \
406 static const uint8_t value_raw[] = value; \
407 unsigned int size = \
408 bigint_required_size ( sizeof ( value_raw ) ); \
409 bigint_t ( size ) value_temp; \
410 int max_set_bit; \
411 {} /* Fix emacs alignment */ \
412 \
413 bigint_init ( &value_temp, value_raw, sizeof ( value_raw ) ); \
414 DBG ( "Maximum set bit:\n" ); \
415 DBG_HDA ( 0, &value_temp, sizeof ( value_temp ) ); \
416 max_set_bit = bigint_max_set_bit ( &value_temp ); \
417 DBG ( "...maximum set bit is bit %d\n", ( max_set_bit - 1 ) ); \
418 ok ( max_set_bit == (expected) ); \
419 } while ( 0 )
420
421 /**
422 * Report result of big integer multiplication test
423 *
424 * @v multiplicand Big integer to be multiplied
425 * @v multiplier Big integer to be multiplied
426 * @v expected Big integer expected result
427 */
428 #define bigint_multiply_ok( multiplicand, multiplier, expected ) do { \
429 static const uint8_t multiplicand_raw[] = multiplicand; \
430 static const uint8_t multiplier_raw[] = multiplier; \
431 static const uint8_t expected_raw[] = expected; \
432 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
433 unsigned int size = \
434 bigint_required_size ( sizeof ( multiplicand_raw ) ); \
435 bigint_t ( size ) multiplicand_temp; \
436 bigint_t ( size ) multiplier_temp; \
437 bigint_t ( size * 2 ) result_temp; \
438 {} /* Fix emacs alignment */ \
439 \
440 assert ( bigint_size ( &multiplier_temp ) == \
441 bigint_size ( &multiplicand_temp ) ); \
442 assert ( bigint_size ( &result_temp ) == \
443 ( 2 * bigint_size ( &multiplicand_temp ) ) ); \
444 bigint_init ( &multiplicand_temp, multiplicand_raw, \
445 sizeof ( multiplicand_raw ) ); \
446 bigint_init ( &multiplier_temp, multiplier_raw, \
447 sizeof ( multiplier_raw ) ); \
448 DBG ( "Multiply:\n" ); \
449 DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\
450 DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \
451 bigint_multiply ( &multiplicand_temp, &multiplier_temp, \
452 &result_temp ); \
453 DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
454 bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
455 \
456 ok ( memcmp ( result_raw, expected_raw, \
457 sizeof ( result_raw ) ) == 0 ); \
458 } while ( 0 )
459
460 /**
461 * Report result of big integer modular multiplication test
462 *
463 * @v multiplicand Big integer to be multiplied
464 * @v multiplier Big integer to be multiplied
465 * @v modulus Big integer modulus
466 * @v expected Big integer expected result
467 */
468 #define bigint_mod_multiply_ok( multiplicand, multiplier, modulus, \
469 expected ) do { \
470 static const uint8_t multiplicand_raw[] = multiplicand; \
471 static const uint8_t multiplier_raw[] = multiplier; \
472 static const uint8_t modulus_raw[] = modulus; \
473 static const uint8_t expected_raw[] = expected; \
474 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
475 unsigned int size = \
476 bigint_required_size ( sizeof ( multiplicand_raw ) ); \
477 bigint_t ( size ) multiplicand_temp; \
478 bigint_t ( size ) multiplier_temp; \
479 bigint_t ( size ) modulus_temp; \
480 bigint_t ( size ) result_temp; \
481 size_t tmp_len = bigint_mod_multiply_tmp_len ( &modulus_temp ); \
482 uint8_t tmp[tmp_len]; \
483 {} /* Fix emacs alignment */ \
484 \
485 assert ( bigint_size ( &multiplier_temp ) == \
486 bigint_size ( &multiplicand_temp ) ); \
487 assert ( bigint_size ( &multiplier_temp ) == \
488 bigint_size ( &modulus_temp ) ); \
489 assert ( bigint_size ( &multiplier_temp ) == \
490 bigint_size ( &result_temp ) ); \
491 bigint_init ( &multiplicand_temp, multiplicand_raw, \
492 sizeof ( multiplicand_raw ) ); \
493 bigint_init ( &multiplier_temp, multiplier_raw, \
494 sizeof ( multiplier_raw ) ); \
495 bigint_init ( &modulus_temp, modulus_raw, \
496 sizeof ( modulus_raw ) ); \
497 DBG ( "Modular multiply:\n" ); \
498 DBG_HDA ( 0, &multiplicand_temp, sizeof ( multiplicand_temp ) );\
499 DBG_HDA ( 0, &multiplier_temp, sizeof ( multiplier_temp ) ); \
500 DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \
501 bigint_mod_multiply ( &multiplicand_temp, &multiplier_temp, \
502 &modulus_temp, &result_temp, tmp ); \
503 DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
504 bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
505 \
506 ok ( memcmp ( result_raw, expected_raw, \
507 sizeof ( result_raw ) ) == 0 ); \
508 } while ( 0 )
509
510 /**
511 * Report result of big integer modular exponentiation test
512 *
513 * @v base Big integer base
514 * @v modulus Big integer modulus
515 * @v exponent Big integer exponent
516 * @v expected Big integer expected result
517 */
518 #define bigint_mod_exp_ok( base, modulus, exponent, expected ) do { \
519 static const uint8_t base_raw[] = base; \
520 static const uint8_t modulus_raw[] = modulus; \
521 static const uint8_t exponent_raw[] = exponent; \
522 static const uint8_t expected_raw[] = expected; \
523 uint8_t result_raw[ sizeof ( expected_raw ) ]; \
524 unsigned int size = \
525 bigint_required_size ( sizeof ( base_raw ) ); \
526 unsigned int exponent_size = \
527 bigint_required_size ( sizeof ( exponent_raw ) ); \
528 bigint_t ( size ) base_temp; \
529 bigint_t ( size ) modulus_temp; \
530 bigint_t ( exponent_size ) exponent_temp; \
531 bigint_t ( size ) result_temp; \
532 size_t tmp_len = bigint_mod_exp_tmp_len ( &modulus_temp, \
533 &exponent_temp ); \
534 uint8_t tmp[tmp_len]; \
535 {} /* Fix emacs alignment */ \
536 \
537 assert ( bigint_size ( &modulus_temp ) == \
538 bigint_size ( &base_temp ) ); \
539 assert ( bigint_size ( &modulus_temp ) == \
540 bigint_size ( &result_temp ) ); \
541 bigint_init ( &base_temp, base_raw, sizeof ( base_raw ) ); \
542 bigint_init ( &modulus_temp, modulus_raw, \
543 sizeof ( modulus_raw ) ); \
544 bigint_init ( &exponent_temp, exponent_raw, \
545 sizeof ( exponent_raw ) ); \
546 DBG ( "Modular exponentiation:\n" ); \
547 DBG_HDA ( 0, &base_temp, sizeof ( base_temp ) ); \
548 DBG_HDA ( 0, &modulus_temp, sizeof ( modulus_temp ) ); \
549 DBG_HDA ( 0, &exponent_temp, sizeof ( exponent_temp ) ); \
550 bigint_mod_exp ( &base_temp, &modulus_temp, &exponent_temp, \
551 &result_temp, tmp ); \
552 DBG_HDA ( 0, &result_temp, sizeof ( result_temp ) ); \
553 bigint_done ( &result_temp, result_raw, sizeof ( result_raw ) );\
554 \
555 ok ( memcmp ( result_raw, expected_raw, \
556 sizeof ( result_raw ) ) == 0 ); \
557 } while ( 0 )
558
559 /**
560 * Perform big integer self-tests
561 *
562 */
563 static void bigint_test_exec ( void ) {
564
565 bigint_add_ok ( BIGINT ( 0x8a ),
566 BIGINT ( 0x43 ),
567 BIGINT ( 0xcd ) );
568 bigint_add_ok ( BIGINT ( 0xc5, 0x7b ),
569 BIGINT ( 0xd6, 0xb1 ),
570 BIGINT ( 0x9c, 0x2c ) );
571 bigint_add_ok ( BIGINT ( 0xf9, 0xd9, 0xdc ),
572 BIGINT ( 0x6d, 0x4b, 0xca ),
573 BIGINT ( 0x67, 0x25, 0xa6 ) );
574 bigint_add_ok ( BIGINT ( 0xdd, 0xc2, 0x20, 0x5f ),
575 BIGINT ( 0x80, 0x32, 0xc4, 0xb0 ),
576 BIGINT ( 0x5d, 0xf4, 0xe5, 0x0f ) );
577 bigint_add_ok ( BIGINT ( 0x01, 0xed, 0x45, 0x4b, 0x41, 0xeb, 0x4c,
578 0x2e, 0x53, 0x07, 0x15, 0x51, 0x56, 0x47,
579 0x29, 0xfc, 0x9c, 0xbd, 0xbd, 0xfb, 0x1b,
580 0xd1, 0x1d ),
581 BIGINT ( 0x73, 0xed, 0xfc, 0x35, 0x31, 0x22, 0xd7,
582 0xb1, 0xea, 0x91, 0x5a, 0xe4, 0xba, 0xbc,
583 0xa1, 0x38, 0x72, 0xae, 0x4b, 0x1c, 0xc1,
584 0x05, 0xb3 ),
585 BIGINT ( 0x75, 0xdb, 0x41, 0x80, 0x73, 0x0e, 0x23,
586 0xe0, 0x3d, 0x98, 0x70, 0x36, 0x11, 0x03,
587 0xcb, 0x35, 0x0f, 0x6c, 0x09, 0x17, 0xdc,
588 0xd6, 0xd0 ) );
589 bigint_add_ok ( BIGINT ( 0x06, 0x8e, 0xd6, 0x18, 0xbb, 0x4b, 0x0c,
590 0xc5, 0x85, 0xde, 0xee, 0x9b, 0x3f, 0x65,
591 0x63, 0x86, 0xf5, 0x5a, 0x9f, 0xa2, 0xd7,
592 0xb2, 0xc7, 0xb6, 0x1d, 0x28, 0x6c, 0x50,
593 0x47, 0x10, 0x0a, 0x0e, 0x86, 0xcd, 0x2a,
594 0x64, 0xdc, 0xe6, 0x9d, 0x96, 0xd8, 0xf4,
595 0x56, 0x46, 0x6f, 0xbb, 0x7b, 0x64, 0x6f,
596 0xdc, 0x2a, 0xd1, 0x3b, 0xcc, 0x03, 0x85,
597 0x95, 0xf4, 0xe9, 0x68, 0x1f, 0x5c, 0xc5,
598 0xbf, 0x97, 0x19, 0x12, 0x88, 0x2e, 0x88,
599 0xb9, 0x34, 0xac, 0x74, 0x83, 0x2d, 0x8f,
600 0xb3, 0x97, 0x53, 0x99, 0xf3, 0xb4, 0x8b,
601 0x2d, 0x98, 0x69, 0x8d, 0x19, 0xf0, 0x40,
602 0x66, 0x3f, 0x60, 0x78, 0x34, 0x7f, 0x9b,
603 0xf7, 0x01, 0x74, 0x55, 0xca, 0x63, 0x25,
604 0x7b, 0x86, 0xe9, 0x73, 0xfd, 0x5d, 0x77,
605 0x32, 0x5e, 0x9e, 0x42, 0x53, 0xb6, 0x35,
606 0x92, 0xb9, 0xd7, 0x1b, 0xf7, 0x16, 0x55,
607 0xf6, 0xe2 ),
608 BIGINT ( 0x3f, 0x8f, 0x62, 0x21, 0x4a, 0x7a, 0xa2,
609 0xef, 0xa8, 0x79, 0x9b, 0x73, 0xac, 0xde,
610 0x72, 0xe4, 0xfc, 0x3c, 0xd3, 0xa9, 0x44,
611 0x1a, 0x6a, 0x02, 0x76, 0xe3, 0x78, 0x4d,
612 0x2e, 0x07, 0x9b, 0xb6, 0x3d, 0x5d, 0xc5,
613 0xcd, 0x68, 0x23, 0x4b, 0x5f, 0x89, 0x0e,
614 0xd7, 0xa7, 0xff, 0x18, 0x80, 0xdc, 0xfb,
615 0x34, 0x45, 0xca, 0x4b, 0xdb, 0x8a, 0x19,
616 0xcb, 0xc9, 0xe5, 0xa1, 0x63, 0xa2, 0x0d,
617 0x56, 0xc4, 0xf9, 0x51, 0x1b, 0x88, 0x4e,
618 0x36, 0xab, 0x15, 0x4d, 0x8f, 0xdc, 0x08,
619 0xc4, 0x4d, 0x43, 0xc7, 0x2b, 0xc9, 0x5c,
620 0x05, 0x26, 0xe3, 0x46, 0xf0, 0x64, 0xaa,
621 0x02, 0xa4, 0xbe, 0x3a, 0xd1, 0xca, 0x07,
622 0x6a, 0x6e, 0x62, 0xf4, 0x57, 0x71, 0x96,
623 0xec, 0xf0, 0x0b, 0xac, 0xa4, 0x4a, 0xa3,
624 0x6d, 0x01, 0xba, 0xbd, 0x62, 0xc0, 0x10,
625 0x54, 0x33, 0x8a, 0x71, 0xef, 0xaa, 0x1c,
626 0x25, 0x25 ),
627 BIGINT ( 0x46, 0x1e, 0x38, 0x3a, 0x05, 0xc5, 0xaf,
628 0xb5, 0x2e, 0x58, 0x8a, 0x0e, 0xec, 0x43,
629 0xd6, 0x6b, 0xf1, 0x97, 0x73, 0x4c, 0x1b,
630 0xcd, 0x31, 0xb8, 0x94, 0x0b, 0xe4, 0x9d,
631 0x75, 0x17, 0xa5, 0xc4, 0xc4, 0x2a, 0xf0,
632 0x32, 0x45, 0x09, 0xe8, 0xf6, 0x62, 0x03,
633 0x2d, 0xee, 0x6e, 0xd3, 0xfc, 0x41, 0x6b,
634 0x10, 0x70, 0x9b, 0x87, 0xa7, 0x8d, 0x9f,
635 0x61, 0xbe, 0xcf, 0x09, 0x82, 0xfe, 0xd3,
636 0x16, 0x5c, 0x12, 0x63, 0xa3, 0xb6, 0xd6,
637 0xef, 0xdf, 0xc1, 0xc2, 0x13, 0x09, 0x98,
638 0x77, 0xe4, 0x97, 0x61, 0x1f, 0x7d, 0xe7,
639 0x32, 0xbf, 0x4c, 0xd4, 0x0a, 0x54, 0xea,
640 0x68, 0xe4, 0x1e, 0xb3, 0x06, 0x49, 0xa3,
641 0x61, 0x6f, 0xd7, 0x4a, 0x21, 0xd4, 0xbc,
642 0x68, 0x76, 0xf5, 0x20, 0xa1, 0xa8, 0x1a,
643 0x9f, 0x60, 0x58, 0xff, 0xb6, 0x76, 0x45,
644 0xe6, 0xed, 0x61, 0x8d, 0xe6, 0xc0, 0x72,
645 0x1c, 0x07 ) );
646 bigint_subtract_ok ( BIGINT ( 0x83 ),
647 BIGINT ( 0x50 ),
648 BIGINT ( 0xcd ) );
649 bigint_subtract_ok ( BIGINT ( 0x2c, 0x7c ),
650 BIGINT ( 0x49, 0x0e ),
651 BIGINT ( 0x1c, 0x92 ) );
652 bigint_subtract_ok ( BIGINT ( 0x9c, 0x30, 0xbf ),
653 BIGINT ( 0xde, 0x4e, 0x07 ),
654 BIGINT ( 0x42, 0x1d, 0x48 ) );
655 bigint_subtract_ok ( BIGINT ( 0xbb, 0x77, 0x32, 0x5a ),
656 BIGINT ( 0x5a, 0xd5, 0xfe, 0x28 ),
657 BIGINT ( 0x9f, 0x5e, 0xcb, 0xce ) );
658 bigint_subtract_ok ( BIGINT ( 0x7b, 0xaa, 0x16, 0xcf, 0x15, 0x87,
659 0xe0, 0x4f, 0x2c, 0xa3, 0xec, 0x2f,
660 0x46, 0xfb, 0x83, 0xc6, 0xe0, 0xee,
661 0x57, 0xfa, 0x04, 0xce, 0xa6 ),
662 BIGINT ( 0x46, 0x55, 0xb6, 0x23, 0x63, 0xd0,
663 0x55, 0xdb, 0x8f, 0xcc, 0x55, 0xa8,
664 0x2f, 0x85, 0xc1, 0x9f, 0x2c, 0x13,
665 0x10, 0x9e, 0x76, 0x3c, 0x11 ),
666 BIGINT ( 0xca, 0xab, 0x9f, 0x54, 0x4e, 0x48,
667 0x75, 0x8c, 0x63, 0x28, 0x69, 0x78,
668 0xe8, 0x8a, 0x3d, 0xd8, 0x4b, 0x24,
669 0xb8, 0xa4, 0x71, 0x6d, 0x6b ) );
670 bigint_subtract_ok ( BIGINT ( 0x5b, 0x06, 0x77, 0x7b, 0xfd, 0x34,
671 0x5f, 0x0f, 0xd9, 0xbd, 0x8e, 0x5d,
672 0xc8, 0x4a, 0x70, 0x95, 0x1b, 0xb6,
673 0x48, 0xfb, 0x0e, 0x40, 0xce, 0x06,
674 0x66, 0xcc, 0x29, 0xe9, 0x51, 0x59,
675 0x59, 0xc9, 0x65, 0x07, 0x75, 0xb8,
676 0xd4, 0xcb, 0x07, 0x68, 0x14, 0x48,
677 0xc7, 0x1e, 0xfe, 0xb3, 0x4c, 0xf1,
678 0x10, 0xf0, 0xc7, 0x82, 0x38, 0x4c,
679 0xaf, 0x05, 0x6d, 0x91, 0xc5, 0x18,
680 0xfd, 0x1e, 0x26, 0x1b, 0xef, 0x71,
681 0x70, 0x2e, 0x06, 0x70, 0x8e, 0x54,
682 0xfa, 0x2b, 0x4d, 0x96, 0x85, 0x10,
683 0x03, 0x76, 0xe7, 0x17, 0x59, 0x86,
684 0x6c, 0x8b, 0x24, 0x6e, 0xd9, 0x30,
685 0xf3, 0xd2, 0x9b, 0x62, 0xdc, 0x23,
686 0x54, 0x06, 0x51, 0xb1, 0x95, 0x58,
687 0xec, 0x27, 0xf6, 0x19, 0xae, 0xf4,
688 0x31, 0xec, 0x72, 0x53, 0xcd, 0x32,
689 0xed, 0xf4, 0x25, 0x4a, 0x5b, 0x36,
690 0xa2, 0xb4, 0xa0, 0x29, 0x0c, 0x6b,
691 0x3f, 0xc2 ),
692 BIGINT ( 0x7a, 0xd4, 0x25, 0xf1, 0xb5, 0xf5,
693 0x00, 0x96, 0x47, 0x5b, 0x4f, 0x9f,
694 0x1f, 0x61, 0x69, 0xd9, 0x72, 0x47,
695 0xde, 0xbd, 0x87, 0x5d, 0x50, 0x91,
696 0x69, 0xd8, 0x35, 0xe0, 0x43, 0xd8,
697 0xd5, 0x15, 0xf2, 0xcd, 0x01, 0x73,
698 0x0d, 0x34, 0xf0, 0x34, 0x46, 0x76,
699 0xc0, 0x55, 0x7b, 0x27, 0xf5, 0x7b,
700 0x55, 0xe9, 0xd0, 0x29, 0x0b, 0x4b,
701 0x9f, 0x07, 0xbf, 0x2c, 0x3f, 0xef,
702 0x36, 0x34, 0xde, 0x29, 0x1d, 0x5d,
703 0x84, 0x5a, 0x5d, 0xc1, 0x02, 0x4d,
704 0x56, 0xf1, 0x47, 0x39, 0x37, 0xc9,
705 0xb5, 0x5f, 0x73, 0xec, 0x7c, 0x3d,
706 0xbd, 0xc0, 0xfd, 0x38, 0x6c, 0x91,
707 0x88, 0x4a, 0x0f, 0xee, 0xa1, 0x80,
708 0xf5, 0x6a, 0x7c, 0x8c, 0x02, 0xc3,
709 0x5a, 0xb2, 0x15, 0xa6, 0x2f, 0x6b,
710 0x5b, 0x78, 0xb5, 0xf3, 0xbd, 0xd0,
711 0xc8, 0xbc, 0xb1, 0xbb, 0xe1, 0xce,
712 0x22, 0x80, 0x34, 0x5a, 0x2a, 0x27,
713 0x83, 0xdc ),
714 BIGINT ( 0x1f, 0xcd, 0xae, 0x75, 0xb8, 0xc0,
715 0xa1, 0x86, 0x6d, 0x9d, 0xc1, 0x41,
716 0x57, 0x16, 0xf9, 0x44, 0x56, 0x91,
717 0x95, 0xc2, 0x79, 0x1c, 0x82, 0x8b,
718 0x03, 0x0c, 0x0b, 0xf6, 0xf2, 0x7f,
719 0x7b, 0x4c, 0x8d, 0xc5, 0x8b, 0xba,
720 0x38, 0x69, 0xe8, 0xcc, 0x32, 0x2d,
721 0xf9, 0x36, 0x7c, 0x74, 0xa8, 0x8a,
722 0x44, 0xf9, 0x08, 0xa6, 0xd2, 0xfe,
723 0xf0, 0x02, 0x51, 0x9a, 0x7a, 0xd6,
724 0x39, 0x16, 0xb8, 0x0d, 0x2d, 0xec,
725 0x14, 0x2c, 0x57, 0x50, 0x73, 0xf8,
726 0x5c, 0xc5, 0xf9, 0xa2, 0xb2, 0xb9,
727 0xb1, 0xe8, 0x8c, 0xd5, 0x22, 0xb7,
728 0x51, 0x35, 0xd8, 0xc9, 0x93, 0x60,
729 0x94, 0x77, 0x74, 0x8b, 0xc5, 0x5d,
730 0xa1, 0x64, 0x2a, 0xda, 0x6d, 0x6a,
731 0x6e, 0x8a, 0x1f, 0x8c, 0x80, 0x77,
732 0x29, 0x8c, 0x43, 0x9f, 0xf0, 0x9d,
733 0xda, 0xc8, 0x8c, 0x71, 0x86, 0x97,
734 0x7f, 0xcb, 0x94, 0x31, 0x1d, 0xbc,
735 0x44, 0x1a ) );
736 bigint_rol_ok ( BIGINT ( 0xe0 ),
737 BIGINT ( 0xc0 ) );
738 bigint_rol_ok ( BIGINT ( 0x43, 0x1d ),
739 BIGINT ( 0x86, 0x3a ) );
740 bigint_rol_ok ( BIGINT ( 0xac, 0xed, 0x9b ),
741 BIGINT ( 0x59, 0xdb, 0x36 ) );
742 bigint_rol_ok ( BIGINT ( 0x2c, 0xe8, 0x3a, 0x22 ),
743 BIGINT ( 0x59, 0xd0, 0x74, 0x44 ) );
744 bigint_rol_ok ( BIGINT ( 0x4e, 0x88, 0x4a, 0x05, 0x5e, 0x10, 0xee,
745 0x5b, 0xc6, 0x40, 0x0e, 0x03, 0xd7, 0x0d,
746 0x28, 0xa5, 0x55, 0xb2, 0x50, 0xef, 0x69,
747 0xd1, 0x1d ),
748 BIGINT ( 0x9d, 0x10, 0x94, 0x0a, 0xbc, 0x21, 0xdc,
749 0xb7, 0x8c, 0x80, 0x1c, 0x07, 0xae, 0x1a,
750 0x51, 0x4a, 0xab, 0x64, 0xa1, 0xde, 0xd3,
751 0xa2, 0x3a ) );
752 bigint_rol_ok ( BIGINT ( 0x07, 0x62, 0x78, 0x70, 0x2e, 0xd4, 0x41,
753 0xaa, 0x9b, 0x50, 0xb1, 0x9a, 0x71, 0xf5,
754 0x1c, 0x2f, 0xe7, 0x0d, 0xf1, 0x46, 0x57,
755 0x04, 0x99, 0x78, 0x4e, 0x84, 0x78, 0xba,
756 0x57, 0xea, 0xa5, 0x43, 0xf7, 0x02, 0xf0,
757 0x7a, 0x22, 0x60, 0x65, 0x42, 0xf2, 0x33,
758 0x7d, 0xe3, 0xa8, 0x1b, 0xc4, 0x14, 0xdb,
759 0xee, 0x4a, 0xf1, 0xe1, 0x52, 0xd4, 0xda,
760 0x23, 0xed, 0x13, 0x5d, 0xea, 0xcf, 0xf6,
761 0x5e, 0x39, 0x84, 0xe2, 0xb3, 0xa2, 0x05,
762 0xba, 0xd9, 0x49, 0x8e, 0x75, 0x1d, 0xdb,
763 0xe6, 0xb1, 0x6e, 0xda, 0x0a, 0x83, 0xd0,
764 0x6e, 0xcf, 0x7a, 0x66, 0xb7, 0x64, 0x84,
765 0xf5, 0x09, 0x5a, 0xa8, 0x11, 0x93, 0xf3,
766 0x4f, 0x02, 0x28, 0x00, 0x3a, 0xf0, 0xa9,
767 0x08, 0x77, 0x04, 0xf5, 0x04, 0xcd, 0x6b,
768 0x24, 0xbe, 0x0f, 0x6d, 0xe3, 0xb2, 0xd3,
769 0x07, 0x68, 0xe9, 0x00, 0x59, 0xa0, 0xe4,
770 0x9e, 0x5e ),
771 BIGINT ( 0x0e, 0xc4, 0xf0, 0xe0, 0x5d, 0xa8, 0x83,
772 0x55, 0x36, 0xa1, 0x63, 0x34, 0xe3, 0xea,
773 0x38, 0x5f, 0xce, 0x1b, 0xe2, 0x8c, 0xae,
774 0x09, 0x32, 0xf0, 0x9d, 0x08, 0xf1, 0x74,
775 0xaf, 0xd5, 0x4a, 0x87, 0xee, 0x05, 0xe0,
776 0xf4, 0x44, 0xc0, 0xca, 0x85, 0xe4, 0x66,
777 0xfb, 0xc7, 0x50, 0x37, 0x88, 0x29, 0xb7,
778 0xdc, 0x95, 0xe3, 0xc2, 0xa5, 0xa9, 0xb4,
779 0x47, 0xda, 0x26, 0xbb, 0xd5, 0x9f, 0xec,
780 0xbc, 0x73, 0x09, 0xc5, 0x67, 0x44, 0x0b,
781 0x75, 0xb2, 0x93, 0x1c, 0xea, 0x3b, 0xb7,
782 0xcd, 0x62, 0xdd, 0xb4, 0x15, 0x07, 0xa0,
783 0xdd, 0x9e, 0xf4, 0xcd, 0x6e, 0xc9, 0x09,
784 0xea, 0x12, 0xb5, 0x50, 0x23, 0x27, 0xe6,
785 0x9e, 0x04, 0x50, 0x00, 0x75, 0xe1, 0x52,
786 0x10, 0xee, 0x09, 0xea, 0x09, 0x9a, 0xd6,
787 0x49, 0x7c, 0x1e, 0xdb, 0xc7, 0x65, 0xa6,
788 0x0e, 0xd1, 0xd2, 0x00, 0xb3, 0x41, 0xc9,
789 0x3c, 0xbc ) );
790 bigint_ror_ok ( BIGINT ( 0x8f ),
791 BIGINT ( 0x47 ) );
792 bigint_ror_ok ( BIGINT ( 0xaa, 0x1d ),
793 BIGINT ( 0x55, 0x0e ) );
794 bigint_ror_ok ( BIGINT ( 0xf0, 0xbd, 0x68 ),
795 BIGINT ( 0x78, 0x5e, 0xb4 ) );
796 bigint_ror_ok ( BIGINT ( 0x33, 0xa0, 0x3d, 0x95 ),
797 BIGINT ( 0x19, 0xd0, 0x1e, 0xca ) );
798 bigint_ror_ok ( BIGINT ( 0xa1, 0xf4, 0xb9, 0x64, 0x91, 0x99, 0xa1,
799 0xf4, 0xae, 0xeb, 0x71, 0x97, 0x1b, 0x71,
800 0x09, 0x38, 0x3f, 0x8f, 0xc5, 0x3a, 0xb9,
801 0x75, 0x94 ),
802 BIGINT ( 0x50, 0xfa, 0x5c, 0xb2, 0x48, 0xcc, 0xd0,
803 0xfa, 0x57, 0x75, 0xb8, 0xcb, 0x8d, 0xb8,
804 0x84, 0x9c, 0x1f, 0xc7, 0xe2, 0x9d, 0x5c,
805 0xba, 0xca ) );
806 bigint_ror_ok ( BIGINT ( 0xc0, 0xb3, 0x78, 0x46, 0x69, 0x6e, 0x35,
807 0x94, 0xed, 0x28, 0xdc, 0xfd, 0xf6, 0xdb,
808 0x2d, 0x24, 0xcb, 0xa4, 0x6f, 0x0e, 0x58,
809 0x89, 0x04, 0xec, 0xc8, 0x0c, 0x2d, 0xb3,
810 0x58, 0xa7, 0x22, 0x6d, 0x93, 0xe0, 0xb8,
811 0x48, 0x6a, 0x3f, 0x04, 0x7e, 0xbe, 0xb8,
812 0xa7, 0x84, 0xf5, 0xc9, 0x2f, 0x60, 0x9e,
813 0x7c, 0xbc, 0xaf, 0x28, 0x89, 0x2f, 0xaa,
814 0xd1, 0x82, 0x77, 0xa4, 0xdf, 0xf3, 0x4a,
815 0xc6, 0xed, 0xa3, 0x07, 0xb4, 0xa9, 0xfd,
816 0xef, 0xf8, 0x20, 0xb9, 0xb3, 0xff, 0x35,
817 0x27, 0xed, 0x02, 0xea, 0xec, 0x63, 0xc0,
818 0x46, 0x97, 0xc0, 0x4c, 0xca, 0x89, 0xca,
819 0x14, 0xe8, 0xe0, 0x02, 0x14, 0x44, 0x46,
820 0xf3, 0x2f, 0xbc, 0x6a, 0x28, 0xa2, 0xbe,
821 0x20, 0xc8, 0xaa, 0x0f, 0xd9, 0x51, 0x8e,
822 0x8d, 0x51, 0x29, 0x61, 0xef, 0x48, 0xae,
823 0x3e, 0xe5, 0x10, 0xbf, 0xda, 0x9b, 0x92,
824 0xb3, 0x77 ),
825 BIGINT ( 0x60, 0x59, 0xbc, 0x23, 0x34, 0xb7, 0x1a,
826 0xca, 0x76, 0x94, 0x6e, 0x7e, 0xfb, 0x6d,
827 0x96, 0x92, 0x65, 0xd2, 0x37, 0x87, 0x2c,
828 0x44, 0x82, 0x76, 0x64, 0x06, 0x16, 0xd9,
829 0xac, 0x53, 0x91, 0x36, 0xc9, 0xf0, 0x5c,
830 0x24, 0x35, 0x1f, 0x82, 0x3f, 0x5f, 0x5c,
831 0x53, 0xc2, 0x7a, 0xe4, 0x97, 0xb0, 0x4f,
832 0x3e, 0x5e, 0x57, 0x94, 0x44, 0x97, 0xd5,
833 0x68, 0xc1, 0x3b, 0xd2, 0x6f, 0xf9, 0xa5,
834 0x63, 0x76, 0xd1, 0x83, 0xda, 0x54, 0xfe,
835 0xf7, 0xfc, 0x10, 0x5c, 0xd9, 0xff, 0x9a,
836 0x93, 0xf6, 0x81, 0x75, 0x76, 0x31, 0xe0,
837 0x23, 0x4b, 0xe0, 0x26, 0x65, 0x44, 0xe5,
838 0x0a, 0x74, 0x70, 0x01, 0x0a, 0x22, 0x23,
839 0x79, 0x97, 0xde, 0x35, 0x14, 0x51, 0x5f,
840 0x10, 0x64, 0x55, 0x07, 0xec, 0xa8, 0xc7,
841 0x46, 0xa8, 0x94, 0xb0, 0xf7, 0xa4, 0x57,
842 0x1f, 0x72, 0x88, 0x5f, 0xed, 0x4d, 0xc9,
843 0x59, 0xbb ) );
844 bigint_is_zero_ok ( BIGINT ( 0x9b ),
845 0 );
846 bigint_is_zero_ok ( BIGINT ( 0x5a, 0x9d ),
847 0 );
848 bigint_is_zero_ok ( BIGINT ( 0x5f, 0x80, 0x78 ),
849 0 );
850 bigint_is_zero_ok ( BIGINT ( 0xa0, 0x52, 0x47, 0x2e ),
851 0 );
852 bigint_is_zero_ok ( BIGINT ( 0x18, 0x08, 0x49, 0xdb, 0x7b, 0x5c,
853 0xe7, 0x41, 0x07, 0xdf, 0xed, 0xf9,
854 0xd3, 0x92, 0x0d, 0x75, 0xa6, 0xb0,
855 0x14, 0xfa, 0xdd, 0xfd, 0x82 ),
856 0 );
857 bigint_is_zero_ok ( BIGINT ( 0x04, 0x04, 0xb5, 0xf5, 0x01, 0xae,
858 0x2b, 0x91, 0xa7, 0xc1, 0x49, 0x97,
859 0x3f, 0x45, 0x53, 0x52, 0xb8, 0x52,
860 0xf1, 0x62, 0xa5, 0x21, 0x18, 0xd4,
861 0xb0, 0xb4, 0x8a, 0x17, 0x0e, 0xe8,
862 0xeb, 0xaa, 0x28, 0xae, 0x3d, 0x8e,
863 0xe3, 0x6c, 0xd0, 0x01, 0x0c, 0x54,
864 0xca, 0x23, 0xbb, 0x06, 0xcd, 0x7a,
865 0x61, 0x89, 0x38, 0x34, 0x6e, 0xc7,
866 0xc2, 0xee, 0xb1, 0x80, 0x61, 0x0e,
867 0xc6, 0x8d, 0x65, 0xa0, 0xeb, 0x34,
868 0xe9, 0x63, 0x09, 0x4c, 0x20, 0xac,
869 0x42, 0xe3, 0x35, 0xa2, 0x3e, 0x3b,
870 0x2e, 0x18, 0x70, 0x45, 0x7c, 0xab,
871 0x42, 0xcc, 0xe0, 0x9e, 0x7c, 0x42,
872 0xd1, 0xda, 0x6c, 0x51, 0x10, 0x1e,
873 0x0e, 0x3f, 0xe5, 0xd6, 0xd8, 0x56,
874 0x08, 0xb2, 0x3b, 0x15, 0xc4, 0x7c,
875 0x0c, 0x7e, 0xaf, 0x7b, 0x9d, 0xd6,
876 0x2b, 0xc0, 0x2f, 0xa2, 0xa3, 0xa3,
877 0x77, 0x58, 0x1b, 0xe9, 0xa8, 0x9a,
878 0x23, 0x7f ),
879 0 );
880 bigint_is_zero_ok ( BIGINT ( 0x00 ),
881 1 );
882 bigint_is_zero_ok ( BIGINT ( 0x00, 0x00 ),
883 1 );
884 bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
885 1 );
886 bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ),
887 1 );
888 bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
889 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
890 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
891 0x00, 0x00, 0x00, 0x00, 0x00 ),
892 1 );
893 bigint_is_zero_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
894 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
895 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
896 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
897 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
898 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
899 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
900 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
901 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
902 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
903 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
904 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
905 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
906 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
907 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
908 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
909 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
910 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
911 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
912 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
913 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
914 0x00, 0x00 ),
915 1 );
916 bigint_is_zero_ok ( BIGINT ( 0xff ),
917 0 );
918 bigint_is_zero_ok ( BIGINT ( 0xff, 0xff ),
919 0 );
920 bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff ),
921 0 );
922 bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
923 0 );
924 bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
925 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
926 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
927 0xff, 0xff, 0xff, 0xff, 0xff ),
928 0 );
929 bigint_is_zero_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
930 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
931 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
932 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
933 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
934 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
935 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
936 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
937 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
938 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
939 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
940 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
941 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
942 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
943 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
944 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
945 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
946 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
947 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
948 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
949 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
950 0xff, 0xff ),
951 0 );
952 bigint_is_geq_ok ( BIGINT ( 0xa2 ),
953 BIGINT ( 0x58 ),
954 1 );
955 bigint_is_geq_ok ( BIGINT ( 0x58 ),
956 BIGINT ( 0xa2 ),
957 0 );
958 bigint_is_geq_ok ( BIGINT ( 0xa2 ),
959 BIGINT ( 0xa2 ),
960 1 );
961 bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ),
962 BIGINT ( 0x87, 0xac ),
963 0 );
964 bigint_is_geq_ok ( BIGINT ( 0x87, 0xac ),
965 BIGINT ( 0x61, 0x29 ),
966 1 );
967 bigint_is_geq_ok ( BIGINT ( 0x61, 0x29 ),
968 BIGINT ( 0x61, 0x29 ),
969 1 );
970 bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ),
971 BIGINT ( 0xb7, 0x2b, 0x76 ),
972 1 );
973 bigint_is_geq_ok ( BIGINT ( 0xb7, 0x2b, 0x76 ),
974 BIGINT ( 0xe6, 0x63, 0x14 ),
975 0 );
976 bigint_is_geq_ok ( BIGINT ( 0xe6, 0x63, 0x14 ),
977 BIGINT ( 0xe6, 0x63, 0x14 ),
978 1 );
979 bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
980 BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ),
981 1 );
982 bigint_is_geq_ok ( BIGINT ( 0xb5, 0xf9, 0x9b, 0x90 ),
983 BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
984 0 );
985 bigint_is_geq_ok ( BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
986 BIGINT ( 0xe7, 0x4f, 0xd4, 0x80 ),
987 1 );
988 bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
989 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
990 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
991 0x60, 0x98 ),
992 BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b,
993 0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09,
994 0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8,
995 0xa2, 0xb4 ),
996 1 );
997 bigint_is_geq_ok ( BIGINT ( 0x77, 0xbc, 0x3b, 0x1b, 0x57, 0x43, 0x3b,
998 0x8c, 0x82, 0xda, 0xb5, 0xc7, 0x18, 0x09,
999 0xb3, 0x59, 0x0e, 0x53, 0x2a, 0xb9, 0xd8,
1000 0xa2, 0xb4 ),
1001 BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1002 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1003 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1004 0x60, 0x98 ),
1005 0 );
1006 bigint_is_geq_ok ( BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1007 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1008 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1009 0x60, 0x98 ),
1010 BIGINT ( 0xe6, 0x2c, 0x7c, 0x24, 0x78, 0x8f, 0x12,
1011 0x20, 0xde, 0xd3, 0x6b, 0xc9, 0x97, 0x2d,
1012 0x66, 0x74, 0xe5, 0xb6, 0xf7, 0x8f, 0x2b,
1013 0x60, 0x98 ),
1014 1 );
1015 bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1016 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1017 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1018 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1019 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1020 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1021 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1022 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1023 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1024 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1025 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1026 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1027 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1028 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1029 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1030 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1031 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1032 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1033 0x27, 0x96 ),
1034 BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b,
1035 0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06,
1036 0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57,
1037 0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20,
1038 0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77,
1039 0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13,
1040 0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76,
1041 0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02,
1042 0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17,
1043 0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17,
1044 0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a,
1045 0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29,
1046 0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36,
1047 0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30,
1048 0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13,
1049 0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb,
1050 0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93,
1051 0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f,
1052 0xe1, 0x11 ),
1053 0 );
1054 bigint_is_geq_ok ( BIGINT ( 0xd4, 0x6b, 0x0a, 0x2e, 0x9f, 0xde, 0x4b,
1055 0x64, 0xfa, 0x6b, 0x37, 0x73, 0x66, 0x06,
1056 0xee, 0x04, 0xef, 0xe6, 0x3c, 0x7d, 0x57,
1057 0x22, 0x7f, 0x1f, 0x62, 0x1c, 0x7e, 0x20,
1058 0xda, 0x97, 0xd0, 0x27, 0x23, 0xf6, 0x77,
1059 0x5b, 0x49, 0x97, 0xe1, 0x65, 0x91, 0x13,
1060 0x93, 0xd6, 0x12, 0xc3, 0x66, 0x91, 0x76,
1061 0xe8, 0x47, 0x4c, 0x6a, 0x1b, 0xa2, 0x02,
1062 0xf8, 0x94, 0xaa, 0xe0, 0x1b, 0x0b, 0x17,
1063 0x86, 0x5e, 0xf5, 0x17, 0x23, 0xf5, 0x17,
1064 0x91, 0x6b, 0xd7, 0x2f, 0x5a, 0xfe, 0x8a,
1065 0x63, 0x28, 0x31, 0x1e, 0x09, 0x60, 0x29,
1066 0x5d, 0x55, 0xd8, 0x79, 0xeb, 0x78, 0x36,
1067 0x44, 0x69, 0xa4, 0x76, 0xa5, 0x35, 0x30,
1068 0xca, 0xc9, 0xf9, 0x62, 0xd7, 0x82, 0x13,
1069 0x56, 0xd0, 0x58, 0xfe, 0x16, 0x4b, 0xfb,
1070 0xa8, 0x4c, 0xb3, 0xd7, 0xcf, 0x5f, 0x93,
1071 0x9d, 0xc4, 0x11, 0xb4, 0xdd, 0xf8, 0x8f,
1072 0xe1, 0x11 ),
1073 BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1074 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1075 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1076 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1077 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1078 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1079 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1080 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1081 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1082 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1083 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1084 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1085 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1086 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1087 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1088 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1089 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1090 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1091 0x27, 0x96 ),
1092 1 );
1093 bigint_is_geq_ok ( BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1094 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1095 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1096 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1097 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1098 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1099 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1100 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1101 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1102 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1103 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1104 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1105 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1106 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1107 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1108 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1109 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1110 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1111 0x27, 0x96 ),
1112 BIGINT ( 0x2a, 0x98, 0xfd, 0x87, 0x5d, 0x9f, 0xb4,
1113 0x8b, 0x5c, 0xcd, 0x5f, 0xcd, 0x53, 0xb3,
1114 0xd1, 0x81, 0x6a, 0x9c, 0x93, 0x66, 0x40,
1115 0xa7, 0x64, 0xe0, 0x8c, 0xec, 0x96, 0x63,
1116 0x4d, 0x29, 0xfa, 0xb1, 0x5d, 0x93, 0x2f,
1117 0xf9, 0x36, 0xea, 0x3b, 0xc1, 0xaf, 0x85,
1118 0xcb, 0xde, 0x2d, 0xc8, 0x48, 0x33, 0xce,
1119 0x7b, 0xa4, 0xa4, 0xda, 0x0f, 0xaa, 0x1b,
1120 0xcb, 0xed, 0xbe, 0x3a, 0xa5, 0xbb, 0x73,
1121 0x28, 0x04, 0xc6, 0x2a, 0xfb, 0x3a, 0xc3,
1122 0xae, 0x42, 0x1f, 0x53, 0x6c, 0xb2, 0x76,
1123 0xb7, 0xe2, 0x88, 0xcb, 0x88, 0xcf, 0xf0,
1124 0x52, 0x81, 0xd3, 0xb2, 0x1f, 0x56, 0xe1,
1125 0xe1, 0x47, 0x93, 0x6f, 0x2b, 0x49, 0xaa,
1126 0x50, 0x99, 0x7a, 0xc4, 0x56, 0xb7, 0x13,
1127 0x80, 0xf4, 0x73, 0x88, 0xc7, 0x39, 0x83,
1128 0x67, 0xc7, 0xcc, 0xb2, 0x28, 0x7a, 0xd3,
1129 0xdc, 0x48, 0xea, 0x62, 0x0d, 0xf5, 0x5a,
1130 0x27, 0x96 ),
1131 1 );
1132 bigint_bit_is_set_ok ( BIGINT ( 0x37 ),
1133 0, 1 );
1134 bigint_bit_is_set_ok ( BIGINT ( 0xe6, 0xcb ),
1135 0, 1 );
1136 bigint_bit_is_set_ok ( BIGINT ( 0xd9, 0x0c, 0x5b ),
1137 0, 1 );
1138 bigint_bit_is_set_ok ( BIGINT ( 0x8b, 0x56, 0x89, 0xaf ),
1139 0, 1 );
1140 bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3,
1141 0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2,
1142 0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d,
1143 0x6d, 0xec, 0x51, 0xa0, 0x2f ),
1144 0, 1 );
1145 bigint_bit_is_set_ok ( BIGINT ( 0x25, 0xfc, 0xaf, 0xeb, 0x81, 0xc3,
1146 0xb8, 0x2f, 0xbb, 0xe3, 0x07, 0xb2,
1147 0xe2, 0x2a, 0xe2, 0x2d, 0xb4, 0x4d,
1148 0x6d, 0xec, 0x51, 0xa0, 0x2f ),
1149 45, 0 );
1150 bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1151 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1152 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1153 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1154 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1155 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1156 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1157 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1158 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1159 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1160 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1161 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1162 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1163 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1164 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1165 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1166 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1167 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1168 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1169 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1170 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1171 0xcb, 0xe0 ),
1172 0, 0 );
1173 bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1174 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1175 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1176 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1177 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1178 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1179 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1180 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1181 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1182 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1183 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1184 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1185 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1186 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1187 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1188 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1189 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1190 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1191 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1192 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1193 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1194 0xcb, 0xe0 ),
1195 45, 1 );
1196 bigint_bit_is_set_ok ( BIGINT ( 0x88, 0x04, 0xec, 0xe6, 0xfb, 0x31,
1197 0x87, 0x43, 0xb2, 0x04, 0x9e, 0x09,
1198 0xba, 0x3e, 0x6d, 0x64, 0x1a, 0x85,
1199 0xb6, 0x46, 0x7d, 0x71, 0x3c, 0x06,
1200 0xd6, 0x40, 0x52, 0x39, 0x95, 0xa1,
1201 0x06, 0xff, 0x6a, 0x5c, 0xa3, 0x6d,
1202 0x4a, 0xc9, 0x77, 0x87, 0x75, 0x25,
1203 0x57, 0x65, 0x72, 0x73, 0x64, 0x7e,
1204 0xe9, 0x16, 0x17, 0xf3, 0x65, 0x3f,
1205 0xd5, 0xcc, 0xd7, 0xa2, 0xee, 0xe7,
1206 0x8d, 0x48, 0xd5, 0x7e, 0xdd, 0x59,
1207 0x4b, 0xf0, 0x96, 0x8b, 0x21, 0x65,
1208 0x04, 0x66, 0xc5, 0xff, 0x3e, 0x60,
1209 0xba, 0x28, 0x38, 0x7d, 0x9c, 0x09,
1210 0xd1, 0x8e, 0xac, 0x73, 0x8e, 0xf2,
1211 0x1e, 0xdf, 0x83, 0x6e, 0x54, 0xd5,
1212 0x34, 0xc1, 0xc6, 0xf9, 0x62, 0x2a,
1213 0x7d, 0xec, 0x47, 0xf2, 0xfc, 0xa2,
1214 0x10, 0x0a, 0x67, 0x1b, 0xc6, 0x11,
1215 0x9d, 0x68, 0x25, 0x8b, 0xb5, 0x9b,
1216 0x83, 0xf8, 0xa2, 0x11, 0xf5, 0xd4,
1217 0xcb, 0xe0 ),
1218 1013, 0 );
1219 bigint_max_set_bit_ok ( BIGINT ( 0x3a ),
1220 6 );
1221 bigint_max_set_bit_ok ( BIGINT ( 0x03 ),
1222 2 );
1223 bigint_max_set_bit_ok ( BIGINT ( 0x00 ),
1224 0 );
1225 bigint_max_set_bit_ok ( BIGINT ( 0xff ),
1226 8 );
1227 bigint_max_set_bit_ok ( BIGINT ( 0x20, 0x30 ),
1228 14 );
1229 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x10 ),
1230 5 );
1231 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00 ),
1232 0 );
1233 bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff ),
1234 16 );
1235 bigint_max_set_bit_ok ( BIGINT ( 0x06, 0xdb, 0x7a ),
1236 19 );
1237 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
1238 0 );
1239 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00 ),
1240 0 );
1241 bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff ),
1242 24 );
1243 bigint_max_set_bit_ok ( BIGINT ( 0xee, 0xcb, 0x7b, 0xfd ),
1244 32 );
1245 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x01, 0xdd ),
1246 9 );
1247 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00 ),
1248 0 );
1249 bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1250 32 );
1251 bigint_max_set_bit_ok ( BIGINT ( 0x32, 0x39, 0x96, 0x52, 0x10, 0x67,
1252 0x7e, 0x32, 0xfc, 0x4e, 0x56, 0xc3,
1253 0x68, 0x18, 0x76, 0x1a, 0xac, 0x0e,
1254 0x93, 0xee, 0x55, 0xc5, 0x6e ),
1255 182 );
1256 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1257 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1259 0x00, 0x00, 0xc8, 0xe6, 0x59 ),
1260 24 );
1261 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1264 0x00, 0x00, 0x00, 0x00, 0x00 ),
1265 0 );
1266 bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1267 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1268 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1269 0xff, 0xff, 0xff, 0xff, 0xff ),
1270 184 );
1271 bigint_max_set_bit_ok ( BIGINT ( 0xcd, 0xb3, 0x22, 0x30, 0xdd, 0xa7,
1272 0xff, 0x37, 0xbf, 0xe3, 0x38, 0xf7,
1273 0xe1, 0x41, 0x73, 0xea, 0x3a, 0xfc,
1274 0x78, 0x9e, 0xfb, 0x4f, 0x85, 0xdc,
1275 0x1c, 0x40, 0x89, 0x6e, 0xda, 0xf9,
1276 0x9d, 0x6d, 0x12, 0x97, 0xb1, 0x80,
1277 0x2a, 0xeb, 0x91, 0xce, 0x3b, 0x83,
1278 0xb8, 0xa5, 0x3d, 0xce, 0x46, 0x56,
1279 0xb7, 0xd1, 0x28, 0xbc, 0x93, 0x4e,
1280 0x8c, 0x29, 0x6d, 0x2c, 0xcc, 0x58,
1281 0x49, 0x2f, 0x37, 0xa0, 0x08, 0x37,
1282 0x86, 0xdd, 0x38, 0x21, 0xa7, 0x57,
1283 0x37, 0xe3, 0xc5, 0xcc, 0x50, 0x11,
1284 0x1a, 0xe4, 0xea, 0xe7, 0x4d, 0x3c,
1285 0x37, 0x65, 0x78, 0xd1, 0xf6, 0xc3,
1286 0x94, 0x46, 0xd4, 0x0e, 0xd3, 0x9a,
1287 0x21, 0x8b, 0xa6, 0x54, 0xc0, 0xd2,
1288 0x88, 0x07, 0x24, 0xbf, 0x7d, 0x31,
1289 0xfd, 0x15, 0xa8, 0x92, 0x65, 0xe1,
1290 0x8d, 0xed, 0x70, 0x7b, 0x68, 0x0f,
1291 0xcc, 0x13, 0xb9, 0xb2, 0xdd, 0x3c,
1292 0x6a, 0x52 ),
1293 1024 );
1294 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1300 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1306 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1308 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1310 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1311 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1312 0x00, 0x00, 0x00, 0x00, 0x66, 0xd9,
1313 0x91, 0x18, 0x6e, 0xd3, 0xff, 0x9b,
1314 0xdf, 0xf1, 0x9c, 0x7b, 0xf0, 0xa0,
1315 0xb9, 0xf5 ),
1316 127 );
1317 bigint_max_set_bit_ok ( BIGINT ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1319 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1320 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1321 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1322 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1323 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1335 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1336 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1337 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1338 0x00, 0x00 ),
1339 0 );
1340 bigint_max_set_bit_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1341 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1342 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1343 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1344 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1345 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1346 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1347 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1348 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1349 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1350 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1351 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1352 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1353 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1354 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1355 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1356 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1357 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1358 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1359 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1360 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1361 0xff, 0xff ),
1362 1024 );
1363 bigint_multiply_ok ( BIGINT ( 0xf0 ),
1364 BIGINT ( 0xeb ),
1365 BIGINT ( 0xdc, 0x50 ) );
1366 bigint_multiply_ok ( BIGINT ( 0xd7, 0x16 ),
1367 BIGINT ( 0x88, 0xfb ),
1368 BIGINT ( 0x73, 0x16, 0x92, 0x92 ) );
1369 bigint_multiply_ok ( BIGINT ( 0xfe, 0xed, 0x1d ),
1370 BIGINT ( 0x69, 0x9c, 0x03 ),
1371 BIGINT ( 0x69, 0x2a, 0x9c, 0x5f, 0x73, 0x57 ) );
1372 bigint_multiply_ok ( BIGINT ( 0x96, 0xe9, 0x6f, 0x81 ),
1373 BIGINT ( 0x67, 0x3c, 0x5a, 0x16 ),
1374 BIGINT ( 0x3c, 0xdb, 0x7f, 0xae, 0x12, 0x7e,
1375 0xef, 0x16 ) );
1376 bigint_multiply_ok ( BIGINT ( 0xe8, 0x08, 0x0b, 0xe9, 0x29, 0x36,
1377 0xea, 0x51, 0x1d, 0x75, 0x1a, 0xd5,
1378 0xba, 0xc6, 0xa0, 0xf3, 0x48, 0x5c,
1379 0xdf, 0x42, 0xdf, 0x28, 0x38 ),
1380 BIGINT ( 0x22, 0x07, 0x41, 0x54, 0x4e, 0xf9,
1381 0x90, 0xa8, 0xaf, 0xba, 0xf6, 0xb0,
1382 0x35, 0x7e, 0x98, 0xef, 0x2c, 0x31,
1383 0xc9, 0xa7, 0x25, 0x74, 0x8d ),
1384 BIGINT ( 0x1e, 0xd7, 0xa5, 0x03, 0xc0, 0x18,
1385 0x2e, 0x29, 0xb1, 0x3e, 0x96, 0x71,
1386 0x90, 0xa5, 0x6d, 0x43, 0x58, 0xf7,
1387 0x22, 0x80, 0x0b, 0x21, 0xc6, 0x70,
1388 0x90, 0x1c, 0xa8, 0x85, 0x87, 0xaf,
1389 0xd7, 0xdd, 0x27, 0x69, 0xaf, 0x20,
1390 0xa0, 0x2d, 0x43, 0x5d, 0xda, 0xba,
1391 0x4b, 0x3a, 0x86, 0xd8 ) );
1392 bigint_multiply_ok ( BIGINT ( 0xa2, 0x0f, 0xc6, 0x08, 0x0a, 0x01,
1393 0x19, 0x42, 0x0e, 0xaa, 0x5c, 0xae,
1394 0x4f, 0x4e, 0xb0, 0xad, 0xb2, 0xe8,
1395 0xee, 0xd5, 0x65, 0xec, 0x5a, 0xda,
1396 0xc0, 0xba, 0x78, 0xa8, 0x0f, 0x15,
1397 0x39, 0xd7, 0x7a, 0x10, 0xc2, 0xa7,
1398 0xec, 0x44, 0xac, 0xad, 0x39, 0x04,
1399 0x2e, 0x66, 0x54, 0x70, 0x57, 0xee,
1400 0xf6, 0x97, 0x19, 0x71, 0x16, 0xf9,
1401 0xbb, 0x2e, 0x84, 0x09, 0x6e, 0x9a,
1402 0x3b, 0x16, 0xb2, 0x65, 0x74, 0x50,
1403 0x19, 0xd1, 0xe9, 0x95, 0xa0, 0x7b,
1404 0x33, 0xb5, 0xac, 0x7c, 0x9e, 0xd4,
1405 0x68, 0x0d, 0xc9, 0xe4, 0x03, 0x86,
1406 0x1a, 0xa3, 0x42, 0x33, 0x28, 0x14,
1407 0x12, 0x7d, 0x5a, 0xd9, 0x30, 0x18,
1408 0x0a, 0xf4, 0x0c, 0x96, 0x58, 0xc9,
1409 0xb5, 0x37, 0xdb, 0x49, 0xdc, 0x01,
1410 0x4a, 0xcb, 0x6d, 0x87, 0x52, 0xf6,
1411 0xae, 0xa7, 0x71, 0x31, 0x9a, 0x1a,
1412 0xe2, 0x1c, 0x87, 0x51, 0xc9, 0xeb,
1413 0x70, 0x71 ),
1414 BIGINT ( 0x7c, 0xdd, 0x2f, 0x5d, 0x27, 0xfe,
1415 0xca, 0x70, 0x96, 0xc3, 0xb1, 0x1f,
1416 0xac, 0xa9, 0x3a, 0xdc, 0xcd, 0xbc,
1417 0x58, 0xb4, 0xde, 0xe7, 0xe5, 0x34,
1418 0x1a, 0xc0, 0xb9, 0x46, 0xf7, 0x52,
1419 0x76, 0x23, 0xe8, 0xe9, 0x92, 0xa1,
1420 0x86, 0x3c, 0x6f, 0xf1, 0x22, 0xf4,
1421 0x72, 0xb1, 0xde, 0xd3, 0x8f, 0x11,
1422 0x9e, 0x52, 0xe5, 0x81, 0x54, 0xe9,
1423 0xa7, 0x72, 0x3f, 0x3e, 0xa0, 0x80,
1424 0xbb, 0xae, 0x0e, 0x30, 0x6a, 0x11,
1425 0x91, 0x11, 0x3b, 0x3f, 0x44, 0x1f,
1426 0x8d, 0x4d, 0xea, 0xdd, 0x09, 0x95,
1427 0x9d, 0x02, 0xa6, 0x6d, 0x3b, 0x08,
1428 0x40, 0x8d, 0xb4, 0x4b, 0x05, 0x74,
1429 0x8c, 0x1f, 0xaa, 0x61, 0x6f, 0x0e,
1430 0xcc, 0xcf, 0xe0, 0x81, 0x03, 0xe4,
1431 0x9b, 0x11, 0xd9, 0xab, 0xf3, 0x24,
1432 0xe2, 0x3b, 0xe0, 0x05, 0x60, 0x65,
1433 0x16, 0xc6, 0x2e, 0x83, 0xa0, 0x98,
1434 0x8e, 0x11, 0x05, 0x00, 0xe4, 0x3f,
1435 0x7e, 0x65 ),
1436 BIGINT ( 0x4f, 0x0b, 0xa9, 0x85, 0xb8, 0x31,
1437 0x48, 0xea, 0x11, 0x44, 0xaf, 0x2d,
1438 0xed, 0x1a, 0x76, 0x45, 0xac, 0x87,
1439 0x0c, 0xf3, 0xd7, 0xc4, 0x8e, 0x5c,
1440 0xd7, 0xdf, 0x28, 0x74, 0xa6, 0x40,
1441 0xe4, 0x6b, 0x5b, 0x19, 0x36, 0x37,
1442 0x9c, 0xcd, 0x43, 0x76, 0x15, 0x00,
1443 0x5d, 0x23, 0xa2, 0x8a, 0x53, 0x25,
1444 0xbf, 0x18, 0xda, 0xe6, 0x09, 0xdf,
1445 0xaa, 0xeb, 0x9a, 0x82, 0x01, 0x14,
1446 0x2b, 0x20, 0x2b, 0xb6, 0x22, 0x62,
1447 0x6b, 0xcc, 0xd4, 0xc9, 0x02, 0x67,
1448 0x95, 0x43, 0x75, 0x4e, 0x97, 0x4e,
1449 0xec, 0x04, 0xde, 0x29, 0x0a, 0xef,
1450 0xf7, 0xc1, 0x72, 0x8c, 0x64, 0x38,
1451 0x16, 0x47, 0x9f, 0x16, 0x0c, 0xa5,
1452 0x79, 0x6b, 0xea, 0x2e, 0x4c, 0x3d,
1453 0x0c, 0xe6, 0x57, 0x51, 0x65, 0xa5,
1454 0x3b, 0xca, 0xae, 0x54, 0x0c, 0x67,
1455 0xf8, 0x23, 0x00, 0xc9, 0x8d, 0xe6,
1456 0x16, 0x91, 0x19, 0xb3, 0x5b, 0x68,
1457 0x7b, 0xf2, 0xe2, 0x5d, 0x69, 0x48,
1458 0x3f, 0x2b, 0xa0, 0x4f, 0x7c, 0x3c,
1459 0x26, 0xf9, 0xd9, 0xfd, 0x3d, 0x5d,
1460 0xd6, 0x05, 0x00, 0xd8, 0xdf, 0x5a,
1461 0x56, 0x8f, 0x16, 0x68, 0x4f, 0x15,
1462 0x19, 0x9d, 0xd7, 0x11, 0x51, 0x7d,
1463 0x73, 0x5c, 0xd4, 0xd5, 0xb4, 0xc7,
1464 0x42, 0xe3, 0xee, 0xf1, 0x67, 0xd6,
1465 0x69, 0x72, 0x04, 0x4b, 0x88, 0x3d,
1466 0x05, 0xd8, 0x1e, 0x50, 0xcb, 0xce,
1467 0x39, 0x19, 0x42, 0xb6, 0xa7, 0xf3,
1468 0xba, 0x78, 0x90, 0xd2, 0x09, 0x05,
1469 0x87, 0xf8, 0xc0, 0x9c, 0x47, 0xff,
1470 0xbf, 0xaa, 0x21, 0x8d, 0x81, 0x86,
1471 0xcd, 0x58, 0xdf, 0x30, 0xf1, 0xd1,
1472 0x60, 0x53, 0x85, 0x40, 0xbf, 0x14,
1473 0x3e, 0xdc, 0x9e, 0x9e, 0xc4, 0xc7,
1474 0x48, 0xa0, 0x83, 0xe0, 0x99, 0x8b,
1475 0x43, 0xf8, 0x52, 0x8a, 0x15, 0x88,
1476 0x89, 0x83, 0x7d, 0x71, 0xbb, 0x62,
1477 0x12, 0x7a, 0x23, 0x85, 0x3a, 0xbb,
1478 0xdb, 0x09, 0xfa, 0x95 ) );
1479 bigint_multiply_ok ( BIGINT ( 0xff ),
1480 BIGINT ( 0xff ),
1481 BIGINT ( 0xfe, 0x01 ) );
1482 bigint_multiply_ok ( BIGINT ( 0xff, 0xff ),
1483 BIGINT ( 0xff, 0xff ),
1484 BIGINT ( 0xff, 0xfe, 0x00, 0x01 ) );
1485 bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff ),
1486 BIGINT ( 0xff, 0xff, 0xff ),
1487 BIGINT ( 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01 ) );
1488 bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1489 BIGINT ( 0xff, 0xff, 0xff, 0xff ),
1490 BIGINT ( 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
1491 0x00, 0x01 ) );
1492 bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1493 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1494 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1495 0xff, 0xff, 0xff, 0xff, 0xff ),
1496 BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1497 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1498 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1499 0xff, 0xff, 0xff, 0xff, 0xff ),
1500 BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1501 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1502 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1503 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
1504 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1505 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1506 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1507 0x00, 0x00, 0x00, 0x01 ) );
1508 bigint_multiply_ok ( BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1509 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1510 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1511 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1512 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1513 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1514 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1515 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1516 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1517 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1518 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1519 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1520 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1521 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1522 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1523 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1524 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1525 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1526 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1527 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1528 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1529 0xff, 0xff ),
1530 BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1531 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1532 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1533 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1534 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1535 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1536 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1537 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1538 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1539 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1540 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1541 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1542 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1543 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1544 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1545 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1546 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1547 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1548 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1549 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1550 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1551 0xff, 0xff ),
1552 BIGINT ( 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1553 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1554 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1555 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1556 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1557 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1558 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1559 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1560 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1561 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1562 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1563 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1564 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1565 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1566 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1567 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1568 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1569 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1570 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1571 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1572 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1573 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
1574 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1575 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1576 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1577 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1578 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1579 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1580 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1581 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1582 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1583 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1584 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1585 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1586 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1587 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1588 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1589 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1590 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1591 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1592 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1593 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1594 0x00, 0x00, 0x00, 0x01 ) );
1595 bigint_mod_multiply_ok ( BIGINT ( 0x37 ),
1596 BIGINT ( 0x67 ),
1597 BIGINT ( 0x3f ),
1598 BIGINT ( 0x3a ) );
1599 bigint_mod_multiply_ok ( BIGINT ( 0x45, 0x94 ),
1600 BIGINT ( 0xbd, 0xd2 ),
1601 BIGINT ( 0xca, 0xc7 ),
1602 BIGINT ( 0xac, 0xc1 ) );
1603 bigint_mod_multiply_ok ( BIGINT ( 0x8e, 0xcd, 0x74 ),
1604 BIGINT ( 0xe2, 0xf1, 0xea ),
1605 BIGINT ( 0x59, 0x51, 0x53 ),
1606 BIGINT ( 0x22, 0xdd, 0x1c ) );
1607 bigint_mod_multiply_ok ( BIGINT ( 0xc2, 0xa8, 0x40, 0x6f ),
1608 BIGINT ( 0x29, 0xd7, 0xf4, 0x77 ),
1609 BIGINT ( 0xbb, 0xbd, 0xdb, 0x3d ),
1610 BIGINT ( 0x8f, 0x39, 0xd0, 0x47 ) );
1611 bigint_mod_multiply_ok ( BIGINT ( 0x2e, 0xcb, 0x74, 0x7c, 0x64, 0x60,
1612 0xb3, 0x44, 0xf3, 0x23, 0x49, 0x4a,
1613 0xc6, 0xb6, 0xbf, 0xea, 0x80, 0xd8,
1614 0x34, 0xc5, 0x54, 0x22, 0x09 ),
1615 BIGINT ( 0x61, 0x2c, 0x5a, 0xc5, 0xde, 0x07,
1616 0x65, 0x8e, 0xab, 0x88, 0x1a, 0x2e,
1617 0x7a, 0x95, 0x17, 0xe3, 0x3b, 0x17,
1618 0xe4, 0x21, 0xb0, 0xb4, 0x57 ),
1619 BIGINT ( 0x8e, 0x46, 0xa5, 0x87, 0x7b, 0x7f,
1620 0xc4, 0xd7, 0x31, 0xb1, 0x94, 0xe7,
1621 0xe7, 0x1c, 0x7e, 0x7a, 0xc2, 0x6c,
1622 0xce, 0xcb, 0xc8, 0x5d, 0x70 ),
1623 BIGINT ( 0x1e, 0xd1, 0x5b, 0x3d, 0x1d, 0x17,
1624 0x7c, 0x31, 0x95, 0x13, 0x1b, 0xd8,
1625 0xee, 0x0a, 0xb0, 0xe1, 0x5b, 0x13,
1626 0xad, 0x83, 0xe9, 0xf8, 0x7f ) );
1627 bigint_mod_multiply_ok ( BIGINT ( 0x56, 0x37, 0xab, 0x07, 0x8b, 0x25,
1628 0xa7, 0xc2, 0x50, 0x30, 0x43, 0xfc,
1629 0x63, 0x8b, 0xdf, 0x84, 0x68, 0x85,
1630 0xca, 0xce, 0x44, 0x5c, 0xb1, 0x14,
1631 0xa4, 0xb5, 0xba, 0x43, 0xe0, 0x31,
1632 0x45, 0x6b, 0x82, 0xa9, 0x0b, 0x9e,
1633 0x3a, 0xb0, 0x39, 0x09, 0x2a, 0x68,
1634 0x2e, 0x0f, 0x09, 0x54, 0x47, 0x04,
1635 0xdb, 0xcf, 0x4a, 0x3a, 0x2d, 0x7b,
1636 0x7d, 0x50, 0xa4, 0xc5, 0xeb, 0x13,
1637 0xdd, 0x49, 0x61, 0x7d, 0x18, 0xa1,
1638 0x0d, 0x6b, 0x58, 0xba, 0x9f, 0x7c,
1639 0x81, 0x34, 0x9e, 0xf9, 0x9c, 0x9e,
1640 0x28, 0xa8, 0x1c, 0x15, 0x16, 0x20,
1641 0x3c, 0x0a, 0xb1, 0x11, 0x06, 0x93,
1642 0xbc, 0xd8, 0x4e, 0x49, 0xae, 0x7b,
1643 0xb4, 0x02, 0x8b, 0x1c, 0x5b, 0x18,
1644 0xb4, 0xac, 0x7f, 0xdd, 0x70, 0xef,
1645 0x87, 0xac, 0x1b, 0xac, 0x25, 0xa3,
1646 0xc9, 0xa7, 0x3a, 0xc5, 0x76, 0x68,
1647 0x09, 0x1f, 0xa1, 0x48, 0x53, 0xb6,
1648 0x13, 0xac ),
1649 BIGINT ( 0xef, 0x5c, 0x1f, 0x1a, 0x44, 0x64,
1650 0x66, 0xcf, 0xdd, 0x3f, 0x0b, 0x27,
1651 0x81, 0xa7, 0x91, 0x7a, 0x35, 0x7b,
1652 0x0f, 0x46, 0x5e, 0xca, 0xbf, 0xf8,
1653 0x50, 0x5e, 0x99, 0x7c, 0xc6, 0x64,
1654 0x43, 0x00, 0x9f, 0xb2, 0xda, 0xfa,
1655 0x42, 0x15, 0x9c, 0xa3, 0xd6, 0xc8,
1656 0x64, 0xa7, 0x65, 0x4a, 0x98, 0xf7,
1657 0xb3, 0x96, 0x5f, 0x42, 0xf9, 0x73,
1658 0xe1, 0x75, 0xc3, 0xc4, 0x0b, 0x5d,
1659 0x5f, 0xf3, 0x04, 0x8a, 0xee, 0x59,
1660 0xa6, 0x1b, 0x06, 0x38, 0x0b, 0xa2,
1661 0x9f, 0xb4, 0x4f, 0x6d, 0x50, 0x5e,
1662 0x37, 0x37, 0x21, 0x83, 0x9d, 0xa3,
1663 0x12, 0x16, 0x4d, 0xab, 0x36, 0x51,
1664 0x21, 0xb1, 0x74, 0x66, 0x40, 0x9a,
1665 0xd3, 0x72, 0xcc, 0x18, 0x40, 0x53,
1666 0x89, 0xff, 0xd7, 0x00, 0x8d, 0x7e,
1667 0x93, 0x81, 0xdb, 0x29, 0xb6, 0xd7,
1668 0x23, 0x2b, 0x67, 0x2f, 0x11, 0x98,
1669 0x49, 0x87, 0x2f, 0x46, 0xb7, 0x33,
1670 0x6d, 0x12 ),
1671 BIGINT ( 0x67, 0x7a, 0x17, 0x6a, 0xd2, 0xf8,
1672 0x49, 0xfb, 0x7c, 0x95, 0x25, 0x54,
1673 0xf0, 0xab, 0x5b, 0xb3, 0x0e, 0x01,
1674 0xab, 0xd3, 0x65, 0x6f, 0x7e, 0x18,
1675 0x05, 0xed, 0x9b, 0xc4, 0x90, 0x6c,
1676 0xd0, 0x6d, 0x94, 0x79, 0x28, 0xd6,
1677 0x24, 0x77, 0x9a, 0x08, 0xd2, 0x2f,
1678 0x7c, 0x2d, 0xa0, 0x0c, 0x14, 0xbe,
1679 0x7b, 0xee, 0x9e, 0x48, 0x88, 0x3c,
1680 0x8f, 0x9f, 0xb9, 0x7a, 0xcb, 0x98,
1681 0x76, 0x61, 0x0d, 0xee, 0xa2, 0x42,
1682 0x67, 0x1b, 0x2c, 0x42, 0x8f, 0x41,
1683 0xcc, 0x78, 0xba, 0xba, 0xaa, 0xa2,
1684 0x92, 0xb0, 0x6e, 0x0c, 0x4e, 0xe1,
1685 0xa5, 0x13, 0x7d, 0x8a, 0x8f, 0x81,
1686 0x95, 0x8a, 0xdf, 0x57, 0x93, 0x88,
1687 0x27, 0x4f, 0x1a, 0x59, 0xa4, 0x74,
1688 0x22, 0xa9, 0x78, 0xe5, 0xed, 0xb1,
1689 0x09, 0x26, 0x59, 0xde, 0x88, 0x21,
1690 0x8d, 0xa2, 0xa8, 0x58, 0x10, 0x7b,
1691 0x65, 0x96, 0xbf, 0x69, 0x3b, 0xc5,
1692 0x55, 0xf8 ),
1693 BIGINT ( 0x15, 0xf7, 0x00, 0xeb, 0xc7, 0x5a,
1694 0x6f, 0xf0, 0x50, 0xf3, 0x21, 0x8a,
1695 0x8e, 0xa6, 0xf6, 0x67, 0x56, 0x7d,
1696 0x07, 0x45, 0x89, 0xdb, 0xd7, 0x7e,
1697 0x9e, 0x28, 0x7f, 0xfb, 0xed, 0xca,
1698 0x2c, 0xbf, 0x47, 0x77, 0x99, 0x95,
1699 0xf3, 0xd6, 0x9d, 0xc5, 0x57, 0x81,
1700 0x7f, 0x97, 0xf2, 0x6b, 0x24, 0xee,
1701 0xce, 0xc5, 0x9b, 0xe6, 0x42, 0x2d,
1702 0x37, 0xb7, 0xeb, 0x3d, 0xb5, 0xf7,
1703 0x1e, 0x86, 0xc2, 0x40, 0x44, 0xc9,
1704 0x85, 0x5a, 0x1a, 0xc0, 0xac, 0x9e,
1705 0x78, 0x69, 0x00, 0x7b, 0x93, 0x65,
1706 0xd7, 0x7f, 0x0c, 0xd6, 0xba, 0x4f,
1707 0x06, 0x00, 0x61, 0x05, 0xb2, 0x44,
1708 0xb4, 0xe7, 0xbb, 0x3b, 0x96, 0xb0,
1709 0x6d, 0xe8, 0x43, 0xd2, 0x03, 0xb7,
1710 0x0a, 0xc4, 0x6d, 0x30, 0xd8, 0xd5,
1711 0xe6, 0x54, 0x65, 0xdd, 0xa9, 0x1b,
1712 0x50, 0xc0, 0xb9, 0x95, 0xb0, 0x7d,
1713 0x7c, 0xca, 0x63, 0xf8, 0x72, 0xbe,
1714 0x3b, 0x00 ) );
1715 bigint_mod_exp_ok ( BIGINT ( 0xcd ),
1716 BIGINT ( 0xbb ),
1717 BIGINT ( 0x25 ),
1718 BIGINT ( 0xab ) );
1719 bigint_mod_exp_ok ( BIGINT ( 0xc4 ),
1720 BIGINT ( 0xe9 ),
1721 BIGINT ( 0x02, 0x4c ),
1722 BIGINT ( 0x7e ) );
1723 bigint_mod_exp_ok ( BIGINT ( 0xcb ),
1724 BIGINT ( 0xde ),
1725 BIGINT ( 0xbd, 0x73, 0xbf ),
1726 BIGINT ( 0x17 ) );
1727 bigint_mod_exp_ok ( BIGINT ( 0x17 ),
1728 BIGINT ( 0xb9 ),
1729 BIGINT ( 0x39, 0x68, 0xba, 0x7d ),
1730 BIGINT ( 0x17 ) );
1731 bigint_mod_exp_ok ( BIGINT ( 0x2e ),
1732 BIGINT ( 0xb7 ),
1733 BIGINT ( 0x39, 0x07, 0x1b, 0x49, 0x5b, 0xea,
1734 0xf2, 0x61, 0x75, 0x94, 0x60, 0x86,
1735 0x73, 0xd0, 0xeb, 0x11, 0x08, 0x19,
1736 0x90, 0x19, 0xe0, 0xed, 0x2a ),
1737 BIGINT ( 0x19 ) );
1738 bigint_mod_exp_ok ( BIGINT ( 0x59 ),
1739 BIGINT ( 0xce ),
1740 BIGINT ( 0xdf, 0xbc, 0x0d, 0x0c, 0x09, 0xeb,
1741 0xf8, 0xcf, 0xdb, 0xb6, 0x00, 0xa3,
1742 0x9e, 0xc3, 0x6c, 0x8d, 0xf1, 0xc3,
1743 0x03, 0x36, 0xaa, 0xd4, 0x22, 0x7c,
1744 0x20, 0x7b, 0xa9, 0x9a, 0x01, 0xe4,
1745 0xf2, 0x50, 0x42, 0x29, 0x68, 0x7a,
1746 0xa6, 0x2c, 0xdf, 0xb6, 0x51, 0xa9,
1747 0x73, 0x10, 0x98, 0x37, 0x69, 0xb3,
1748 0x21, 0x49, 0x6d, 0xcc, 0x80, 0xfa,
1749 0x7e, 0x12, 0xe4, 0x9c, 0xc2, 0xbb,
1750 0xe3, 0xa3, 0x10, 0x3f, 0xba, 0x99,
1751 0x22, 0x79, 0x71, 0x39, 0x96, 0x7b,
1752 0x1a, 0x89, 0xdc, 0xda, 0x43, 0x52,
1753 0x50, 0x7b, 0xe3, 0x8c, 0xd3, 0xc0,
1754 0xf5, 0x7d, 0xfc, 0x80, 0x71, 0x6e,
1755 0xaf, 0x5c, 0xd0, 0x14, 0xc0, 0x60,
1756 0x24, 0xa8, 0x9a, 0x8a, 0x54, 0x4a,
1757 0x6f, 0x42, 0x7a, 0x14, 0x14, 0x25,
1758 0xd5, 0x22, 0x08, 0x8f, 0xd9, 0xdb,
1759 0xd4, 0x0f, 0x14, 0xf4, 0x3b, 0x26,
1760 0x0e, 0xb6, 0x72, 0xd7, 0x03, 0xd5,
1761 0xf0, 0x0e ),
1762 BIGINT ( 0xa9 ) );
1763 bigint_mod_exp_ok ( BIGINT ( 0x7f, 0x30 ),
1764 BIGINT ( 0x73, 0x74 ),
1765 BIGINT ( 0x75 ),
1766 BIGINT ( 0x4b, 0xe8 ) );
1767 bigint_mod_exp_ok ( BIGINT ( 0x04, 0x6c ),
1768 BIGINT ( 0x99, 0x04 ),
1769 BIGINT ( 0x33, 0xd2 ),
1770 BIGINT ( 0x86, 0x74 ) );
1771 bigint_mod_exp_ok ( BIGINT ( 0xca, 0x88 ),
1772 BIGINT ( 0xdc, 0x60 ),
1773 BIGINT ( 0x7e, 0x76, 0x79 ),
1774 BIGINT ( 0x42, 0x40 ) );
1775 bigint_mod_exp_ok ( BIGINT ( 0x68, 0x97 ),
1776 BIGINT ( 0x52, 0x8b ),
1777 BIGINT ( 0x4f, 0x7f, 0xe7, 0xda ),
1778 BIGINT ( 0x22, 0x77 ) );
1779 bigint_mod_exp_ok ( BIGINT ( 0xbd, 0x14 ),
1780 BIGINT ( 0x9e, 0xfc ),
1781 BIGINT ( 0x23, 0xf7, 0xd0, 0xa1, 0x9e, 0x9b,
1782 0x05, 0xd2, 0x44, 0x24, 0x4f, 0x3f,
1783 0x83, 0xcc, 0x49, 0x70, 0xa5, 0x0d,
1784 0xfc, 0xa7, 0x43, 0xf3, 0x3e ),
1785 BIGINT ( 0x1a, 0xc8 ) );
1786 bigint_mod_exp_ok ( BIGINT ( 0x46, 0x3e ),
1787 BIGINT ( 0xb8, 0xde ),
1788 BIGINT ( 0xa9, 0xc0, 0xdc, 0x45, 0x65, 0x0d,
1789 0xa5, 0x56, 0x70, 0x4c, 0xf1, 0xda,
1790 0xab, 0x64, 0xc2, 0x04, 0xf6, 0x32,
1791 0x20, 0x68, 0x31, 0x5f, 0x9a, 0x00,
1792 0x0f, 0x7b, 0x24, 0x33, 0xdf, 0xaf,
1793 0xfe, 0x03, 0x1e, 0x4a, 0xa1, 0xf8,
1794 0x45, 0x8d, 0x5a, 0x7d, 0x12, 0x58,
1795 0x00, 0x6d, 0xba, 0x79, 0x9f, 0xe1,
1796 0xa1, 0xfc, 0x1f, 0xb9, 0xf3, 0xa7,
1797 0x07, 0xf5, 0xfe, 0xd6, 0xa1, 0xba,
1798 0xda, 0x63, 0xef, 0x39, 0x8e, 0xb7,
1799 0x48, 0xa8, 0x81, 0x86, 0xb1, 0x22,
1800 0x14, 0x9f, 0x9e, 0xac, 0x69, 0xf7,
1801 0xae, 0x1f, 0xf2, 0x99, 0x41, 0xb7,
1802 0x37, 0xa7, 0xbc, 0x42, 0xf2, 0x45,
1803 0x43, 0xf2, 0x2a, 0xef, 0xc2, 0x83,
1804 0xd5, 0x32, 0x6e, 0xfa, 0x49, 0x1c,
1805 0x94, 0x9c, 0xc2, 0xc5, 0xad, 0x28,
1806 0x53, 0x1c, 0x11, 0xc4, 0x1c, 0x78,
1807 0x8f, 0x13, 0xdc, 0xb3, 0x2a, 0x63,
1808 0xfd, 0x1f, 0x89, 0x9b, 0x0c, 0x31,
1809 0x92, 0x73 ),
1810 BIGINT ( 0x7b, 0x8a ) );
1811 bigint_mod_exp_ok ( BIGINT ( 0xf3, 0xc3, 0xab ),
1812 BIGINT ( 0xd0, 0x7e, 0xd0 ),
1813 BIGINT ( 0xf6 ),
1814 BIGINT ( 0x1f, 0xb3, 0x09 ) );
1815 bigint_mod_exp_ok ( BIGINT ( 0x13, 0xec, 0xf6 ),
1816 BIGINT ( 0x87, 0x1a, 0x9a ),
1817 BIGINT ( 0x03, 0xf3 ),
1818 BIGINT ( 0x15, 0xe9, 0x8e ) );
1819 bigint_mod_exp_ok ( BIGINT ( 0x5a, 0x96, 0xe5 ),
1820 BIGINT ( 0x56, 0x4a, 0xd1 ),
1821 BIGINT ( 0x89, 0x62, 0x8e ),
1822 BIGINT ( 0x34, 0xb8, 0xaa ) );
1823 bigint_mod_exp_ok ( BIGINT ( 0x84, 0x7c, 0xbd ),
1824 BIGINT ( 0x3c, 0x80, 0x0a ),
1825 BIGINT ( 0x5e, 0x52, 0x9d, 0xba ),
1826 BIGINT ( 0x04, 0xcb, 0x4f ) );
1827 bigint_mod_exp_ok ( BIGINT ( 0x50, 0x01, 0x51 ),
1828 BIGINT ( 0x02, 0xe6, 0x96 ),
1829 BIGINT ( 0x34, 0x0c, 0x7e, 0xbf, 0x27, 0x23,
1830 0x46, 0x92, 0x1c, 0xca, 0x91, 0xab,
1831 0x50, 0x2c, 0x3a, 0x64, 0xc8, 0x4a,
1832 0x75, 0xd6, 0xe2, 0xde, 0x31 ),
1833 BIGINT ( 0x02, 0x16, 0x05 ) );
1834 bigint_mod_exp_ok ( BIGINT ( 0x5e, 0x47, 0xd8 ),
1835 BIGINT ( 0x26, 0xd1, 0xb6 ),
1836 BIGINT ( 0x49, 0x61, 0x84, 0x7a, 0xa9, 0xfb,
1837 0x93, 0x45, 0xe4, 0xfa, 0x53, 0x60,
1838 0x73, 0x98, 0x5a, 0x17, 0xe7, 0x77,
1839 0x2d, 0xcd, 0x97, 0xf4, 0xc0, 0x34,
1840 0x46, 0xfa, 0xbd, 0x21, 0xdf, 0xa5,
1841 0xa0, 0x12, 0x38, 0x7c, 0xbd, 0xd9,
1842 0xcd, 0xbc, 0xde, 0x29, 0xa5, 0x13,
1843 0xa8, 0xf0, 0xf6, 0x88, 0xc6, 0x31,
1844 0xed, 0x90, 0x19, 0x11, 0x7d, 0xe1,
1845 0x0e, 0x81, 0x98, 0x8e, 0x98, 0x86,
1846 0xde, 0x2a, 0x4c, 0xad, 0xff, 0x57,
1847 0x12, 0xbc, 0x4b, 0xaf, 0x21, 0xde,
1848 0xca, 0x3a, 0x25, 0xd7, 0x98, 0xe3,
1849 0x25, 0xbc, 0x17, 0x74, 0x0b, 0x9c,
1850 0x53, 0xe1, 0x1a, 0xec, 0x9a, 0x5a,
1851 0xdc, 0x68, 0xdf, 0xad, 0xd6, 0x71,
1852 0x6b, 0x5b, 0x8b, 0x85, 0xbb, 0xe5,
1853 0xd5, 0x14, 0x4c, 0x30, 0x27, 0x68,
1854 0xd1, 0xf7, 0x58, 0x34, 0x4c, 0xe1,
1855 0x71, 0xde, 0x7b, 0x8d, 0xa2, 0xe6,
1856 0x0a, 0x44, 0x22, 0x26, 0x5a, 0x70,
1857 0xbb, 0x68 ),
1858 BIGINT ( 0x18, 0x36, 0x96 ) );
1859 bigint_mod_exp_ok ( BIGINT ( 0xc7, 0x4a, 0xf0, 0x48 ),
1860 BIGINT ( 0x5d, 0x27, 0x07, 0x54 ),
1861 BIGINT ( 0x4a ),
1862 BIGINT ( 0x48, 0x68, 0x7b, 0xe0 ) );
1863 bigint_mod_exp_ok ( BIGINT ( 0xb4, 0x89, 0xc9, 0x5b ),
1864 BIGINT ( 0x7c, 0xd7, 0xc7, 0xff ),
1865 BIGINT ( 0xc6, 0x9c ),
1866 BIGINT ( 0x0b, 0x2d, 0xf8, 0xf7 ) );
1867 bigint_mod_exp_ok ( BIGINT ( 0xea, 0x72, 0x43, 0xfe ),
1868 BIGINT ( 0xfc, 0x57, 0x2d, 0x47 ),
1869 BIGINT ( 0x60, 0x01, 0x2c ),
1870 BIGINT ( 0x12, 0x01, 0xe3, 0xf5 ) );
1871 bigint_mod_exp_ok ( BIGINT ( 0x81, 0x7f, 0x27, 0x94 ),
1872 BIGINT ( 0x17, 0x21, 0x67, 0xab ),
1873 BIGINT ( 0x50, 0x19, 0x12, 0x52 ),
1874 BIGINT ( 0x05, 0x17, 0x6b, 0x13 ) );
1875 bigint_mod_exp_ok ( BIGINT ( 0x38, 0xab, 0xd4, 0xec ),
1876 BIGINT ( 0x0c, 0x2a, 0x56, 0x38 ),
1877 BIGINT ( 0x2f, 0x85, 0x85, 0x57, 0xf6, 0xde,
1878 0x24, 0xb4, 0x28, 0x3c, 0x5a, 0x3c,
1879 0x0b, 0x12, 0x85, 0x85, 0x85, 0x98,
1880 0x46, 0x5b, 0x9c, 0x52, 0x3a ),
1881 BIGINT ( 0x02, 0xe6, 0x6a, 0x70 ) );
1882 bigint_mod_exp_ok ( BIGINT ( 0xa6, 0x35, 0xc0, 0x6f ),
1883 BIGINT ( 0x23, 0xac, 0x78, 0x72 ),
1884 BIGINT ( 0x6a, 0x07, 0x80, 0xbf, 0x1b, 0xa5,
1885 0xf8, 0x0b, 0x90, 0x06, 0xa4, 0xa5,
1886 0x44, 0x13, 0xba, 0x4b, 0xb3, 0xce,
1887 0x9f, 0x55, 0x42, 0x56, 0xc3, 0x30,
1888 0x82, 0x85, 0x5a, 0x3b, 0xae, 0x88,
1889 0x92, 0x4e, 0x3c, 0x37, 0xf6, 0x80,
1890 0x4c, 0x03, 0x3c, 0x1e, 0x2c, 0x17,
1891 0xef, 0x9d, 0xd7, 0x6f, 0xdc, 0xbb,
1892 0x42, 0x42, 0xa1, 0x7f, 0x97, 0x66,
1893 0xcd, 0xc8, 0x8a, 0x7c, 0xc6, 0x70,
1894 0x61, 0x54, 0x82, 0xd0, 0xd0, 0x8b,
1895 0xd5, 0x4f, 0x57, 0x7b, 0x8e, 0xab,
1896 0xdc, 0xbf, 0x8e, 0x85, 0x94, 0x83,
1897 0x8a, 0xb3, 0x72, 0x69, 0x2d, 0x51,
1898 0xdd, 0x86, 0x1e, 0x58, 0xb8, 0x00,
1899 0xe2, 0x5e, 0xa7, 0xef, 0x6a, 0x6a,
1900 0xb0, 0x10, 0x3d, 0x53, 0xfe, 0x23,
1901 0x51, 0xc0, 0x51, 0xed, 0x1f, 0x02,
1902 0x4b, 0x73, 0x17, 0x59, 0xfa, 0xb9,
1903 0xa8, 0x05, 0xa7, 0x79, 0xc3, 0xc9,
1904 0x4c, 0x2d, 0x58, 0x59, 0x10, 0x99,
1905 0x71, 0xe6 ),
1906 BIGINT ( 0x01, 0x63, 0xd0, 0x07 ) );
1907 bigint_mod_exp_ok ( BIGINT ( 0xff, 0x2a, 0x37, 0x04, 0xd4, 0x08,
1908 0x9f, 0xf5, 0xac, 0x29, 0x7f, 0x4b,
1909 0x93, 0x86, 0x02, 0x26, 0xac, 0x29,
1910 0xa8, 0xf9, 0x77, 0x91, 0x20 ),
1911 BIGINT ( 0x2c, 0xb2, 0xe2, 0x1f, 0x4b, 0x97,
1912 0xaa, 0x3b, 0xd1, 0x36, 0xb0, 0x40,
1913 0x8b, 0x1c, 0x19, 0xa2, 0xea, 0xc8,
1914 0xc6, 0x4e, 0x2a, 0x66, 0x50 ),
1915 BIGINT ( 0x97 ),
1916 BIGINT ( 0x04, 0x22, 0x44, 0xe2, 0x14, 0x54,
1917 0x6c, 0x5a, 0xba, 0x1b, 0x39, 0xb7,
1918 0xaa, 0x06, 0xcf, 0x2b, 0xc8, 0x7e,
1919 0xc0, 0xe0, 0x70, 0xf2, 0x90 ) );
1920 bigint_mod_exp_ok ( BIGINT ( 0xcd, 0xf3, 0xf7, 0x50, 0x13, 0x39,
1921 0x13, 0x4a, 0x56, 0xc5, 0xb8, 0xa6,
1922 0x42, 0x2d, 0x40, 0x5e, 0x07, 0xf2,
1923 0x92, 0x2a, 0x51, 0x87, 0x20 ),
1924 BIGINT ( 0x93, 0x1a, 0x28, 0xbb, 0x69, 0x4f,
1925 0x31, 0x01, 0xe0, 0x88, 0x8a, 0x4c,
1926 0x4f, 0x9b, 0xda, 0xf6, 0x4e, 0xf3,
1927 0x11, 0xe7, 0x35, 0xa1, 0xfb ),
1928 BIGINT ( 0x66, 0x69 ),
1929 BIGINT ( 0x7a, 0x5a, 0x9b, 0x84, 0x72, 0x8f,
1930 0x57, 0x31, 0xb4, 0x34, 0x70, 0x18,
1931 0x77, 0xa6, 0x43, 0xa9, 0x51, 0x69,
1932 0x07, 0x3e, 0xf6, 0x68, 0x82 ) );
1933 bigint_mod_exp_ok ( BIGINT ( 0xdd, 0x4c, 0x85, 0xcb, 0x3f, 0x45,
1934 0x61, 0xe0, 0x58, 0x1e, 0xad, 0xd3,
1935 0x6b, 0xef, 0x82, 0x53, 0x4a, 0x16,
1936 0x1a, 0xf0, 0x09, 0x82, 0x74 ),
1937 BIGINT ( 0xd2, 0xa2, 0x73, 0x89, 0x0c, 0x56,
1938 0xe4, 0x31, 0xdf, 0x70, 0x3c, 0x40,
1939 0x0d, 0x36, 0xfc, 0x4a, 0xf3, 0xa2,
1940 0x8f, 0x9a, 0x9d, 0xaa, 0xb0 ),
1941 BIGINT ( 0xbc, 0xca, 0x45 ),
1942 BIGINT ( 0x9f, 0x5f, 0x7c, 0xac, 0x5e, 0xc7,
1943 0xf2, 0xc5, 0x72, 0x3d, 0xff, 0x29,
1944 0xd2, 0x25, 0xa9, 0x64, 0x5b, 0xbe,
1945 0x63, 0x63, 0xc6, 0x84, 0x20 ) );
1946 bigint_mod_exp_ok ( BIGINT ( 0xf8, 0xc9, 0xb9, 0x3d, 0xe1, 0xff,
1947 0xa6, 0x8e, 0xb0, 0xd2, 0xa9, 0xa9,
1948 0xc1, 0x5c, 0xc5, 0x94, 0x90, 0xb9,
1949 0xca, 0x2f, 0x1a, 0xbd, 0x21 ),
1950 BIGINT ( 0xa7, 0xf4, 0xb0, 0x3c, 0xf4, 0x2b,
1951 0x9d, 0x40, 0x5f, 0xfd, 0x2e, 0x28,
1952 0xa9, 0x23, 0x01, 0xaf, 0x0b, 0x73,
1953 0xaa, 0xcf, 0x14, 0xdc, 0xd8 ),
1954 BIGINT ( 0x31, 0xe2, 0xe8, 0xf0 ),
1955 BIGINT ( 0x53, 0x30, 0xc6, 0x10, 0x12, 0x7c,
1956 0xb3, 0x91, 0x15, 0x5f, 0x01, 0x62,
1957 0xec, 0x1f, 0x15, 0x61, 0x3b, 0x9a,
1958 0x76, 0x22, 0xf8, 0x31, 0xb1 ) );
1959 bigint_mod_exp_ok ( BIGINT ( 0xff, 0x8c, 0x04, 0x74, 0x3e, 0x93,
1960 0xfd, 0xce, 0xd5, 0x7f, 0xc5, 0x58,
1961 0xce, 0x00, 0x53, 0x44, 0x02, 0xf4,
1962 0xfd, 0x01, 0xc3, 0xb0, 0x3c ),
1963 BIGINT ( 0x2f, 0xbe, 0xb3, 0x2d, 0xd6, 0x59,
1964 0x69, 0x44, 0xc0, 0xd4, 0x27, 0x9c,
1965 0xff, 0x53, 0x9e, 0x66, 0x2c, 0x01,
1966 0x3a, 0x96, 0x5d, 0x75, 0xc1 ),
1967 BIGINT ( 0x47, 0x3e, 0xb2, 0x81, 0x51, 0x9a,
1968 0xdf, 0x75, 0xba, 0xa5, 0x19, 0xc1,
1969 0xc7, 0xcc, 0xae, 0x82, 0x9c, 0x3e,
1970 0xfd, 0x7f, 0xb0, 0xd7, 0x00 ),
1971 BIGINT ( 0x09, 0x9c, 0xd0, 0x49, 0x1d, 0x88,
1972 0xd8, 0x08, 0x45, 0x61, 0x71, 0xa1,
1973 0xb5, 0xab, 0xa9, 0x5b, 0xa8, 0xf1,
1974 0xc6, 0x53, 0x68, 0x8f, 0x3e ) );
1975 bigint_mod_exp_ok ( BIGINT ( 0xd8, 0x78, 0xad, 0x80, 0x81, 0xf1,
1976 0x84, 0x23, 0x82, 0x5d, 0x49, 0x46,
1977 0x75, 0xfd, 0xd1, 0x49, 0x53, 0x10,
1978 0x4d, 0x10, 0xab, 0x0f, 0xf0 ),
1979 BIGINT ( 0x78, 0x3d, 0x09, 0x1b, 0xea, 0xa4,
1980 0xb9, 0x13, 0xf8, 0xb5, 0xb5, 0x5e,
1981 0x69, 0xa4, 0xe1, 0xfd, 0x88, 0x58,
1982 0x26, 0xb3, 0x76, 0xa2, 0x38 ),
1983 BIGINT ( 0x3b, 0x12, 0xe0, 0x8e, 0xa2, 0x2f,
1984 0x2a, 0x2b, 0xb1, 0x78, 0xf9, 0xf6,
1985 0x93, 0x4d, 0x52, 0x82, 0x29, 0x2d,
1986 0xe4, 0x36, 0x92, 0x49, 0xc1, 0x25,
1987 0x6e, 0x26, 0xe6, 0x6e, 0xc2, 0x4d,
1988 0xea, 0x13, 0x86, 0x85, 0x71, 0x4d,
1989 0x85, 0x70, 0xf9, 0x2b, 0xa0, 0x0f,
1990 0x96, 0xe5, 0x63, 0x7a, 0xb4, 0x25,
1991 0x53, 0x1a, 0xd8, 0x30, 0x36, 0xba,
1992 0x6e, 0x2e, 0xce, 0x2d, 0x8f, 0x32,
1993 0xe9, 0xdc, 0x91, 0x9e, 0xd4, 0xf1,
1994 0x3b, 0x40, 0xc9, 0xf4, 0x97, 0x74,
1995 0x5e, 0x69, 0xcd, 0x34, 0x4a, 0x18,
1996 0x65, 0xe5, 0x07, 0xb5, 0x9e, 0x2a,
1997 0xc4, 0xeb, 0xb6, 0x96, 0x7b, 0x99,
1998 0x0c, 0xe4, 0xb3, 0x85, 0xff, 0x17,
1999 0x72, 0x5d, 0xf6, 0x30, 0xb4, 0xff,
2000 0x98, 0xe6, 0xf6, 0x31, 0x24, 0x82,
2001 0x91, 0xa6, 0x18, 0x6d, 0x0b, 0x84,
2002 0x6f, 0x5f, 0x64, 0xa3, 0xdf, 0x92,
2003 0x06, 0x16, 0xe3, 0x7c, 0x08, 0x61,
2004 0x77, 0xce ),
2005 BIGINT ( 0x17, 0xc9, 0xc5, 0x38, 0x4c, 0x15,
2006 0x0f, 0x4e, 0xc2, 0x90, 0x3b, 0x46,
2007 0x7b, 0x2f, 0x95, 0x82, 0xfe, 0x51,
2008 0x95, 0x2b, 0xff, 0xd5, 0x28 ) );
2009 bigint_mod_exp_ok ( BIGINT ( 0x69, 0xa3, 0x7e, 0x24, 0xdf, 0x9e,
2010 0x0b, 0x3e, 0x3f, 0x43, 0x06, 0x0e,
2011 0x1d, 0x57, 0x74, 0xe0, 0xa0, 0x5b,
2012 0x82, 0xca, 0xb0, 0x33, 0x8b, 0xe4,
2013 0x39, 0x27, 0x41, 0xd4, 0x2e, 0x30,
2014 0x3a, 0x0e, 0x62, 0x6f, 0xfa, 0xb4,
2015 0x02, 0x88, 0x70, 0x35, 0xa6, 0xea,
2016 0x7d, 0xb2, 0x87, 0xc3, 0xa5, 0x50,
2017 0x49, 0x38, 0xa4, 0x68, 0xa9, 0xe4,
2018 0xa6, 0xcc, 0xd7, 0x13, 0xb1, 0xd9,
2019 0x1c, 0x6a, 0x9a, 0xb8, 0x6c, 0x9b,
2020 0xff, 0xcd, 0x2c, 0xb3, 0xbd, 0xe2,
2021 0xfd, 0x1f, 0x08, 0xdd, 0xc6, 0xee,
2022 0x18, 0x0c, 0xa5, 0xcd, 0x09, 0x19,
2023 0x51, 0x51, 0xa5, 0x6f, 0x93, 0x1b,
2024 0x34, 0xfd, 0x8f, 0xd9, 0x87, 0xed,
2025 0x15, 0x7e, 0x36, 0x60, 0xdd, 0x1b,
2026 0xf4, 0xcc, 0xc4, 0x4c, 0x19, 0x2b,
2027 0xd6, 0x1e, 0xec, 0x51, 0xe9, 0x27,
2028 0xe9, 0xbd, 0x6a, 0x3f, 0x91, 0x45,
2029 0xc3, 0x6d, 0x40, 0x7e, 0x6c, 0x56,
2030 0x05, 0x5a ),
2031 BIGINT ( 0x5c, 0x96, 0x05, 0x81, 0x94, 0x45,
2032 0xcf, 0x47, 0x5f, 0x1b, 0xb0, 0xf9,
2033 0xef, 0x13, 0x8f, 0xcc, 0x71, 0xfd,
2034 0x50, 0xf1, 0xe7, 0x62, 0x6e, 0xfa,
2035 0x48, 0x66, 0x1c, 0xf7, 0xef, 0x09,
2036 0x12, 0xa2, 0xfd, 0x17, 0xb7, 0x6a,
2037 0x3b, 0xed, 0xf7, 0x86, 0xd2, 0xbe,
2038 0x95, 0x90, 0xc6, 0x00, 0x14, 0x8d,
2039 0xe3, 0x27, 0xbe, 0x03, 0x7c, 0x9e,
2040 0x6b, 0x51, 0x31, 0x8d, 0x18, 0xc4,
2041 0x16, 0xd2, 0x84, 0x63, 0x9b, 0xe9,
2042 0xa4, 0xf8, 0xff, 0x70, 0x4d, 0xeb,
2043 0x6f, 0x4a, 0xb7, 0x5b, 0x54, 0xf1,
2044 0xb5, 0xbe, 0x78, 0xb6, 0xfd, 0x8b,
2045 0xe1