summaryrefslogtreecommitdiffstats
path: root/all_pairs/source/rijndael_dec
diff options
context:
space:
mode:
authorJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
committerJoshua Bakita <bakitajoshua@gmail.com>2019-10-07 19:13:39 -0400
commit386b7d3366f1359a265da207a9cafa3edf553b64 (patch)
treec76120c2c138faed822e4ae386be6ef22a738a78 /all_pairs/source/rijndael_dec
parent54a3f7091a2146b29c73a6fdc4b62a5c4ad7a3d8 (diff)
Reorganize and commit all the modified TACLeBench code and run scripts
Diffstat (limited to 'all_pairs/source/rijndael_dec')
-rw-r--r--all_pairs/source/rijndael_dec/ChangeLog.txt58
-rw-r--r--all_pairs/source/rijndael_dec/aes.c406
-rw-r--r--all_pairs/source/rijndael_dec/aes.h165
-rw-r--r--all_pairs/source/rijndael_dec/aestab.h379
-rw-r--r--all_pairs/source/rijndael_dec/input_small_enc.c2051
-rw-r--r--all_pairs/source/rijndael_dec/rijndael_dec.c195
-rw-r--r--all_pairs/source/rijndael_dec/rijndael_dec_libc.c66
-rw-r--r--all_pairs/source/rijndael_dec/rijndael_dec_libc.h24
8 files changed, 3344 insertions, 0 deletions
diff --git a/all_pairs/source/rijndael_dec/ChangeLog.txt b/all_pairs/source/rijndael_dec/ChangeLog.txt
new file mode 100644
index 0000000..75e26a8
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/ChangeLog.txt
@@ -0,0 +1,58 @@
1File: rijndael_decoder.c
2Source: security section of MiBench
3
4- Prefix library functions with rijndael_dec
5- Move functionality from function main into functions
6 rijndael_enc_init, rijndael_enc_main, and rijndael_enc_return
7 (reusing code from rijndael_enc benchmark)
8- Added general TACLeBench header to beginning of source code
9- Applied code formatting with astyle as in the example
10- Rename to rijndael_dec.c
11- Make loop counter in rijndael_dec_init unsigned
12- Remove dead code in rijndael_dec_decfile
13
14File: aes.h
15Source: security section of MiBench
16
172016-04-20:
18- Replace with file aes.h from rijndael_enc benchmark
19- Declare prototype for rijndael_enc_decrypt instead of rijndael_enc_encrypt
20
21File: aes.c
22Source: security section of MiBench
23
242016-04-20:
25- Replace with file aes.h from rijndael_enc benchmark, using prefix
26 rijndael_dec
27- Replace implementation for rijndael_enc_encrypt with implementation
28 for rijndael_enc_decrypt
29- Applied code formatting with astyle as in the example
30- Remove unused macros s, ff_poly, ff_hi, m1, m2, m3, FFmulX,
31 fwd_mcol, fwd_var, inv_var, si, so, fwd_rnd, inv_rnd, fwd_lrnd,
32 inv_lrnd, locals, l_copy, state_in, state_out, round
33
342016-06-14:
35- Added cast to make C++ compiler happy
36
37File: aestab.h
38Source: security section of MiBench
39
402016-04-20:
41- Replace with file aestab.h from rijndael_enc benchmark, using prefix
42 rijndael_dec
43- Remove unused arrays rijndael_dec_s_box, rijndael_dec_inv_s_box,
44 rijndael_dec_ft_tab
45
46Files: glibc_common.c, my_file.c, glibc_common.h, my_file.h
47Source: security section of MiBench
48
492016-04-20:
50- Replace with files rijndael_enc_libc.c and rijndael_enc_libc.h from
51 rijndael_enc benchmark (renamed to rijndael_dec_libc.c and
52 rijndael_dec_libc.h, using prefix rijndael_dec)
53
54File: input_small_enc.c
55Source: security section of MiBench
56
572016-02-26:
58- Prefix input array with rijndael_dec
diff --git a/all_pairs/source/rijndael_dec/aes.c b/all_pairs/source/rijndael_dec/aes.c
new file mode 100644
index 0000000..f47adfd
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/aes.c
@@ -0,0 +1,406 @@
1/*
2 -----------------------------------------------------------------------
3 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
4
5 TERMS
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions
9 are met:
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 This software is provided 'as is' with no guarantees of correctness or
17 fitness for purpose.
18 -----------------------------------------------------------------------
19
20 FUNCTION
21
22 The AES algorithm Rijndael implemented for block and key sizes of 128,
23 bits (16 bytes) by Brian Gladman.
24
25 This is an implementation of the AES encryption algorithm (Rijndael)
26 designed by Joan Daemen and Vincent Rijmen.
27*/
28
29#include "aes.h"
30
31#include "aestab.h"
32
33#define four_tables(x,tab,vf,rf,c) ( tab[0][bval(vf(x,0,c),rf(0,c))] ^ \
34 tab[1][bval(vf(x,1,c),rf(1,c))] ^ \
35 tab[2][bval(vf(x,2,c),rf(2,c))] ^ \
36 tab[3][bval(vf(x,3,c),rf(3,c))] )
37
38#define vf1(x,r,c) (x)
39#define rf1(r,c) (r)
40#define rf2(r,c) ((r-c)&3)
41
42#define ls_box(x,c) four_tables(x,rijndael_dec_fl_tab,vf1,rf2,c)
43
44#define inv_mcol(x) four_tables(x,rijndael_dec_im_tab,vf1,rf1,0)
45
46/*
47 Subroutine to set the block size (if variable) in bytes, legal
48 values being 16, 24 and 32.
49*/
50
51#define nc (Ncol)
52
53/*
54 Initialise the key schedule from the user supplied key. The key
55 length is now specified in bytes - 16, 24 or 32 as appropriate.
56 This corresponds to bit lengths of 128, 192 and 256 bits, and
57 to Nk values of 4, 6 and 8 respectively.
58*/
59
60#define mx(t,f) (*t++ = inv_mcol(*f),f++)
61#define cp(t,f) *t++ = *f++
62
63#define cpy(d,s) do { cp(d,s); cp(d,s); cp(d,s); cp(d,s); } while (0)
64#define mix(d,s) do { mx(d,s); mx(d,s); mx(d,s); mx(d,s); } while (0)
65
66aes_ret rijndael_dec_set_key( byte in_key[], const word n_bytes,
67 const enum aes_key f, struct aes *cx )
68{
69 word *kf, *kt, rci;
70
71 if ( ( n_bytes & 7 ) || n_bytes < 16 || n_bytes > 32 || ( !( f & 1 ) &&
72 !( f & 2 ) ) )
73 return ( n_bytes ? cx->mode &= ~0x03, aes_bad : ( aes_ret )( cx->Nkey << 2 ) );
74
75 cx->mode = ( cx->mode & ~0x03 ) | ( ( byte )f & 0x03 );
76 cx->Nkey = n_bytes >> 2;
77 cx->Nrnd = Nr( cx->Nkey, ( word )nc );
78
79 cx->e_key[0] = word_in( in_key );
80 cx->e_key[1] = word_in( in_key + 4 );
81 cx->e_key[2] = word_in( in_key + 8 );
82 cx->e_key[3] = word_in( in_key + 12 );
83
84 kf = cx->e_key;
85 kt = kf + nc * ( cx->Nrnd + 1 ) - cx->Nkey;
86 rci = 0;
87
88 switch ( cx->Nkey ) {
89 case 4:
90 _Pragma( "loopbound min 0 max 0" )
91 do {
92 kf[4] = kf[0] ^ ls_box( kf[3], 3 ) ^ rijndael_dec_rcon_tab[rci++];
93 kf[5] = kf[1] ^ kf[4];
94 kf[6] = kf[2] ^ kf[5];
95 kf[7] = kf[3] ^ kf[6];
96 kf += 4;
97 } while ( kf < kt );
98 break;
99
100 case 6:
101 cx->e_key[4] = word_in( in_key + 16 );
102 cx->e_key[5] = word_in( in_key + 20 );
103 _Pragma( "loopbound min 0 max 0" )
104 do {
105 kf[ 6] = kf[0] ^ ls_box( kf[5], 3 ) ^ rijndael_dec_rcon_tab[rci++];
106 kf[ 7] = kf[1] ^ kf[ 6];
107 kf[ 8] = kf[2] ^ kf[ 7];
108 kf[ 9] = kf[3] ^ kf[ 8];
109 kf[10] = kf[4] ^ kf[ 9];
110 kf[11] = kf[5] ^ kf[10];
111 kf += 6;
112 } while ( kf < kt );
113 break;
114
115 case 8:
116 cx->e_key[4] = word_in( in_key + 16 );
117 cx->e_key[5] = word_in( in_key + 20 );
118 cx->e_key[6] = word_in( in_key + 24 );
119 cx->e_key[7] = word_in( in_key + 28 );
120 _Pragma( "loopbound min 7 max 7" )
121 do {
122 kf[ 8] = kf[0] ^ ls_box( kf[7], 3 ) ^ rijndael_dec_rcon_tab[rci++];
123 kf[ 9] = kf[1] ^ kf[ 8];
124 kf[10] = kf[2] ^ kf[ 9];
125 kf[11] = kf[3] ^ kf[10];
126 kf[12] = kf[4] ^ ls_box( kf[11], 0 );
127 kf[13] = kf[5] ^ kf[12];
128 kf[14] = kf[6] ^ kf[13];
129 kf[15] = kf[7] ^ kf[14];
130 kf += 8;
131 } while ( kf < kt );
132 break;
133 }
134
135 if ( ( cx->mode & 3 ) != enc ) {
136 word i;
137
138 kt = cx->d_key + nc * cx->Nrnd;
139 kf = cx->e_key;
140
141 cpy( kt, kf );
142 kt -= 2 * nc;
143
144 _Pragma( "loopbound min 0 max 0" )
145 for ( i = 1; i < cx->Nrnd; ++i ) {
146 mix( kt, kf );
147 kt -= 2 * nc;
148 }
149
150 cpy( kt, kf );
151 }
152
153 return aes_good;
154}
155
156short rijndael_dec_decrypt( const unsigned char in_blk[],
157 unsigned char out_blk[], const struct aes *cx )
158{
159 const unsigned long *kp = cx->d_key;
160 if ( !( cx->mode & 2 ) )
161 return 0;
162 unsigned long b0[4];
163 b0[0] = *( unsigned long * )in_blk ^ kp[0];
164 b0[1] = *( unsigned long * )( in_blk + 4 )^kp[1];
165 b0[2] = *( unsigned long * )( in_blk + 8 )^kp[2];
166 b0[3] = *( unsigned long * )( in_blk + 12 )^kp[3];
167 kp += 4;
168 unsigned long b1[4];
169 switch ( cx->Nrnd ) {
170 case 14:
171 b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
172 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
173 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
174 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
175 b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
176 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
177 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
178 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
179 b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
180 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
181 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
182 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
183 b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
184 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
185 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
186 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
187 b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
188 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
189 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
190 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
191 b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
192 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
193 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
194 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
195 b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
196 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
197 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
198 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
199 b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
200 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
201 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
202 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
203 kp += 8;
204 case 12:
205 b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
206 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
207 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
208 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
209 b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
210 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
211 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
212 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
213 b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
214 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
215 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
216 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
217 b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
218 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
219 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
220 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
221 b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
222 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
223 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
224 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
225 b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
226 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
227 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
228 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
229 b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
230 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
231 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
232 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
233 b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
234 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
235 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
236 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
237 kp += 8;
238 case 10:
239 b1[0] = kp[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
240 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
241 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
242 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
243 b1[1] = kp[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
244 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
245 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
246 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
247 b1[2] = kp[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
248 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
249 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
250 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
251 b1[3] = kp[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
252 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
253 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
254 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
255 b0[0] = ( kp + 4 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
256 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
257 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
258 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
259 b0[1] = ( kp + 4 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
260 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
261 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
262 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
263 b0[2] = ( kp + 4 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
264 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
265 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
266 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
267 b0[3] = ( kp + 4 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
268 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
269 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
270 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
271 b1[0] = ( kp + 8 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
272 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
273 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
274 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
275 b1[1] = ( kp + 8 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
276 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
277 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
278 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
279 b1[2] = ( kp + 8 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
280 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
281 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
282 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
283 b1[3] = ( kp + 8 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
284 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
285 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
286 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
287 b0[0] = ( kp + 12 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
288 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
289 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
290 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
291 b0[1] = ( kp + 12 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
292 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
293 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
294 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
295 b0[2] = ( kp + 12 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
296 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
297 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
298 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
299 b0[3] = ( kp + 12 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
300 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
301 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
302 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
303 b1[0] = ( kp + 16 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
304 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
305 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
306 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
307 b1[1] = ( kp + 16 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
308 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
309 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
310 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
311 b1[2] = ( kp + 16 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
312 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
313 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
314 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
315 b1[3] = ( kp + 16 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
316 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
317 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
318 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
319 b0[0] = ( kp + 20 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
320 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
321 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
322 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
323 b0[1] = ( kp + 20 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
324 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
325 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
326 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
327 b0[2] = ( kp + 20 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
328 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
329 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
330 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
331 b0[3] = ( kp + 20 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
332 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
333 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
334 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
335 b1[0] = ( kp + 24 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
336 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
337 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
338 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
339 b1[1] = ( kp + 24 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
340 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
341 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
342 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
343 b1[2] = ( kp + 24 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
344 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
345 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
346 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
347 b1[3] = ( kp + 24 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
348 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
349 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
350 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
351 b0[0] = ( kp + 28 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[0] )] ^
352 rijndael_dec_it_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
353 rijndael_dec_it_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
354 rijndael_dec_it_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
355 b0[1] = ( kp + 28 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[1] )] ^
356 rijndael_dec_it_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
357 rijndael_dec_it_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
358 rijndael_dec_it_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
359 b0[2] = ( kp + 28 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[2] )] ^
360 rijndael_dec_it_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
361 rijndael_dec_it_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
362 rijndael_dec_it_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
363 b0[3] = ( kp + 28 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b1[3] )] ^
364 rijndael_dec_it_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
365 rijndael_dec_it_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
366 rijndael_dec_it_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
367 b1[0] = ( kp + 32 )[0] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[0] )] ^
368 rijndael_dec_it_tab[1][( ( unsigned char )( b0[3] >> 8 ) )] ^
369 rijndael_dec_it_tab[2][( ( unsigned char )( b0[2] >> 16 ) )] ^
370 rijndael_dec_it_tab[3][( ( unsigned char )( b0[1] >> 24 ) )] );
371 b1[1] = ( kp + 32 )[1] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[1] )] ^
372 rijndael_dec_it_tab[1][( ( unsigned char )( b0[0] >> 8 ) )] ^
373 rijndael_dec_it_tab[2][( ( unsigned char )( b0[3] >> 16 ) )] ^
374 rijndael_dec_it_tab[3][( ( unsigned char )( b0[2] >> 24 ) )] );
375 b1[2] = ( kp + 32 )[2] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[2] )] ^
376 rijndael_dec_it_tab[1][( ( unsigned char )( b0[1] >> 8 ) )] ^
377 rijndael_dec_it_tab[2][( ( unsigned char )( b0[0] >> 16 ) )] ^
378 rijndael_dec_it_tab[3][( ( unsigned char )( b0[3] >> 24 ) )] );
379 b1[3] = ( kp + 32 )[3] ^ ( rijndael_dec_it_tab[0][( ( unsigned char )b0[3] )] ^
380 rijndael_dec_it_tab[1][( ( unsigned char )( b0[2] >> 8 ) )] ^
381 rijndael_dec_it_tab[2][( ( unsigned char )( b0[1] >> 16 ) )] ^
382 rijndael_dec_it_tab[3][( ( unsigned char )( b0[0] >> 24 ) )] );
383 b0[0] = ( kp + 36 )[0] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[0] )] ^
384 rijndael_dec_il_tab[1][( ( unsigned char )( b1[3] >> 8 ) )] ^
385 rijndael_dec_il_tab[2][( ( unsigned char )( b1[2] >> 16 ) )] ^
386 rijndael_dec_il_tab[3][( ( unsigned char )( b1[1] >> 24 ) )] );
387 b0[1] = ( kp + 36 )[1] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[1] )] ^
388 rijndael_dec_il_tab[1][( ( unsigned char )( b1[0] >> 8 ) )] ^
389 rijndael_dec_il_tab[2][( ( unsigned char )( b1[3] >> 16 ) )] ^
390 rijndael_dec_il_tab[3][( ( unsigned char )( b1[2] >> 24 ) )] );
391 b0[2] = ( kp + 36 )[2] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[2] )] ^
392 rijndael_dec_il_tab[1][( ( unsigned char )( b1[1] >> 8 ) )] ^
393 rijndael_dec_il_tab[2][( ( unsigned char )( b1[0] >> 16 ) )] ^
394 rijndael_dec_il_tab[3][( ( unsigned char )( b1[3] >> 24 ) )] );
395 b0[3] = ( kp + 36 )[3] ^ ( rijndael_dec_il_tab[0][( ( unsigned char )b1[3] )] ^
396 rijndael_dec_il_tab[1][( ( unsigned char )( b1[2] >> 8 ) )] ^
397 rijndael_dec_il_tab[2][( ( unsigned char )( b1[1] >> 16 ) )] ^
398 rijndael_dec_il_tab[3][( ( unsigned char )( b1[0] >> 24 ) )] );
399 }
400 *( unsigned long * )out_blk = ( b0[0] );
401 *( unsigned long * )( out_blk + 4 ) = ( b0[1] );
402 *( unsigned long * )( out_blk + 8 ) = ( b0[2] );
403 *( unsigned long * )( out_blk + 12 ) = ( b0[3] );
404 return aes_good;
405}
406
diff --git a/all_pairs/source/rijndael_dec/aes.h b/all_pairs/source/rijndael_dec/aes.h
new file mode 100644
index 0000000..69bf3d3
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/aes.h
@@ -0,0 +1,165 @@
1/*
2 -----------------------------------------------------------------------
3 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
4
5 TERMS
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions
9 are met:
10 1. Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 This software is provided 'as is' with no guarantees of correctness or
17 fitness for purpose.
18 -----------------------------------------------------------------------
19
20 1. FUNCTION
21
22 The AES algorithm Rijndael implemented for block and key sizes of
23 128 bits (16 bytes) by Brian Gladman.
24
25 This is an implementation of the AES encryption algorithm (Rijndael)
26 designed by Joan Daemen and Vincent Rijmen.
27
28 2. THE CIPHER INTERFACE
29
30 byte (an unsigned 8-bit type)
31 word (an unsigned 32-bit type)
32 aes_ret: (a signed 16 bit type for function return values)
33 aes_good (value != 0, a good return)
34 aes_bad (value == 0, an error return)
35 enum aes_key: (encryption direction)
36 enc (set key for encryption)
37 dec (set key for decryption)
38 both (set key for both)
39 class or struct aes (structure for context)
40
41 C subroutine calls:
42
43 aes_ret set_blk(const word block_length, aes *cx) (variable block size)
44 aes_ret set_key(const byte key[], const word key_length,
45 const enum aes_key direction, aes *cx)
46 aes_ret encrypt(const byte input_blk[], byte output_blk[], const aes *cx)
47 aes_ret decrypt(const byte input_blk[], byte output_blk[], const aes *cx)
48
49 IMPORTANT NOTE: If you are using this C interface and your compiler does
50 not set the memory used for objects to zero before use, you will need to
51 ensure that cx.mode is set to zero before using the C subroutine calls.
52
53 The block length inputs to set_block and set_key are in numbers of
54 BYTES, not bits. The calls to subroutines must be made in the above
55 order but multiple calls can be made without repeating earlier calls
56 if their parameters have not changed. If the cipher block length is
57 variable but set_blk has not been called before cipher operations a
58 value of 16 is assumed (that is, the AES block size). In contrast to
59 earlier versions the block and key length parameters are now checked
60 for correctness and the encryption and decryption routines check to
61 ensure that an appropriate key has been set before they are called.
62
63*/
64
65#ifndef _AES_H
66#define _AES_H
67
68/* The only supported block size for the benchmark is 16 */
69#define BLOCK_SIZE 16
70
71/*
72 The number of key schedule words for different block and key lengths
73 (allowing for the method of computation which requires the length to
74 be a multiple of the key length):
75
76 Key Schedule key length (bytes)
77 Length 16 20 24 28 32
78 ---------------------
79 block 16 | 44 60 54 56 64
80 length 20 | 60 60 66 70 80
81 (bytes) 24 | 80 80 78 84 96
82 28 | 100 100 102 98 112
83 32 | 120 120 120 126 120
84
85 Rcon Table key length (bytes)
86 Length 16 20 24 28 32
87 ---------------------
88 block 16 | 10 9 8 7 7
89 length 20 | 14 11 10 9 9
90 (bytes) 24 | 19 15 12 11 11
91 28 | 24 19 16 13 13
92 32 | 29 23 19 17 14
93
94 The following values assume that the key length will be variable and may
95 be of maximum length (32 bytes).
96
97 Nk = number_of_key_bytes / 4
98 Nc = number_of_columns_in_state / 4
99 Nr = number of encryption/decryption rounds
100 Rc = number of elements in rcon table
101 Ks = number of 32-bit words in key schedule
102*/
103
104#define Nr(Nk,Nc) ((Nk > Nc ? Nk : Nc) + 6)
105#define Rc(Nk,Nc) ((Nb * (Nr(Nk,Nc) + 1) - 1) / Nk)
106#define Ks(Nk,Nc) (Nk * (Rc(Nk,Nc) + 1))
107
108#define RC_LENGTH 5 * BLOCK_SIZE / 4 - (BLOCK_SIZE == 16 ? 10 : 11)
109#define KS_LENGTH 4 * BLOCK_SIZE
110
111/* End of configuration options, but see also aes.c */
112
113typedef unsigned char byte; /* must be an 8-bit storage unit */
114typedef unsigned long word; /* must be a 32-bit storage unit */
115typedef short aes_ret; /* function return value */
116
117#define aes_bad 0
118#define aes_good 1
119
120/*
121 upr(x,n): rotates bytes within words by n positions, moving bytes
122 to higher index positions with wrap around into low positions
123 ups(x,n): moves bytes by n positions to higher index positions in
124 words but without wrap around
125 bval(x,n): extracts a byte from a word
126*/
127
128#define upr(x,n) (((x) << 8 * (n)) | ((x) >> (32 - 8 * (n))))
129#define ups(x,n) ((x) << 8 * (n))
130#define bval(x,n) ((byte)((x) >> 8 * (n)))
131#define byte_swap(x) (upr(x,1) & 0x00ff00ff | upr(x,3) & 0xff00ff00)
132#define bytes2word(b0, b1, b2, b3) ((word)(b3) << 24 | (word)(b2) << 16 | \
133 (word)(b1) << 8 | (b0))
134
135#define word_in(x) *(word*)(x)
136#define word_out(x,v) *(word*)(x) = (v)
137
138enum aes_const { Nrow = 4, /* the number of rows in the cipher state */
139 Mcol = 8, /* maximum number of columns in the state */
140 Ncol = BLOCK_SIZE / 4,
141 Shr0 = 0, /* the cyclic shift values for rows 0, 1, 2 & 3 */
142 Shr1 = 1,
143 Shr2 = BLOCK_SIZE == 32 ? 3 : 2,
144 Shr3 = BLOCK_SIZE == 32 ? 4 : 3
145 };
146
147enum aes_key { enc = 1, /* set if encryption is needed */
148 dec = 2, /* set if decryption is needed */
149 both = 3 /* set if both are needed */
150 };
151
152struct aes {
153 word Nkey; /* the number of words in the key input block */
154 word Nrnd; /* the number of cipher rounds */
155 word e_key[KS_LENGTH]; /* the encryption key schedule */
156 word d_key[KS_LENGTH]; /* the decryption key schedule */
157 byte mode; /* encrypt, decrypt or both */
158};
159
160aes_ret rijndael_dec_set_key( byte key[], const word n_bytes,
161 const enum aes_key f, struct aes *cx );
162aes_ret rijndael_dec_decrypt( const byte in_blk[], byte out_blk[],
163 const struct aes *cx );
164
165#endif
diff --git a/all_pairs/source/rijndael_dec/aestab.h b/all_pairs/source/rijndael_dec/aestab.h
new file mode 100644
index 0000000..c42702b
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/aestab.h
@@ -0,0 +1,379 @@
1
2/*
3 -----------------------------------------------------------------------
4 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
5
6 TERMS
7
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions
10 are met:
11 1. Redistributions of source code must retain the above copyright
12 notice, this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
16
17 This software is provided 'as is' with no guarantees of correctness or
18 fitness for purpose.
19 -----------------------------------------------------------------------
20*/
21
22/*
23 Used to ensure table is generated in the right format
24 depending on the internal byte order required.
25*/
26
27#define w0(p) 0x000000##p
28
29/*
30 Number of elements required in this table for different
31 block and key lengths is:
32
33 Rcon Table key length (bytes)
34 Length 16 20 24 28 32
35 ---------------------
36 block 16 | 10 9 8 7 7
37 length 20 | 14 11 10 9 9
38 (bytes) 24 | 19 15 12 11 11
39 28 | 24 19 16 13 13
40 32 | 29 23 19 17 14
41
42 this table can be a table of bytes if the key schedule
43 code is adjusted accordingly
44*/
45
46const word rijndael_dec_rcon_tab[29] = {
47 w0( 01 ), w0( 02 ), w0( 04 ), w0( 08 ),
48 w0( 10 ), w0( 20 ), w0( 40 ), w0( 80 ),
49 w0( 1b ), w0( 36 ), w0( 6c ), w0( d8 ),
50 w0( ab ), w0( 4d ), w0( 9a ), w0( 2f ),
51 w0( 5e ), w0( bc ), w0( 63 ), w0( c6 ),
52 w0( 97 ), w0( 35 ), w0( 6a ), w0( d4 ),
53 w0( b3 ), w0( 7d ), w0( fa ), w0( ef ),
54 w0( c5 )
55};
56
57#undef w0
58
59/*
60 used to ensure table is generated in the right format
61 depending on the internal byte order required
62*/
63
64#define r0(p,q,r,s) 0x##p##q##r##s
65#define r1(p,q,r,s) 0x##q##r##s##p
66#define r2(p,q,r,s) 0x##r##s##p##q
67#define r3(p,q,r,s) 0x##s##p##q##r
68#define w0(p) 0x000000##p
69#define w1(p) 0x0000##p##00
70#define w2(p) 0x00##p##0000
71#define w3(p) 0x##p##000000
72
73/*
74 used to ensure table is generated in the right format
75 depending on the internal byte order required
76*/
77
78/* data for forward tables (other than last round) */
79
80#define f_table \
81 r(a5,63,63,c6), r(84,7c,7c,f8), r(99,77,77,ee), r(8d,7b,7b,f6), \
82 r(0d,f2,f2,ff), r(bd,6b,6b,d6), r(b1,6f,6f,de), r(54,c5,c5,91), \
83 r(50,30,30,60), r(03,01,01,02), r(a9,67,67,ce), r(7d,2b,2b,56), \
84 r(19,fe,fe,e7), r(62,d7,d7,b5), r(e6,ab,ab,4d), r(9a,76,76,ec), \
85 r(45,ca,ca,8f), r(9d,82,82,1f), r(40,c9,c9,89), r(87,7d,7d,fa), \
86 r(15,fa,fa,ef), r(eb,59,59,b2), r(c9,47,47,8e), r(0b,f0,f0,fb), \
87 r(ec,ad,ad,41), r(67,d4,d4,b3), r(fd,a2,a2,5f), r(ea,af,af,45), \
88 r(bf,9c,9c,23), r(f7,a4,a4,53), r(96,72,72,e4), r(5b,c0,c0,9b), \
89 r(c2,b7,b7,75), r(1c,fd,fd,e1), r(ae,93,93,3d), r(6a,26,26,4c), \
90 r(5a,36,36,6c), r(41,3f,3f,7e), r(02,f7,f7,f5), r(4f,cc,cc,83), \
91 r(5c,34,34,68), r(f4,a5,a5,51), r(34,e5,e5,d1), r(08,f1,f1,f9), \
92 r(93,71,71,e2), r(73,d8,d8,ab), r(53,31,31,62), r(3f,15,15,2a), \
93 r(0c,04,04,08), r(52,c7,c7,95), r(65,23,23,46), r(5e,c3,c3,9d), \
94 r(28,18,18,30), r(a1,96,96,37), r(0f,05,05,0a), r(b5,9a,9a,2f), \
95 r(09,07,07,0e), r(36,12,12,24), r(9b,80,80,1b), r(3d,e2,e2,df), \
96 r(26,eb,eb,cd), r(69,27,27,4e), r(cd,b2,b2,7f), r(9f,75,75,ea), \
97 r(1b,09,09,12), r(9e,83,83,1d), r(74,2c,2c,58), r(2e,1a,1a,34), \
98 r(2d,1b,1b,36), r(b2,6e,6e,dc), r(ee,5a,5a,b4), r(fb,a0,a0,5b), \
99 r(f6,52,52,a4), r(4d,3b,3b,76), r(61,d6,d6,b7), r(ce,b3,b3,7d), \
100 r(7b,29,29,52), r(3e,e3,e3,dd), r(71,2f,2f,5e), r(97,84,84,13), \
101 r(f5,53,53,a6), r(68,d1,d1,b9), r(00,00,00,00), r(2c,ed,ed,c1), \
102 r(60,20,20,40), r(1f,fc,fc,e3), r(c8,b1,b1,79), r(ed,5b,5b,b6), \
103 r(be,6a,6a,d4), r(46,cb,cb,8d), r(d9,be,be,67), r(4b,39,39,72), \
104 r(de,4a,4a,94), r(d4,4c,4c,98), r(e8,58,58,b0), r(4a,cf,cf,85), \
105 r(6b,d0,d0,bb), r(2a,ef,ef,c5), r(e5,aa,aa,4f), r(16,fb,fb,ed), \
106 r(c5,43,43,86), r(d7,4d,4d,9a), r(55,33,33,66), r(94,85,85,11), \
107 r(cf,45,45,8a), r(10,f9,f9,e9), r(06,02,02,04), r(81,7f,7f,fe), \
108 r(f0,50,50,a0), r(44,3c,3c,78), r(ba,9f,9f,25), r(e3,a8,a8,4b), \
109 r(f3,51,51,a2), r(fe,a3,a3,5d), r(c0,40,40,80), r(8a,8f,8f,05), \
110 r(ad,92,92,3f), r(bc,9d,9d,21), r(48,38,38,70), r(04,f5,f5,f1), \
111 r(df,bc,bc,63), r(c1,b6,b6,77), r(75,da,da,af), r(63,21,21,42), \
112 r(30,10,10,20), r(1a,ff,ff,e5), r(0e,f3,f3,fd), r(6d,d2,d2,bf), \
113 r(4c,cd,cd,81), r(14,0c,0c,18), r(35,13,13,26), r(2f,ec,ec,c3), \
114 r(e1,5f,5f,be), r(a2,97,97,35), r(cc,44,44,88), r(39,17,17,2e), \
115 r(57,c4,c4,93), r(f2,a7,a7,55), r(82,7e,7e,fc), r(47,3d,3d,7a), \
116 r(ac,64,64,c8), r(e7,5d,5d,ba), r(2b,19,19,32), r(95,73,73,e6), \
117 r(a0,60,60,c0), r(98,81,81,19), r(d1,4f,4f,9e), r(7f,dc,dc,a3), \
118 r(66,22,22,44), r(7e,2a,2a,54), r(ab,90,90,3b), r(83,88,88,0b), \
119 r(ca,46,46,8c), r(29,ee,ee,c7), r(d3,b8,b8,6b), r(3c,14,14,28), \
120 r(79,de,de,a7), r(e2,5e,5e,bc), r(1d,0b,0b,16), r(76,db,db,ad), \
121 r(3b,e0,e0,db), r(56,32,32,64), r(4e,3a,3a,74), r(1e,0a,0a,14), \
122 r(db,49,49,92), r(0a,06,06,0c), r(6c,24,24,48), r(e4,5c,5c,b8), \
123 r(5d,c2,c2,9f), r(6e,d3,d3,bd), r(ef,ac,ac,43), r(a6,62,62,c4), \
124 r(a8,91,91,39), r(a4,95,95,31), r(37,e4,e4,d3), r(8b,79,79,f2), \
125 r(32,e7,e7,d5), r(43,c8,c8,8b), r(59,37,37,6e), r(b7,6d,6d,da), \
126 r(8c,8d,8d,01), r(64,d5,d5,b1), r(d2,4e,4e,9c), r(e0,a9,a9,49), \
127 r(b4,6c,6c,d8), r(fa,56,56,ac), r(07,f4,f4,f3), r(25,ea,ea,cf), \
128 r(af,65,65,ca), r(8e,7a,7a,f4), r(e9,ae,ae,47), r(18,08,08,10), \
129 r(d5,ba,ba,6f), r(88,78,78,f0), r(6f,25,25,4a), r(72,2e,2e,5c), \
130 r(24,1c,1c,38), r(f1,a6,a6,57), r(c7,b4,b4,73), r(51,c6,c6,97), \
131 r(23,e8,e8,cb), r(7c,dd,dd,a1), r(9c,74,74,e8), r(21,1f,1f,3e), \
132 r(dd,4b,4b,96), r(dc,bd,bd,61), r(86,8b,8b,0d), r(85,8a,8a,0f), \
133 r(90,70,70,e0), r(42,3e,3e,7c), r(c4,b5,b5,71), r(aa,66,66,cc), \
134 r(d8,48,48,90), r(05,03,03,06), r(01,f6,f6,f7), r(12,0e,0e,1c), \
135 r(a3,61,61,c2), r(5f,35,35,6a), r(f9,57,57,ae), r(d0,b9,b9,69), \
136 r(91,86,86,17), r(58,c1,c1,99), r(27,1d,1d,3a), r(b9,9e,9e,27), \
137 r(38,e1,e1,d9), r(13,f8,f8,eb), r(b3,98,98,2b), r(33,11,11,22), \
138 r(bb,69,69,d2), r(70,d9,d9,a9), r(89,8e,8e,07), r(a7,94,94,33), \
139 r(b6,9b,9b,2d), r(22,1e,1e,3c), r(92,87,87,15), r(20,e9,e9,c9), \
140 r(49,ce,ce,87), r(ff,55,55,aa), r(78,28,28,50), r(7a,df,df,a5), \
141 r(8f,8c,8c,03), r(f8,a1,a1,59), r(80,89,89,09), r(17,0d,0d,1a), \
142 r(da,bf,bf,65), r(31,e6,e6,d7), r(c6,42,42,84), r(b8,68,68,d0), \
143 r(c3,41,41,82), r(b0,99,99,29), r(77,2d,2d,5a), r(11,0f,0f,1e), \
144 r(cb,b0,b0,7b), r(fc,54,54,a8), r(d6,bb,bb,6d), r(3a,16,16,2c)
145
146/* data for inverse tables (other than last round) */
147
148#define i_table \
149 r(50,a7,f4,51), r(53,65,41,7e), r(c3,a4,17,1a), r(96,5e,27,3a), \
150 r(cb,6b,ab,3b), r(f1,45,9d,1f), r(ab,58,fa,ac), r(93,03,e3,4b), \
151 r(55,fa,30,20), r(f6,6d,76,ad), r(91,76,cc,88), r(25,4c,02,f5), \
152 r(fc,d7,e5,4f), r(d7,cb,2a,c5), r(80,44,35,26), r(8f,a3,62,b5), \
153 r(49,5a,b1,de), r(67,1b,ba,25), r(98,0e,ea,45), r(e1,c0,fe,5d), \
154 r(02,75,2f,c3), r(12,f0,4c,81), r(a3,97,46,8d), r(c6,f9,d3,6b), \
155 r(e7,5f,8f,03), r(95,9c,92,15), r(eb,7a,6d,bf), r(da,59,52,95), \
156 r(2d,83,be,d4), r(d3,21,74,58), r(29,69,e0,49), r(44,c8,c9,8e), \
157 r(6a,89,c2,75), r(78,79,8e,f4), r(6b,3e,58,99), r(dd,71,b9,27), \
158 r(b6,4f,e1,be), r(17,ad,88,f0), r(66,ac,20,c9), r(b4,3a,ce,7d), \
159 r(18,4a,df,63), r(82,31,1a,e5), r(60,33,51,97), r(45,7f,53,62), \
160 r(e0,77,64,b1), r(84,ae,6b,bb), r(1c,a0,81,fe), r(94,2b,08,f9), \
161 r(58,68,48,70), r(19,fd,45,8f), r(87,6c,de,94), r(b7,f8,7b,52), \
162 r(23,d3,73,ab), r(e2,02,4b,72), r(57,8f,1f,e3), r(2a,ab,55,66), \
163 r(07,28,eb,b2), r(03,c2,b5,2f), r(9a,7b,c5,86), r(a5,08,37,d3), \
164 r(f2,87,28,30), r(b2,a5,bf,23), r(ba,6a,03,02), r(5c,82,16,ed), \
165 r(2b,1c,cf,8a), r(92,b4,79,a7), r(f0,f2,07,f3), r(a1,e2,69,4e), \
166 r(cd,f4,da,65), r(d5,be,05,06), r(1f,62,34,d1), r(8a,fe,a6,c4), \
167 r(9d,53,2e,34), r(a0,55,f3,a2), r(32,e1,8a,05), r(75,eb,f6,a4), \
168 r(39,ec,83,0b), r(aa,ef,60,40), r(06,9f,71,5e), r(51,10,6e,bd), \
169 r(f9,8a,21,3e), r(3d,06,dd,96), r(ae,05,3e,dd), r(46,bd,e6,4d), \
170 r(b5,8d,54,91), r(05,5d,c4,71), r(6f,d4,06,04), r(ff,15,50,60), \
171 r(24,fb,98,19), r(97,e9,bd,d6), r(cc,43,40,89), r(77,9e,d9,67), \
172 r(bd,42,e8,b0), r(88,8b,89,07), r(38,5b,19,e7), r(db,ee,c8,79), \
173 r(47,0a,7c,a1), r(e9,0f,42,7c), r(c9,1e,84,f8), r(00,00,00,00), \
174 r(83,86,80,09), r(48,ed,2b,32), r(ac,70,11,1e), r(4e,72,5a,6c), \
175 r(fb,ff,0e,fd), r(56,38,85,0f), r(1e,d5,ae,3d), r(27,39,2d,36), \
176 r(64,d9,0f,0a), r(21,a6,5c,68), r(d1,54,5b,9b), r(3a,2e,36,24), \
177 r(b1,67,0a,0c), r(0f,e7,57,93), r(d2,96,ee,b4), r(9e,91,9b,1b), \
178 r(4f,c5,c0,80), r(a2,20,dc,61), r(69,4b,77,5a), r(16,1a,12,1c), \
179 r(0a,ba,93,e2), r(e5,2a,a0,c0), r(43,e0,22,3c), r(1d,17,1b,12), \
180 r(0b,0d,09,0e), r(ad,c7,8b,f2), r(b9,a8,b6,2d), r(c8,a9,1e,14), \
181 r(85,19,f1,57), r(4c,07,75,af), r(bb,dd,99,ee), r(fd,60,7f,a3), \
182 r(9f,26,01,f7), r(bc,f5,72,5c), r(c5,3b,66,44), r(34,7e,fb,5b), \
183 r(76,29,43,8b), r(dc,c6,23,cb), r(68,fc,ed,b6), r(63,f1,e4,b8), \
184 r(ca,dc,31,d7), r(10,85,63,42), r(40,22,97,13), r(20,11,c6,84), \
185 r(7d,24,4a,85), r(f8,3d,bb,d2), r(11,32,f9,ae), r(6d,a1,29,c7), \
186 r(4b,2f,9e,1d), r(f3,30,b2,dc), r(ec,52,86,0d), r(d0,e3,c1,77), \
187 r(6c,16,b3,2b), r(99,b9,70,a9), r(fa,48,94,11), r(22,64,e9,47), \
188 r(c4,8c,fc,a8), r(1a,3f,f0,a0), r(d8,2c,7d,56), r(ef,90,33,22), \
189 r(c7,4e,49,87), r(c1,d1,38,d9), r(fe,a2,ca,8c), r(36,0b,d4,98), \
190 r(cf,81,f5,a6), r(28,de,7a,a5), r(26,8e,b7,da), r(a4,bf,ad,3f), \
191 r(e4,9d,3a,2c), r(0d,92,78,50), r(9b,cc,5f,6a), r(62,46,7e,54), \
192 r(c2,13,8d,f6), r(e8,b8,d8,90), r(5e,f7,39,2e), r(f5,af,c3,82), \
193 r(be,80,5d,9f), r(7c,93,d0,69), r(a9,2d,d5,6f), r(b3,12,25,cf), \
194 r(3b,99,ac,c8), r(a7,7d,18,10), r(6e,63,9c,e8), r(7b,bb,3b,db), \
195 r(09,78,26,cd), r(f4,18,59,6e), r(01,b7,9a,ec), r(a8,9a,4f,83), \
196 r(65,6e,95,e6), r(7e,e6,ff,aa), r(08,cf,bc,21), r(e6,e8,15,ef), \
197 r(d9,9b,e7,ba), r(ce,36,6f,4a), r(d4,09,9f,ea), r(d6,7c,b0,29), \
198 r(af,b2,a4,31), r(31,23,3f,2a), r(30,94,a5,c6), r(c0,66,a2,35), \
199 r(37,bc,4e,74), r(a6,ca,82,fc), r(b0,d0,90,e0), r(15,d8,a7,33), \
200 r(4a,98,04,f1), r(f7,da,ec,41), r(0e,50,cd,7f), r(2f,f6,91,17), \
201 r(8d,d6,4d,76), r(4d,b0,ef,43), r(54,4d,aa,cc), r(df,04,96,e4), \
202 r(e3,b5,d1,9e), r(1b,88,6a,4c), r(b8,1f,2c,c1), r(7f,51,65,46), \
203 r(04,ea,5e,9d), r(5d,35,8c,01), r(73,74,87,fa), r(2e,41,0b,fb), \
204 r(5a,1d,67,b3), r(52,d2,db,92), r(33,56,10,e9), r(13,47,d6,6d), \
205 r(8c,61,d7,9a), r(7a,0c,a1,37), r(8e,14,f8,59), r(89,3c,13,eb), \
206 r(ee,27,a9,ce), r(35,c9,61,b7), r(ed,e5,1c,e1), r(3c,b1,47,7a), \
207 r(59,df,d2,9c), r(3f,73,f2,55), r(79,ce,14,18), r(bf,37,c7,73), \
208 r(ea,cd,f7,53), r(5b,aa,fd,5f), r(14,6f,3d,df), r(86,db,44,78), \
209 r(81,f3,af,ca), r(3e,c4,68,b9), r(2c,34,24,38), r(5f,40,a3,c2), \
210 r(72,c3,1d,16), r(0c,25,e2,bc), r(8b,49,3c,28), r(41,95,0d,ff), \
211 r(71,01,a8,39), r(de,b3,0c,08), r(9c,e4,b4,d8), r(90,c1,56,64), \
212 r(61,84,cb,7b), r(70,b6,32,d5), r(74,5c,6c,48), r(42,57,b8,d0)
213
214/* generate the required tables in the desired endian format */
215
216#undef r
217#define r r0
218const word rijndael_dec_it_tab[4][256] = {
219 { i_table },
220#undef r
221#define r r1
222 { i_table },
223#undef r
224#define r r2
225 { i_table },
226#undef r
227#define r r3
228 { i_table }
229};
230
231/* data for inverse tables (last round) */
232
233#define li_table \
234 w(52), w(09), w(6a), w(d5), w(30), w(36), w(a5), w(38), \
235 w(bf), w(40), w(a3), w(9e), w(81), w(f3), w(d7), w(fb), \
236 w(7c), w(e3), w(39), w(82), w(9b), w(2f), w(ff), w(87), \
237 w(34), w(8e), w(43), w(44), w(c4), w(de), w(e9), w(cb), \
238 w(54), w(7b), w(94), w(32), w(a6), w(c2), w(23), w(3d), \
239 w(ee), w(4c), w(95), w(0b), w(42), w(fa), w(c3), w(4e), \
240 w(08), w(2e), w(a1), w(66), w(28), w(d9), w(24), w(b2), \
241 w(76), w(5b), w(a2), w(49), w(6d), w(8b), w(d1), w(25), \
242 w(72), w(f8), w(f6), w(64), w(86), w(68), w(98), w(16), \
243 w(d4), w(a4), w(5c), w(cc), w(5d), w(65), w(b6), w(92), \
244 w(6c), w(70), w(48), w(50), w(fd), w(ed), w(b9), w(da), \
245 w(5e), w(15), w(46), w(57), w(a7), w(8d), w(9d), w(84), \
246 w(90), w(d8), w(ab), w(00), w(8c), w(bc), w(d3), w(0a), \
247 w(f7), w(e4), w(58), w(05), w(b8), w(b3), w(45), w(06), \
248 w(d0), w(2c), w(1e), w(8f), w(ca), w(3f), w(0f), w(02), \
249 w(c1), w(af), w(bd), w(03), w(01), w(13), w(8a), w(6b), \
250 w(3a), w(91), w(11), w(41), w(4f), w(67), w(dc), w(ea), \
251 w(97), w(f2), w(cf), w(ce), w(f0), w(b4), w(e6), w(73), \
252 w(96), w(ac), w(74), w(22), w(e7), w(ad), w(35), w(85), \
253 w(e2), w(f9), w(37), w(e8), w(1c), w(75), w(df), w(6e), \
254 w(47), w(f1), w(1a), w(71), w(1d), w(29), w(c5), w(89), \
255 w(6f), w(b7), w(62), w(0e), w(aa), w(18), w(be), w(1b), \
256 w(fc), w(56), w(3e), w(4b), w(c6), w(d2), w(79), w(20), \
257 w(9a), w(db), w(c0), w(fe), w(78), w(cd), w(5a), w(f4), \
258 w(1f), w(dd), w(a8), w(33), w(88), w(07), w(c7), w(31), \
259 w(b1), w(12), w(10), w(59), w(27), w(80), w(ec), w(5f), \
260 w(60), w(51), w(7f), w(a9), w(19), w(b5), w(4a), w(0d), \
261 w(2d), w(e5), w(7a), w(9f), w(93), w(c9), w(9c), w(ef), \
262 w(a0), w(e0), w(3b), w(4d), w(ae), w(2a), w(f5), w(b0), \
263 w(c8), w(eb), w(bb), w(3c), w(83), w(53), w(99), w(61), \
264 w(17), w(2b), w(04), w(7e), w(ba), w(77), w(d6), w(26), \
265 w(e1), w(69), w(14), w(63), w(55), w(21), w(0c), w(7d),
266
267/* generate the required tables in the desired endian format */
268
269#undef r
270#define r(p,q,r,s) w0(q)
271const word rijndael_dec_fl_tab[4][256] = {
272 { f_table },
273#undef r
274#define r(p,q,r,s) w1(q)
275 { f_table },
276#undef r
277#define r(p,q,r,s) w2(q)
278 { f_table },
279#undef r
280#define r(p,q,r,s) w3(q)
281 { f_table }
282};
283
284#undef w
285#define w w0
286const word rijndael_dec_il_tab[4][256] = {
287 { li_table },
288#undef w
289#define w w1
290 { li_table },
291#undef w
292#define w w2
293 { li_table },
294#undef w
295#define w w3
296 { li_table }
297};
298
299#define m_table \
300 r(00,00,00,00), r(0b,0d,09,0e), r(16,1a,12,1c), r(1d,17,1b,12), \
301 r(2c,34,24,38), r(27,39,2d,36), r(3a,2e,36,24), r(31,23,3f,2a), \
302 r(58,68,48,70), r(53,65,41,7e), r(4e,72,5a,6c), r(45,7f,53,62), \
303 r(74,5c,6c,48), r(7f,51,65,46), r(62,46,7e,54), r(69,4b,77,5a), \
304 r(b0,d0,90,e0), r(bb,dd,99,ee), r(a6,ca,82,fc), r(ad,c7,8b,f2), \
305 r(9c,e4,b4,d8), r(97,e9,bd,d6), r(8a,fe,a6,c4), r(81,f3,af,ca), \
306 r(e8,b8,d8,90), r(e3,b5,d1,9e), r(fe,a2,ca,8c), r(f5,af,c3,82), \
307 r(c4,8c,fc,a8), r(cf,81,f5,a6), r(d2,96,ee,b4), r(d9,9b,e7,ba), \
308 r(7b,bb,3b,db), r(70,b6,32,d5), r(6d,a1,29,c7), r(66,ac,20,c9), \
309 r(57,8f,1f,e3), r(5c,82,16,ed), r(41,95,0d,ff), r(4a,98,04,f1), \
310 r(23,d3,73,ab), r(28,de,7a,a5), r(35,c9,61,b7), r(3e,c4,68,b9), \
311 r(0f,e7,57,93), r(04,ea,5e,9d), r(19,fd,45,8f), r(12,f0,4c,81), \
312 r(cb,6b,ab,3b), r(c0,66,a2,35), r(dd,71,b9,27), r(d6,7c,b0,29), \
313 r(e7,5f,8f,03), r(ec,52,86,0d), r(f1,45,9d,1f), r(fa,48,94,11), \
314 r(93,03,e3,4b), r(98,0e,ea,45), r(85,19,f1,57), r(8e,14,f8,59), \
315 r(bf,37,c7,73), r(b4,3a,ce,7d), r(a9,2d,d5,6f), r(a2,20,dc,61), \
316 r(f6,6d,76,ad), r(fd,60,7f,a3), r(e0,77,64,b1), r(eb,7a,6d,bf), \
317 r(da,59,52,95), r(d1,54,5b,9b), r(cc,43,40,89), r(c7,4e,49,87), \
318 r(ae,05,3e,dd), r(a5,08,37,d3), r(b8,1f,2c,c1), r(b3,12,25,cf), \
319 r(82,31,1a,e5), r(89,3c,13,eb), r(94,2b,08,f9), r(9f,26,01,f7), \
320 r(46,bd,e6,4d), r(4d,b0,ef,43), r(50,a7,f4,51), r(5b,aa,fd,5f), \
321 r(6a,89,c2,75), r(61,84,cb,7b), r(7c,93,d0,69), r(77,9e,d9,67), \
322 r(1e,d5,ae,3d), r(15,d8,a7,33), r(08,cf,bc,21), r(03,c2,b5,2f), \
323 r(32,e1,8a,05), r(39,ec,83,0b), r(24,fb,98,19), r(2f,f6,91,17), \
324 r(8d,d6,4d,76), r(86,db,44,78), r(9b,cc,5f,6a), r(90,c1,56,64), \
325 r(a1,e2,69,4e), r(aa,ef,60,40), r(b7,f8,7b,52), r(bc,f5,72,5c), \
326 r(d5,be,05,06), r(de,b3,0c,08), r(c3,a4,17,1a), r(c8,a9,1e,14), \
327 r(f9,8a,21,3e), r(f2,87,28,30), r(ef,90,33,22), r(e4,9d,3a,2c), \
328 r(3d,06,dd,96), r(36,0b,d4,98), r(2b,1c,cf,8a), r(20,11,c6,84), \
329 r(11,32,f9,ae), r(1a,3f,f0,a0), r(07,28,eb,b2), r(0c,25,e2,bc), \
330 r(65,6e,95,e6), r(6e,63,9c,e8), r(73,74,87,fa), r(78,79,8e,f4), \
331 r(49,5a,b1,de), r(42,57,b8,d0), r(5f,40,a3,c2), r(54,4d,aa,cc), \
332 r(f7,da,ec,41), r(fc,d7,e5,4f), r(e1,c0,fe,5d), r(ea,cd,f7,53), \
333 r(db,ee,c8,79), r(d0,e3,c1,77), r(cd,f4,da,65), r(c6,f9,d3,6b), \
334 r(af,b2,a4,31), r(a4,bf,ad,3f), r(b9,a8,b6,2d), r(b2,a5,bf,23), \
335 r(83,86,80,09), r(88,8b,89,07), r(95,9c,92,15), r(9e,91,9b,1b), \
336 r(47,0a,7c,a1), r(4c,07,75,af), r(51,10,6e,bd), r(5a,1d,67,b3), \
337 r(6b,3e,58,99), r(60,33,51,97), r(7d,24,4a,85), r(76,29,43,8b), \
338 r(1f,62,34,d1), r(14,6f,3d,df), r(09,78,26,cd), r(02,75,2f,c3), \
339 r(33,56,10,e9), r(38,5b,19,e7), r(25,4c,02,f5), r(2e,41,0b,fb), \
340 r(8c,61,d7,9a), r(87,6c,de,94), r(9a,7b,c5,86), r(91,76,cc,88), \
341 r(a0,55,f3,a2), r(ab,58,fa,ac), r(b6,4f,e1,be), r(bd,42,e8,b0), \
342 r(d4,09,9f,ea), r(df,04,96,e4), r(c2,13,8d,f6), r(c9,1e,84,f8), \
343 r(f8,3d,bb,d2), r(f3,30,b2,dc), r(ee,27,a9,ce), r(e5,2a,a0,c0), \
344 r(3c,b1,47,7a), r(37,bc,4e,74), r(2a,ab,55,66), r(21,a6,5c,68), \
345 r(10,85,63,42), r(1b,88,6a,4c), r(06,9f,71,5e), r(0d,92,78,50), \
346 r(64,d9,0f,0a), r(6f,d4,06,04), r(72,c3,1d,16), r(79,ce,14,18), \
347 r(48,ed,2b,32), r(43,e0,22,3c), r(5e,f7,39,2e), r(55,fa,30,20), \
348 r(01,b7,9a,ec), r(0a,ba,93,e2), r(17,ad,88,f0), r(1c,a0,81,fe), \
349 r(2d,83,be,d4), r(26,8e,b7,da), r(3b,99,ac,c8), r(30,94,a5,c6), \
350 r(59,df,d2,9c), r(52,d2,db,92), r(4f,c5,c0,80), r(44,c8,c9,8e), \
351 r(75,eb,f6,a4), r(7e,e6,ff,aa), r(63,f1,e4,b8), r(68,fc,ed,b6), \
352 r(b1,67,0a,0c), r(ba,6a,03,02), r(a7,7d,18,10), r(ac,70,11,1e), \
353 r(9d,53,2e,34), r(96,5e,27,3a), r(8b,49,3c,28), r(80,44,35,26), \
354 r(e9,0f,42,7c), r(e2,02,4b,72), r(ff,15,50,60), r(f4,18,59,6e), \
355 r(c5,3b,66,44), r(ce,36,6f,4a), r(d3,21,74,58), r(d8,2c,7d,56), \
356 r(7a,0c,a1,37), r(71,01,a8,39), r(6c,16,b3,2b), r(67,1b,ba,25), \
357 r(56,38,85,0f), r(5d,35,8c,01), r(40,22,97,13), r(4b,2f,9e,1d), \
358 r(22,64,e9,47), r(29,69,e0,49), r(34,7e,fb,5b), r(3f,73,f2,55), \
359 r(0e,50,cd,7f), r(05,5d,c4,71), r(18,4a,df,63), r(13,47,d6,6d), \
360 r(ca,dc,31,d7), r(c1,d1,38,d9), r(dc,c6,23,cb), r(d7,cb,2a,c5), \
361 r(e6,e8,15,ef), r(ed,e5,1c,e1), r(f0,f2,07,f3), r(fb,ff,0e,fd), \
362 r(92,b4,79,a7), r(99,b9,70,a9), r(84,ae,6b,bb), r(8f,a3,62,b5), \
363 r(be,80,5d,9f), r(b5,8d,54,91), r(a8,9a,4f,83), r(a3,97,46,8d)
364
365#undef r
366#define r r0
367
368const word rijndael_dec_im_tab[4][256] = {
369 { m_table },
370#undef r
371#define r r1
372 { m_table },
373#undef r
374#define r r2
375 { m_table },
376#undef r
377#define r r3
378 { m_table }
379};
diff --git a/all_pairs/source/rijndael_dec/input_small_enc.c b/all_pairs/source/rijndael_dec/input_small_enc.c
new file mode 100644
index 0000000..2a881a9
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/input_small_enc.c
@@ -0,0 +1,2051 @@
1unsigned char rijndael_dec_data[] = {
2 96, 83, 127, 28, 212, 92, 146, 102, 38, 17, 193, 142, 95, 217, 184, 105,
3 79, 112, 144, 112, 44, 202, 141, 48, 181, 177, 82, 92, 208, 250, 216, 152,
4 41, 208, 7, 232, 238, 116, 134, 238, 230, 190, 239, 195, 235, 80, 125, 51,
5 251, 39, 7, 100, 213, 190, 189, 81, 241, 49, 215, 254, 253, 203, 13, 164,
6 175, 244, 25, 111, 226, 225, 176, 96, 58, 165, 32, 243, 68, 205, 209, 242,
7 186, 229, 167, 155, 238, 105, 120, 173, 246, 72, 29, 96, 71, 169, 83, 154,
8 226, 129, 236, 52, 243, 159, 61, 71, 20, 119, 245, 196, 25, 203, 11, 10,
9 37, 163, 139, 180, 250, 191, 138, 99, 78, 192, 73, 186, 22, 12, 119, 151,
10 185, 155, 195, 54, 73, 207, 108, 170, 112, 237, 100, 165, 219, 223, 23, 179,
11 124, 172, 52, 22, 143, 57, 132, 60, 176, 218, 11, 86, 89, 59, 254, 84,
12 180, 76, 120, 174, 17, 214, 88, 48, 240, 12, 56, 93, 136, 156, 75, 176,
13 30, 43, 4, 107, 30, 210, 26, 183, 235, 39, 35, 205, 139, 80, 249, 182,
14 15, 91, 210, 234, 47, 67, 64, 234, 148, 108, 240, 242, 32, 11, 48, 199,
15 117, 31, 149, 30, 97, 149, 241, 50, 177, 166, 127, 31, 135, 115, 240, 77,
16 198, 88, 108, 246, 108, 148, 158, 89, 173, 233, 252, 95, 51, 42, 218, 54,
17 28, 143, 203, 164, 74, 147, 55, 108, 225, 222, 87, 161, 243, 35, 179, 130,
18 29, 70, 225, 178, 148, 152, 247, 167, 21, 245, 84, 139, 3, 228, 221, 25,
19 53, 36, 121, 29, 204, 35, 1, 46, 26, 8, 237, 102, 231, 252, 176, 88,
20 24, 110, 255, 163, 86, 64, 117, 68, 178, 73, 219, 201, 24, 155, 76, 255,
21 253, 199, 165, 95, 246, 179, 15, 47, 203, 81, 92, 231, 246, 247, 111, 58,
22 82, 222, 193, 24, 37, 164, 161, 8, 169, 172, 223, 111, 186, 72, 160, 116,
23 242, 8, 192, 178, 224, 177, 228, 42, 102, 206, 237, 52, 143, 16, 150, 143,
24 108, 3, 88, 81, 199, 49, 110, 220, 5, 89, 244, 227, 27, 226, 101, 9,
25 238, 0, 206, 228, 254, 19, 189, 240, 159, 29, 46, 2, 206, 184, 205, 228,
26 144, 241, 88, 78, 156, 23, 44, 200, 99, 146, 179, 96, 1, 143, 87, 57,
27 39, 75, 174, 32, 190, 125, 152, 183, 46, 39, 136, 88, 240, 110, 104, 70,
28 253, 29, 110, 113, 235, 123, 56, 60, 243, 238, 246, 113, 11, 18, 246, 108,
29 95, 238, 177, 43, 3, 112, 121, 161, 196, 204, 211, 171, 197, 41, 249, 71,
30 194, 153, 82, 28, 10, 28, 12, 241, 212, 90, 124, 236, 171, 54, 35, 226,
31 152, 246, 241, 74, 139, 133, 241, 76, 183, 197, 232, 250, 54, 202, 11, 10,
32 203, 30, 169, 138, 110, 252, 62, 172, 6, 241, 81, 181, 87, 177, 128, 221,
33 111, 133, 94, 251, 184, 54, 92, 242, 28, 112, 138, 116, 32, 164, 158, 59,
34 51, 30, 155, 126, 196, 117, 233, 117, 92, 74, 4, 72, 19, 237, 248, 142,
35 184, 175, 126, 203, 4, 210, 70, 40, 105, 16, 36, 42, 118, 110, 4, 180,
36 208, 52, 232, 230, 107, 154, 233, 61, 176, 170, 32, 59, 60, 47, 43, 70,
37 71, 3, 58, 24, 166, 22, 165, 154, 255, 166, 12, 81, 63, 116, 146, 12,
38 5, 6, 133, 240, 110, 253, 209, 15, 71, 179, 93, 203, 58, 138, 5, 90,
39 111, 140, 19, 186, 191, 68, 230, 121, 95, 166, 219, 107, 233, 156, 18, 145,
40 239, 150, 234, 191, 91, 233, 114, 5, 215, 85, 30, 66, 33, 152, 117, 128,
41 236, 189, 201, 203, 10, 184, 198, 249, 61, 27, 144, 102, 246, 191, 54, 129,
42 86, 8, 197, 98, 231, 234, 222, 164, 161, 40, 150, 253, 208, 82, 92, 225,
43 85, 206, 59, 1, 170, 5, 255, 219, 89, 204, 122, 169, 78, 8, 5, 70,
44 75, 128, 80, 176, 16, 214, 253, 176, 255, 191, 91, 89, 126, 155, 128, 195,
45 56, 150, 101, 131, 255, 234, 241, 250, 61, 210, 85, 19, 21, 23, 122, 180,
46 34, 100, 102, 166, 128, 21, 177, 11, 86, 110, 112, 179, 126, 36, 152, 196,
47 62, 185, 186, 20, 91, 35, 85, 148, 168, 68, 145, 245, 170, 25, 190, 237,
48 192, 125, 186, 182, 22, 188, 161, 122, 194, 21, 14, 102, 206, 60, 129, 156,
49 173, 176, 37, 112, 129, 145, 177, 101, 206, 179, 35, 221, 107, 228, 181, 212,
50 52, 253, 241, 145, 121, 128, 68, 118, 78, 66, 166, 78, 176, 62, 217, 243,
51 193, 1, 254, 200, 35, 67, 226, 77, 55, 72, 6, 144, 22, 85, 252, 209,
52 142, 65, 226, 158, 126, 168, 175, 179, 219, 116, 235, 227, 42, 49, 126, 126,
53 215, 200, 126, 0, 39, 247, 161, 217, 26, 228, 232, 113, 53, 151, 34, 223,
54 91, 242, 155, 156, 144, 229, 237, 127, 227, 49, 239, 71, 102, 115, 74, 135,
55 103, 13, 3, 108, 101, 211, 36, 59, 146, 143, 230, 44, 212, 145, 229, 53,
56 108, 175, 42, 131, 113, 123, 30, 28, 149, 153, 117, 233, 76, 33, 148, 110,
57 19, 83, 125, 135, 44, 202, 2, 155, 4, 240, 167, 7, 13, 115, 243, 216,
58 73, 248, 216, 82, 230, 153, 48, 234, 157, 2, 130, 99, 147, 2, 244, 19,
59 125, 30, 39, 148, 49, 134, 140, 240, 128, 230, 171, 24, 53, 245, 54, 72,
60 111, 230, 192, 165, 199, 47, 186, 238, 121, 95, 220, 76, 229, 253, 157, 47,
61 34, 47, 39, 77, 199, 203, 163, 148, 172, 56, 204, 96, 69, 235, 215, 96,
62 92, 139, 92, 49, 73, 228, 70, 221, 18, 84, 167, 179, 201, 239, 71, 64,
63 29, 247, 84, 56, 148, 36, 169, 144, 192, 60, 153, 171, 89, 125, 48, 98,
64 201, 56, 230, 154, 146, 46, 184, 202, 3, 39, 113, 90, 249, 163, 0, 188,
65 233, 10, 216, 17, 159, 42, 134, 57, 70, 24, 33, 63, 8, 67, 85, 7,
66 133, 180, 127, 12, 234, 121, 183, 38, 131, 154, 241, 236, 69, 67, 116, 54,
67 40, 225, 6, 220, 22, 251, 1, 100, 110, 165, 114, 12, 170, 21, 190, 103,
68 242, 171, 216, 66, 30, 3, 214, 137, 231, 172, 61, 8, 249, 198, 113, 181,
69 171, 13, 159, 21, 147, 67, 249, 94, 189, 174, 15, 2, 62, 254, 29, 32,
70 209, 169, 184, 119, 220, 98, 248, 163, 171, 22, 62, 125, 155, 100, 186, 97,
71 163, 245, 70, 216, 246, 1, 11, 83, 41, 100, 64, 52, 99, 184, 151, 99,
72 46, 100, 168, 158, 210, 150, 38, 231, 27, 255, 59, 141, 232, 127, 56, 39,
73 194, 104, 178, 151, 15, 25, 219, 221, 81, 119, 178, 153, 94, 173, 64, 215,
74 128, 132, 163, 159, 214, 254, 181, 194, 113, 144, 141, 103, 17, 108, 178, 59,
75 62, 205, 117, 57, 183, 97, 18, 210, 87, 163, 231, 213, 233, 251, 94, 136,
76 217, 168, 69, 48, 55, 68, 144, 203, 187, 51, 211, 151, 1, 194, 118, 181,
77 154, 103, 186, 87, 43, 128, 215, 79, 101, 175, 60, 221, 158, 189, 94, 194,
78 87, 73, 72, 162, 252, 26, 40, 142, 86, 228, 82, 255, 122, 192, 167, 78,
79 177, 40, 249, 195, 100, 188, 31, 208, 124, 123, 31, 121, 244, 4, 82, 3,
80 132, 15, 2, 29, 186, 76, 106, 109, 158, 114, 25, 212, 74, 64, 255, 43,
81 40, 146, 159, 225, 39, 65, 85, 37, 60, 160, 123, 116, 127, 134, 45, 177,
82 191, 49, 136, 211, 167, 218, 197, 15, 96, 45, 55, 11, 237, 103, 118, 207,
83 0, 211, 25, 143, 19, 93, 114, 90, 105, 253, 88, 140, 207, 56, 150, 0,
84 136, 159, 134, 63, 75, 142, 177, 0, 107, 105, 78, 148, 214, 248, 70, 72,
85 125, 220, 156, 220, 222, 102, 202, 176, 12, 58, 24, 39, 254, 170, 130, 77,
86 203, 193, 162, 56, 162, 57, 76, 153, 170, 112, 94, 0, 220, 58, 58, 40,
87 173, 2, 193, 164, 168, 127, 225, 238, 10, 194, 112, 213, 181, 126, 222, 152,
88 12, 57, 14, 146, 137, 154, 203, 179, 45, 133, 70, 204, 66, 249, 32, 136,
89 145, 0, 221, 224, 10, 1, 202, 139, 145, 247, 72, 254, 32, 169, 121, 167,
90 114, 198, 244, 251, 243, 8, 114, 188, 178, 173, 25, 243, 122, 220, 45, 98,
91 7, 168, 66, 58, 225, 217, 152, 81, 89, 39, 167, 146, 181, 138, 253, 196,
92 145, 4, 72, 9, 14, 137, 155, 32, 217, 64, 4, 173, 220, 66, 114, 21,
93 137, 118, 87, 163, 217, 204, 74, 236, 45, 170, 60, 141, 216, 234, 182, 79,
94 74, 73, 94, 63, 89, 134, 88, 64, 32, 241, 9, 114, 253, 164, 108, 31,
95 27, 42, 172, 7, 102, 213, 153, 83, 1, 152, 136, 224, 248, 70, 112, 15,
96 211, 194, 216, 16, 255, 62, 83, 147, 173, 192, 239, 55, 18, 223, 34, 152,
97 25, 163, 229, 4, 55, 219, 235, 187, 51, 116, 12, 202, 198, 116, 188, 217,
98 91, 30, 11, 9, 13, 222, 120, 16, 93, 99, 56, 129, 27, 133, 155, 120,
99 124, 112, 101, 42, 222, 122, 124, 59, 84, 228, 202, 189, 13, 11, 10, 44,
100 220, 97, 67, 53, 246, 47, 230, 131, 192, 1, 247, 137, 90, 77, 243, 131,
101 2, 130, 93, 183, 117, 102, 69, 191, 27, 87, 103, 218, 157, 124, 17, 209,
102 135, 92, 78, 211, 141, 25, 157, 53, 17, 249, 209, 206, 84, 19, 135, 253,
103 57, 36, 38, 112, 184, 61, 76, 5, 203, 155, 7, 9, 179, 167, 38, 136,
104 189, 40, 19, 183, 132, 81, 135, 167, 48, 74, 186, 249, 144, 193, 150, 73,
105 10, 192, 191, 160, 74, 246, 12, 38, 107, 3, 66, 122, 184, 168, 218, 233,
106 78, 216, 11, 57, 124, 104, 167, 0, 187, 2, 214, 136, 252, 60, 85, 128,
107 128, 31, 70, 197, 211, 180, 216, 75, 212, 163, 168, 15, 174, 44, 194, 231,
108 24, 181, 154, 161, 241, 95, 197, 227, 146, 195, 187, 69, 127, 154, 145, 176,
109 180, 157, 13, 225, 107, 60, 29, 14, 223, 93, 214, 248, 107, 65, 168, 251,
110 231, 46, 34, 203, 76, 20, 206, 125, 80, 25, 196, 60, 213, 51, 238, 73,
111 17, 223, 151, 44, 60, 213, 164, 117, 188, 66, 195, 170, 190, 117, 110, 21,
112 27, 78, 244, 124, 224, 142, 182, 10, 122, 135, 121, 143, 240, 124, 6, 8,
113 22, 15, 3, 137, 12, 19, 11, 62, 212, 205, 3, 202, 189, 157, 141, 68,
114 171, 142, 106, 69, 207, 8, 116, 194, 6, 200, 96, 220, 248, 132, 46, 171,
115 57, 234, 31, 3, 112, 108, 15, 139, 243, 34, 181, 250, 10, 86, 71, 162,
116 167, 85, 177, 57, 166, 80, 41, 253, 128, 28, 127, 220, 149, 27, 29, 41,
117 201, 116, 211, 236, 34, 200, 100, 157, 130, 223, 4, 162, 108, 181, 40, 255,
118 96, 18, 77, 36, 217, 17, 225, 142, 124, 17, 91, 227, 13, 224, 213, 37,
119 115, 216, 93, 149, 103, 105, 152, 190, 207, 54, 74, 226, 78, 133, 200, 252,
120 157, 152, 39, 0, 173, 168, 132, 142, 17, 66, 241, 137, 12, 106, 42, 81,
121 239, 78, 31, 131, 49, 243, 122, 178, 212, 137, 160, 104, 15, 145, 15, 116,
122 103, 141, 94, 40, 127, 180, 174, 96, 222, 182, 226, 168, 174, 113, 228, 156,
123 10, 18, 231, 122, 150, 178, 17, 200, 254, 96, 42, 243, 225, 58, 235, 64,
124 159, 73, 162, 72, 46, 160, 33, 191, 99, 73, 130, 32, 135, 84, 29, 100,
125 232, 75, 110, 180, 226, 11, 143, 127, 79, 246, 48, 148, 229, 211, 204, 72,
126 18, 89, 22, 251, 202, 8, 10, 2, 130, 230, 219, 71, 66, 142, 149, 47,
127 12, 117, 202, 224, 248, 35, 75, 242, 87, 125, 230, 66, 38, 160, 62, 248,
128 213, 32, 166, 83, 220, 230, 0, 1, 147, 51, 128, 110, 20, 16, 43, 142,
129 90, 0, 2, 104, 111, 232, 38, 29, 181, 243, 130, 121, 105, 177, 168, 113,
130 126, 191, 59, 205, 27, 180, 49, 128, 160, 225, 23, 173, 193, 155, 123, 12,
131 173, 72, 139, 63, 23, 232, 138, 235, 39, 179, 158, 95, 103, 192, 13, 242,
132 11, 127, 239, 91, 13, 119, 19, 185, 105, 87, 195, 168, 145, 15, 53, 146,
133 35, 227, 101, 234, 198, 247, 19, 29, 134, 126, 211, 133, 78, 186, 127, 129,
134 181, 115, 133, 62, 166, 133, 128, 225, 101, 98, 146, 175, 110, 113, 171, 117,
135 4, 130, 190, 186, 216, 17, 201, 29, 62, 77, 74, 189, 50, 155, 188, 93,
136 237, 26, 100, 225, 91, 120, 229, 163, 16, 210, 167, 138, 241, 147, 36, 56,
137 12, 100, 33, 55, 232, 200, 118, 3, 222, 31, 72, 167, 91, 45, 133, 62,
138 184, 64, 120, 116, 249, 12, 15, 243, 98, 145, 234, 253, 71, 194, 61, 4,
139 102, 112, 35, 27, 75, 13, 1, 4, 128, 238, 170, 187, 80, 147, 216, 165,
140 147, 248, 250, 241, 69, 106, 233, 227, 22, 153, 120, 138, 113, 83, 104, 154,
141 50, 99, 153, 188, 69, 252, 171, 177, 49, 74, 134, 219, 247, 255, 191, 202,
142 165, 239, 179, 147, 91, 215, 195, 157, 68, 21, 180, 112, 187, 51, 66, 80,
143 205, 100, 35, 78, 59, 92, 175, 87, 224, 170, 237, 223, 224, 83, 182, 199,
144 47, 95, 111, 42, 197, 22, 21, 143, 123, 173, 69, 247, 31, 205, 69, 136,
145 137, 136, 241, 233, 67, 7, 225, 112, 102, 92, 180, 211, 254, 29, 129, 29,
146 21, 188, 44, 95, 57, 122, 17, 196, 213, 33, 56, 23, 88, 236, 185, 35,
147 17, 156, 165, 93, 108, 157, 198, 5, 124, 225, 150, 156, 146, 116, 88, 116,
148 181, 207, 90, 85, 145, 228, 231, 91, 116, 79, 6, 119, 6, 207, 190, 102,
149 72, 242, 2, 253, 79, 92, 88, 189, 28, 57, 28, 101, 199, 134, 124, 215,
150 59, 37, 222, 54, 194, 151, 252, 185, 74, 101, 193, 43, 186, 184, 255, 158,
151 129, 183, 83, 176, 249, 134, 58, 15, 49, 213, 127, 162, 179, 56, 53, 4,
152 114, 112, 29, 84, 246, 109, 46, 153, 97, 30, 208, 98, 234, 155, 104, 158,
153 93, 9, 53, 175, 49, 54, 160, 238, 150, 117, 145, 202, 210, 37, 15, 3,
154 100, 20, 116, 153, 90, 23, 2, 146, 58, 182, 199, 197, 122, 89, 30, 152,
155 241, 105, 97, 115, 131, 111, 4, 235, 217, 213, 144, 218, 217, 201, 141, 113,
156 21, 237, 254, 184, 181, 135, 177, 86, 215, 248, 169, 55, 231, 229, 60, 133,
157 12, 194, 206, 112, 206, 175, 216, 131, 181, 41, 154, 235, 76, 152, 58, 118,
158 111, 32, 220, 219, 253, 198, 18, 227, 71, 129, 197, 227, 96, 155, 66, 0,
159 51, 132, 150, 208, 177, 188, 149, 100, 236, 23, 49, 45, 236, 131, 225, 206,
160 77, 77, 94, 12, 244, 159, 85, 247, 189, 109, 141, 217, 80, 115, 44, 171,
161 138, 68, 128, 147, 244, 213, 43, 187, 135, 126, 156, 158, 199, 61, 180, 112,
162 130, 230, 146, 100, 106, 56, 70, 71, 234, 3, 202, 1, 45, 20, 136, 149,
163 112, 178, 25, 110, 160, 221, 57, 191, 78, 9, 250, 233, 4, 144, 28, 219,
164 200, 203, 227, 218, 229, 108, 59, 221, 141, 0, 122, 121, 65, 156, 204, 19,
165 152, 215, 64, 164, 15, 77, 26, 113, 82, 229, 23, 103, 204, 151, 118, 104,
166 171, 115, 72, 191, 5, 159, 133, 83, 221, 228, 120, 127, 46, 233, 14, 27,
167 216, 31, 63, 179, 224, 226, 121, 29, 62, 47, 199, 67, 60, 240, 85, 175,
168 242, 113, 168, 160, 93, 147, 205, 103, 67, 110, 237, 143, 148, 65, 209, 31,
169 100, 252, 166, 254, 170, 52, 203, 222, 75, 219, 77, 217, 202, 18, 117, 253,
170 92, 29, 205, 115, 53, 255, 251, 150, 164, 72, 146, 6, 101, 161, 127, 50,
171 73, 152, 194, 180, 11, 121, 11, 229, 147, 151, 143, 226, 196, 238, 131, 141,
172 173, 153, 189, 114, 16, 82, 1, 70, 239, 22, 85, 108, 113, 21, 231, 43,
173 6, 228, 54, 94, 200, 186, 190, 143, 117, 156, 22, 30, 9, 64, 25, 8,
174 116, 27, 240, 24, 150, 146, 224, 73, 97, 95, 183, 151, 185, 178, 16, 82,
175 243, 208, 160, 186, 246, 234, 223, 35, 6, 166, 7, 105, 224, 246, 14, 208,
176 1, 70, 244, 221, 238, 235, 86, 81, 136, 40, 99, 104, 89, 22, 194, 40,
177 36, 45, 126, 138, 174, 22, 206, 228, 146, 114, 162, 4, 211, 213, 163, 224,
178 91, 3, 85, 140, 140, 202, 204, 23, 194, 108, 166, 123, 1, 36, 191, 161,
179 38, 228, 65, 249, 235, 26, 156, 83, 68, 199, 239, 109, 1, 203, 198, 25,
180 22, 128, 165, 15, 125, 139, 190, 100, 184, 159, 16, 194, 244, 228, 18, 215,
181 103, 169, 32, 208, 12, 104, 94, 71, 209, 193, 160, 161, 73, 38, 35, 49,
182 202, 29, 193, 120, 100, 98, 219, 44, 27, 224, 222, 226, 105, 153, 17, 252,
183 120, 143, 190, 173, 176, 89, 205, 149, 11, 99, 31, 107, 102, 187, 100, 107,
184 200, 1, 130, 89, 75, 71, 196, 150, 89, 231, 28, 213, 173, 229, 173, 104,
185 156, 123, 227, 163, 65, 230, 167, 67, 242, 143, 224, 224, 161, 249, 205, 140,
186 149, 156, 2, 138, 177, 193, 136, 225, 177, 34, 246, 27, 179, 108, 116, 169,
187 0, 183, 169, 12, 239, 230, 127, 169, 170, 144, 151, 36, 111, 52, 132, 2,
188 15, 237, 209, 133, 254, 241, 184, 232, 116, 11, 221, 210, 64, 96, 18, 30,
189 245, 95, 142, 84, 218, 92, 151, 20, 155, 101, 201, 153, 82, 163, 43, 168,
190 152, 90, 224, 18, 112, 161, 123, 115, 129, 136, 198, 50, 186, 239, 28, 80,
191 91, 20, 73, 6, 150, 187, 56, 54, 200, 67, 26, 62, 0, 229, 42, 210,
192 107, 245, 83, 172, 233, 195, 140, 31, 24, 205, 202, 128, 145, 242, 73, 113,
193 92, 176, 3, 146, 170, 21, 106, 67, 53, 254, 192, 212, 194, 6, 52, 81,
194 163, 236, 63, 95, 164, 91, 60, 20, 9, 201, 74, 143, 55, 110, 76, 61,
195 115, 177, 84, 105, 191, 199, 248, 51, 89, 35, 91, 44, 199, 13, 254, 130,
196 142, 136, 64, 111, 128, 229, 171, 208, 183, 242, 195, 251, 72, 168, 31, 76,
197 89, 102, 122, 181, 57, 110, 17, 196, 31, 136, 185, 196, 118, 100, 188, 100,
198 21, 239, 206, 77, 97, 238, 78, 215, 224, 113, 210, 122, 141, 190, 103, 135,
199 12, 41, 206, 157, 154, 10, 167, 133, 183, 60, 230, 235, 109, 33, 95, 121,
200 34, 206, 1, 149, 114, 4, 252, 42, 17, 93, 191, 144, 133, 226, 101, 215,
201 124, 88, 163, 27, 29, 189, 35, 51, 182, 112, 242, 94, 56, 196, 99, 242,
202 77, 95, 123, 219, 81, 71, 229, 138, 101, 8, 77, 79, 2, 166, 195, 239,
203 148, 221, 188, 20, 170, 26, 215, 139, 42, 171, 153, 219, 107, 191, 90, 185,
204 241, 37, 84, 41, 232, 27, 123, 36, 86, 113, 255, 25, 245, 187, 21, 110,
205 13, 17, 43, 99, 91, 182, 243, 239, 194, 150, 187, 111, 30, 83, 28, 111,
206 249, 159, 212, 187, 184, 177, 12, 234, 107, 211, 32, 118, 132, 10, 145, 19,
207 150, 206, 230, 158, 80, 101, 41, 67, 38, 79, 57, 164, 80, 147, 64, 207,
208 231, 229, 162, 5, 185, 40, 164, 17, 84, 156, 1, 52, 181, 67, 63, 182,
209 25, 68, 55, 167, 230, 125, 225, 234, 125, 79, 102, 35, 54, 2, 12, 145,
210 67, 6, 252, 218, 231, 14, 58, 221, 248, 171, 23, 93, 14, 51, 76, 155,
211 97, 239, 11, 95, 245, 154, 209, 127, 208, 19, 209, 158, 67, 164, 1, 123,
212 230, 90, 236, 148, 77, 210, 240, 27, 154, 16, 146, 19, 107, 106, 141, 94,
213 144, 28, 24, 130, 111, 164, 46, 108, 89, 171, 52, 192, 121, 188, 166, 207,
214 164, 98, 57, 189, 54, 190, 18, 4, 120, 181, 18, 216, 162, 19, 111, 254,
215 71, 171, 194, 79, 73, 122, 9, 115, 63, 61, 88, 117, 234, 203, 250, 167,
216 102, 98, 101, 177, 5, 13, 228, 205, 115, 107, 219, 215, 33, 150, 13, 242,
217 180, 71, 27, 0, 250, 228, 50, 129, 215, 93, 174, 169, 167, 125, 14, 89,
218 130, 195, 127, 158, 250, 249, 142, 213, 5, 1, 250, 31, 122, 171, 62, 142,
219 38, 84, 165, 95, 237, 144, 145, 189, 193, 248, 121, 112, 22, 11, 26, 192,
220 90, 76, 117, 89, 160, 228, 152, 24, 129, 235, 37, 24, 66, 68, 161, 126,
221 147, 44, 172, 137, 134, 203, 162, 152, 255, 161, 135, 6, 31, 72, 69, 9,
222 228, 3, 80, 28, 50, 240, 176, 66, 255, 231, 21, 233, 149, 55, 211, 15,
223 182, 116, 165, 211, 190, 28, 69, 40, 3, 164, 172, 212, 150, 181, 213, 32,
224 174, 216, 8, 243, 29, 152, 124, 7, 111, 140, 53, 157, 158, 233, 175, 60,
225 191, 179, 131, 248, 252, 50, 171, 165, 5, 51, 69, 215, 168, 222, 57, 221,
226 164, 56, 193, 114, 18, 89, 219, 222, 198, 163, 200, 233, 28, 51, 190, 25,
227 206, 243, 63, 51, 44, 10, 57, 71, 252, 230, 161, 141, 79, 31, 30, 150,
228 101, 168, 23, 70, 216, 216, 160, 241, 192, 106, 92, 194, 141, 81, 100, 222,
229 165, 180, 27, 70, 201, 219, 31, 177, 189, 114, 30, 74, 6, 184, 114, 208,
230 189, 246, 83, 107, 229, 153, 69, 66, 201, 253, 183, 5, 134, 156, 200, 132,
231 187, 73, 175, 213, 178, 14, 66, 101, 13, 224, 49, 205, 244, 124, 231, 18,
232 71, 94, 246, 29, 78, 201, 138, 60, 97, 54, 156, 123, 144, 143, 6, 191,
233 113, 140, 251, 203, 125, 196, 135, 169, 197, 34, 215, 77, 138, 218, 63, 56,
234 145, 74, 225, 15, 227, 112, 113, 160, 165, 122, 85, 179, 97, 146, 5, 221,
235 133, 236, 170, 2, 236, 128, 19, 252, 238, 120, 0, 192, 55, 5, 138, 161,
236 222, 148, 189, 130, 53, 250, 36, 153, 248, 210, 197, 167, 236, 128, 191, 37,
237 251, 151, 163, 190, 155, 38, 27, 164, 166, 238, 185, 11, 214, 212, 122, 206,
238 212, 255, 103, 255, 69, 146, 54, 182, 52, 54, 169, 121, 244, 205, 244, 168,
239 96, 163, 220, 75, 194, 10, 133, 204, 105, 10, 228, 139, 62, 39, 254, 131,
240 5, 243, 54, 14, 158, 107, 118, 143, 81, 55, 251, 151, 226, 29, 54, 218,
241 99, 187, 76, 178, 61, 206, 20, 170, 229, 190, 77, 215, 47, 104, 244, 87,
242 101, 82, 50, 41, 255, 56, 6, 226, 22, 153, 19, 72, 227, 63, 224, 79,
243 3, 130, 220, 135, 116, 39, 25, 98, 107, 50, 214, 183, 120, 215, 26, 160,
244 247, 26, 190, 119, 146, 181, 147, 36, 15, 75, 109, 71, 72, 44, 14, 9,
245 61, 201, 200, 222, 53, 246, 57, 69, 63, 108, 133, 140, 150, 33, 233, 46,
246 84, 102, 150, 204, 129, 195, 97, 4, 69, 176, 166, 182, 10, 237, 141, 33,
247 70, 200, 98, 101, 157, 9, 70, 227, 108, 195, 241, 72, 105, 86, 67, 5,
248 242, 199, 149, 33, 43, 105, 206, 122, 20, 13, 28, 158, 131, 47, 202, 70,
249 9, 92, 32, 10, 251, 103, 49, 185, 35, 242, 168, 151, 234, 237, 212, 91,
250 81, 113, 133, 247, 204, 23, 4, 9, 226, 14, 29, 117, 236, 101, 250, 46,
251 161, 149, 131, 98, 141, 228, 72, 18, 164, 252, 56, 7, 160, 217, 183, 125,
252 121, 154, 169, 152, 211, 114, 24, 190, 141, 135, 41, 173, 250, 50, 54, 197,
253 65, 67, 117, 246, 235, 130, 142, 138, 62, 216, 51, 193, 247, 30, 164, 235,
254 209, 157, 138, 4, 147, 6, 253, 187, 34, 124, 1, 143, 60, 95, 168, 72,
255 167, 72, 72, 13, 142, 35, 185, 107, 29, 51, 189, 48, 141, 194, 33, 77,
256 118, 17, 80, 88, 204, 147, 148, 143, 103, 246, 97, 180, 153, 160, 112, 81,
257 196, 2, 222, 148, 126, 240, 27, 61, 128, 155, 184, 106, 89, 36, 136, 230,
258 128, 84, 217, 130, 139, 104, 115, 225, 73, 77, 7, 49, 183, 4, 250, 124,
259 196, 34, 183, 209, 17, 136, 92, 16, 94, 51, 78, 174, 185, 117, 243, 69,
260 11, 214, 132, 72, 86, 212, 4, 193, 253, 125, 45, 148, 97, 87, 6, 101,
261 195, 169, 86, 115, 218, 254, 40, 59, 255, 137, 135, 183, 253, 117, 170, 29,
262 191, 138, 247, 117, 125, 234, 30, 40, 92, 8, 180, 240, 136, 142, 111, 239,
263 66, 225, 196, 151, 93, 130, 126, 255, 195, 34, 252, 17, 101, 179, 120, 76,
264 4, 227, 13, 12, 66, 205, 235, 177, 29, 187, 25, 114, 68, 119, 114, 158,
265 213, 149, 210, 5, 104, 71, 181, 126, 211, 32, 99, 60, 51, 75, 85, 138,
266 138, 68, 115, 81, 37, 17, 101, 36, 117, 236, 182, 77, 98, 113, 198, 195,
267 73, 79, 215, 116, 248, 45, 244, 60, 205, 35, 95, 228, 38, 180, 250, 246,
268 63, 211, 44, 197, 162, 24, 195, 61, 136, 142, 91, 141, 62, 34, 139, 60,
269 142, 238, 67, 148, 54, 132, 41, 115, 241, 219, 192, 121, 9, 45, 75, 183,
270 223, 213, 165, 161, 219, 181, 161, 27, 36, 158, 163, 12, 12, 141, 83, 105,
271 157, 118, 168, 244, 204, 32, 52, 131, 88, 246, 230, 121, 21, 58, 91, 217,
272 138, 27, 251, 174, 150, 51, 240, 201, 30, 66, 19, 148, 185, 122, 53, 15,
273 176, 144, 148, 3, 238, 59, 211, 155, 77, 83, 81, 245, 186, 169, 217, 201,
274 103, 109, 137, 119, 146, 100, 18, 200, 185, 212, 202, 17, 88, 146, 234, 49,
275 190, 19, 139, 43, 1, 48, 21, 64, 235, 89, 191, 74, 89, 85, 16, 64,
276 203, 99, 152, 255, 61, 159, 36, 5, 199, 49, 94, 229, 163, 192, 41, 165,
277 20, 203, 176, 149, 18, 152, 61, 216, 188, 203, 180, 103, 202, 176, 177, 210,
278 255, 26, 254, 70, 43, 214, 95, 208, 73, 148, 124, 19, 215, 68, 123, 10,
279 179, 88, 167, 224, 23, 246, 150, 201, 51, 157, 139, 187, 103, 187, 198, 189,
280 204, 126, 74, 124, 23, 150, 108, 116, 196, 130, 92, 0, 211, 151, 19, 58,
281 249, 50, 186, 54, 102, 164, 122, 228, 71, 163, 163, 117, 78, 234, 197, 70,
282 96, 79, 4, 88, 242, 219, 120, 28, 178, 165, 136, 178, 129, 125, 79, 140,
283 65, 62, 78, 237, 104, 11, 45, 191, 163, 145, 174, 23, 34, 240, 43, 137,
284 102, 189, 140, 137, 4, 222, 55, 6, 84, 194, 51, 164, 107, 234, 39, 216,
285 15, 12, 44, 86, 170, 121, 46, 4, 220, 200, 42, 53, 11, 228, 110, 187,
286 116, 182, 242, 42, 93, 109, 47, 109, 180, 155, 31, 99, 60, 107, 114, 82,
287 196, 146, 45, 224, 90, 205, 34, 200, 42, 173, 113, 37, 26, 154, 74, 18,
288 165, 45, 22, 141, 1, 244, 64, 159, 164, 162, 100, 6, 67, 145, 199, 205,
289 254, 149, 56, 138, 15, 172, 205, 203, 191, 253, 126, 238, 167, 210, 103, 33,
290 143, 85, 161, 150, 99, 12, 207, 238, 110, 157, 190, 52, 249, 121, 139, 188,
291 0, 74, 92, 106, 101, 254, 190, 251, 213, 167, 78, 36, 224, 24, 6, 195,
292 128, 24, 21, 35, 66, 223, 204, 84, 177, 109, 226, 215, 79, 19, 236, 73,
293 74, 244, 146, 57, 228, 254, 223, 158, 42, 83, 29, 181, 14, 147, 60, 4,
294 147, 107, 95, 220, 180, 130, 140, 28, 118, 179, 39, 179, 250, 184, 27, 209,
295 199, 151, 154, 121, 105, 81, 215, 143, 46, 91, 217, 94, 230, 250, 165, 21,
296 240, 234, 93, 0, 176, 20, 127, 181, 36, 127, 49, 36, 79, 233, 229, 57,
297 241, 56, 119, 151, 222, 239, 203, 217, 74, 164, 88, 47, 25, 43, 58, 136,
298 61, 233, 70, 133, 181, 122, 250, 169, 249, 38, 36, 40, 182, 201, 40, 64,
299 218, 145, 63, 209, 126, 248, 65, 23, 142, 147, 3, 241, 200, 87, 132, 93,
300 31, 22, 90, 86, 244, 47, 235, 53, 187, 96, 165, 221, 185, 118, 134, 129,
301 94, 64, 188, 132, 216, 198, 131, 74, 193, 32, 41, 194, 69, 201, 64, 31,
302 6, 235, 95, 181, 207, 187, 60, 250, 24, 233, 127, 4, 5, 190, 242, 168,
303 239, 185, 172, 78, 136, 121, 180, 191, 84, 54, 252, 83, 202, 111, 32, 100,
304 213, 7, 178, 225, 71, 68, 244, 36, 141, 242, 199, 185, 71, 55, 244, 166,
305 113, 41, 66, 177, 55, 251, 179, 251, 194, 2, 54, 20, 100, 241, 82, 213,
306 236, 45, 196, 119, 134, 167, 163, 134, 61, 218, 207, 200, 118, 143, 249, 165,
307 105, 78, 208, 213, 206, 72, 76, 123, 47, 31, 9, 234, 18, 125, 95, 170,
308 199, 123, 139, 158, 244, 171, 6, 202, 240, 214, 94, 46, 60, 109, 185, 175,
309 204, 176, 229, 110, 139, 249, 234, 3, 202, 231, 25, 195, 150, 136, 186, 246,
310 72, 242, 133, 249, 229, 58, 112, 28, 228, 121, 85, 115, 90, 95, 32, 141,
311 135, 217, 12, 187, 50, 229, 66, 103, 204, 0, 93, 86, 245, 59, 173, 28,
312 71, 131, 135, 118, 125, 113, 12, 13, 202, 242, 205, 255, 152, 243, 160, 243,
313 148, 10, 28, 106, 56, 17, 93, 234, 204, 102, 53, 22, 48, 188, 15, 255,
314 14, 3, 117, 190, 211, 116, 55, 77, 205, 171, 228, 120, 244, 1, 169, 51,
315 241, 150, 206, 99, 20, 68, 119, 137, 180, 44, 113, 85, 242, 143, 148, 97,
316 149, 75, 20, 228, 89, 226, 122, 102, 13, 195, 58, 111, 178, 82, 226, 144,
317 82, 237, 27, 94, 244, 29, 102, 32, 162, 80, 228, 66, 203, 107, 211, 171,
318 4, 56, 62, 184, 63, 137, 5, 179, 231, 185, 172, 102, 190, 42, 80, 164,
319 123, 68, 20, 36, 135, 97, 102, 156, 133, 165, 202, 240, 84, 168, 30, 95,
320 57, 3, 182, 224, 10, 84, 60, 88, 191, 0, 126, 190, 240, 202, 141, 89,
321 238, 212, 101, 213, 129, 15, 245, 94, 24, 49, 72, 59, 237, 121, 241, 199,
322 28, 106, 113, 237, 82, 144, 150, 112, 79, 90, 255, 166, 230, 71, 132, 24,
323 6, 82, 143, 150, 194, 236, 253, 46, 158, 143, 5, 31, 243, 156, 4, 19,
324 89, 81, 94, 94, 39, 9, 199, 6, 44, 35, 4, 143, 18, 62, 27, 165,
325 177, 162, 53, 121, 146, 74, 181, 252, 27, 207, 17, 102, 196, 172, 75, 4,
326 17, 215, 20, 96, 9, 42, 199, 99, 206, 94, 78, 121, 37, 11, 152, 125,
327 249, 107, 153, 180, 85, 155, 220, 68, 223, 87, 204, 175, 117, 147, 217, 71,
328 6, 190, 132, 99, 227, 5, 180, 168, 249, 126, 202, 102, 42, 26, 175, 198,
329 185, 211, 206, 154, 60, 24, 183, 24, 203, 46, 21, 176, 194, 116, 116, 210,
330 162, 214, 215, 79, 87, 159, 16, 55, 12, 248, 51, 17, 79, 183, 145, 23,
331 209, 58, 225, 84, 21, 237, 102, 250, 93, 222, 87, 87, 203, 4, 138, 196,
332 6, 28, 143, 45, 68, 77, 211, 180, 47, 198, 5, 170, 166, 221, 107, 202,
333 67, 220, 178, 156, 39, 2, 87, 147, 234, 85, 199, 97, 10, 151, 240, 121,
334 229, 132, 230, 249, 244, 57, 77, 29, 123, 149, 121, 81, 245, 37, 106, 157,
335 39, 185, 31, 175, 102, 187, 37, 149, 27, 215, 151, 155, 94, 160, 180, 59,
336 95, 200, 149, 42, 178, 85, 171, 41, 31, 20, 16, 199, 14, 202, 230, 42,
337 59, 83, 239, 155, 65, 63, 237, 89, 133, 62, 23, 112, 236, 226, 34, 250,
338 134, 14, 234, 2, 212, 41, 135, 189, 114, 60, 147, 49, 19, 193, 169, 157,
339 41, 62, 36, 42, 2, 172, 237, 250, 86, 252, 199, 80, 194, 195, 182, 136,
340 209, 90, 80, 9, 121, 164, 168, 99, 235, 131, 129, 59, 26, 41, 124, 194,
341 110, 143, 183, 126, 91, 50, 168, 211, 43, 177, 95, 196, 94, 206, 214, 173,
342 89, 152, 173, 39, 53, 190, 186, 193, 75, 23, 181, 65, 153, 57, 142, 215,
343 155, 147, 241, 110, 230, 102, 176, 152, 227, 83, 87, 110, 243, 143, 254, 127,
344 254, 117, 117, 173, 106, 80, 127, 231, 39, 220, 178, 44, 95, 30, 60, 222,
345 212, 72, 169, 84, 194, 40, 164, 156, 145, 182, 127, 51, 64, 108, 144, 124,
346 136, 238, 4, 113, 14, 68, 106, 158, 20, 231, 109, 99, 70, 214, 68, 29,
347 240, 154, 95, 206, 188, 136, 180, 41, 220, 228, 198, 82, 51, 118, 65, 20,
348 198, 187, 22, 8, 134, 252, 86, 227, 110, 105, 198, 242, 48, 8, 192, 165,
349 80, 210, 1, 175, 188, 99, 252, 178, 7, 70, 27, 249, 175, 145, 131, 228,
350 86, 229, 81, 93, 203, 194, 226, 110, 250, 134, 235, 195, 170, 107, 131, 185,
351 81, 99, 168, 124, 215, 108, 40, 198, 193, 117, 88, 136, 134, 114, 145, 239,
352 9, 0, 184, 106, 111, 63, 6, 92, 30, 3, 116, 7, 232, 182, 184, 60,
353 32, 161, 183, 167, 163, 185, 114, 43, 77, 134, 29, 164, 135, 3, 155, 255,
354 83, 254, 203, 1, 243, 167, 236, 162, 77, 140, 250, 224, 25, 246, 81, 147,
355 207, 0, 127, 115, 127, 151, 191, 179, 128, 77, 142, 203, 171, 153, 47, 244,
356 165, 235, 20, 64, 36, 99, 201, 190, 83, 244, 125, 112, 49, 26, 95, 125,
357 254, 140, 85, 142, 112, 170, 225, 4, 126, 243, 224, 180, 137, 152, 102, 9,
358 92, 67, 247, 20, 189, 58, 88, 74, 183, 201, 43, 1, 2, 123, 228, 211,
359 79, 91, 20, 64, 111, 238, 60, 76, 207, 91, 90, 130, 169, 238, 254, 208,
360 125, 140, 7, 94, 63, 18, 46, 124, 16, 253, 228, 238, 179, 99, 129, 40,
361 89, 12, 40, 42, 94, 237, 111, 112, 22, 162, 64, 25, 89, 102, 56, 25,
362 245, 128, 221, 86, 146, 138, 242, 67, 166, 114, 204, 38, 89, 77, 127, 64,
363 36, 183, 161, 254, 185, 76, 91, 10, 28, 146, 154, 254, 118, 200, 206, 95,
364 6, 182, 35, 178, 179, 114, 87, 60, 208, 88, 180, 161, 171, 39, 156, 131,
365 2, 83, 124, 11, 223, 57, 190, 18, 79, 245, 198, 11, 55, 131, 197, 28,
366 74, 32, 223, 144, 231, 227, 25, 237, 243, 145, 64, 183, 62, 163, 33, 93,
367 155, 82, 228, 206, 69, 77, 101, 8, 240, 3, 135, 0, 181, 153, 174, 82,
368 29, 129, 40, 83, 235, 83, 98, 105, 235, 210, 121, 239, 78, 240, 217, 144,
369 230, 225, 3, 157, 14, 118, 64, 228, 29, 110, 230, 247, 153, 117, 3, 81,
370 24, 23, 169, 2, 247, 238, 144, 137, 241, 140, 192, 185, 165, 13, 122, 48,
371 180, 254, 54, 128, 134, 247, 87, 42, 219, 166, 7, 248, 91, 39, 226, 245,
372 44, 152, 30, 71, 125, 129, 102, 72, 16, 66, 119, 15, 189, 250, 70, 112,
373 168, 7, 5, 181, 15, 114, 73, 112, 16, 184, 65, 192, 54, 51, 31, 202,
374 38, 11, 170, 149, 37, 107, 44, 241, 30, 35, 23, 176, 99, 82, 230, 60,
375 206, 39, 249, 227, 114, 152, 133, 233, 60, 188, 79, 52, 241, 191, 208, 160,
376 213, 159, 219, 188, 222, 47, 235, 187, 9, 186, 112, 78, 101, 229, 115, 152,
377 216, 196, 88, 228, 189, 226, 214, 40, 163, 155, 193, 238, 224, 72, 64, 199,
378 4, 182, 248, 143, 219, 170, 227, 55, 215, 135, 92, 117, 56, 225, 220, 129,
379 74, 226, 55, 132, 73, 213, 81, 93, 107, 49, 29, 155, 62, 141, 48, 190,
380 242, 221, 95, 61, 179, 165, 213, 49, 125, 245, 106, 35, 24, 57, 103, 140,
381 79, 172, 38, 29, 170, 145, 151, 204, 114, 161, 117, 2, 199, 145, 210, 184,
382 71, 80, 251, 182, 67, 220, 3, 2, 210, 28, 17, 104, 68, 150, 255, 174,
383 34, 206, 245, 97, 173, 8, 92, 160, 144, 149, 54, 57, 114, 145, 215, 115,
384 186, 145, 165, 186, 207, 107, 14, 255, 88, 145, 225, 110, 190, 78, 93, 147,
385 225, 247, 122, 52, 135, 147, 89, 3, 10, 119, 43, 154, 29, 186, 68, 50,
386 125, 152, 205, 242, 113, 106, 80, 68, 21, 45, 147, 212, 5, 1, 27, 39,
387 51, 221, 25, 38, 102, 67, 194, 250, 121, 51, 66, 76, 155, 205, 199, 54,
388 177, 202, 0, 249, 225, 231, 179, 69, 52, 22, 87, 77, 193, 35, 88, 3,
389 238, 62, 12, 159, 221, 203, 230, 122, 92, 71, 26, 218, 41, 218, 75, 21,
390 201, 166, 224, 173, 110, 185, 97, 161, 227, 9, 43, 108, 162, 62, 228, 201,
391 32, 178, 191, 115, 35, 118, 59, 165, 223, 135, 132, 230, 110, 213, 96, 68,
392 190, 237, 213, 146, 85, 179, 242, 155, 122, 217, 7, 105, 70, 123, 10, 5,
393 122, 153, 202, 218, 195, 207, 73, 175, 161, 31, 200, 47, 237, 64, 34, 227,
394 34, 66, 58, 29, 28, 166, 242, 128, 33, 79, 32, 125, 60, 207, 222, 195,
395 180, 137, 78, 177, 132, 249, 147, 38, 64, 247, 181, 81, 96, 155, 167, 113,
396 95, 197, 30, 83, 18, 128, 93, 131, 242, 197, 50, 146, 106, 143, 56, 216,
397 80, 80, 159, 164, 154, 220, 248, 193, 58, 253, 63, 219, 91, 140, 170, 71,
398 152, 8, 69, 37, 138, 179, 223, 54, 98, 229, 181, 107, 50, 174, 6, 20,
399 69, 101, 50, 57, 102, 61, 123, 218, 226, 77, 25, 129, 188, 103, 22, 81,
400 66, 232, 19, 88, 103, 184, 87, 252, 109, 31, 242, 40, 37, 238, 237, 20,
401 232, 170, 115, 36, 83, 127, 65, 208, 85, 56, 192, 120, 116, 153, 200, 116,
402 108, 243, 110, 8, 9, 162, 206, 172, 25, 0, 103, 79, 239, 8, 184, 142,
403 87, 86, 95, 139, 223, 180, 6, 205, 39, 76, 25, 62, 32, 244, 171, 152,
404 146, 48, 224, 20, 23, 219, 250, 115, 159, 131, 14, 91, 5, 27, 26, 60,
405 239, 5, 41, 159, 226, 103, 177, 43, 224, 51, 123, 129, 148, 18, 241, 66,
406 192, 199, 151, 94, 207, 238, 120, 34, 234, 75, 193, 65, 66, 243, 125, 21,
407 57, 113, 143, 44, 49, 153, 168, 129, 102, 21, 17, 101, 182, 217, 216, 17,
408 7, 70, 99, 194, 34, 47, 49, 241, 25, 242, 163, 251, 28, 172, 167, 4,
409 96, 213, 236, 60, 223, 52, 150, 216, 168, 157, 5, 56, 126, 50, 228, 130,
410 166, 54, 196, 85, 86, 162, 154, 82, 84, 34, 228, 235, 157, 230, 47, 77,
411 151, 127, 226, 82, 145, 205, 201, 40, 49, 178, 228, 77, 132, 208, 93, 4,
412 2, 73, 46, 69, 188, 60, 130, 217, 1, 97, 177, 240, 18, 26, 141, 97,
413 5, 170, 82, 56, 218, 83, 3, 29, 228, 13, 179, 232, 154, 50, 152, 40,
414 58, 0, 202, 195, 36, 91, 104, 37, 10, 89, 0, 250, 146, 45, 248, 68,
415 37, 180, 129, 46, 138, 43, 98, 40, 122, 174, 147, 85, 94, 255, 76, 129,
416 245, 135, 198, 206, 144, 189, 190, 207, 253, 191, 104, 163, 141, 116, 1, 192,
417 200, 193, 205, 196, 151, 231, 254, 190, 17, 172, 254, 196, 243, 72, 234, 236,
418 92, 108, 153, 184, 39, 201, 109, 233, 38, 178, 163, 46, 150, 153, 170, 238,
419 84, 196, 155, 171, 31, 3, 186, 55, 87, 100, 179, 61, 163, 119, 82, 75,
420 107, 173, 8, 145, 135, 226, 243, 8, 38, 102, 123, 120, 169, 215, 177, 132,
421 111, 26, 242, 205, 150, 143, 197, 152, 137, 193, 174, 171, 234, 183, 221, 189,
422 40, 212, 191, 137, 47, 153, 85, 76, 59, 255, 16, 51, 186, 105, 224, 14,
423 73, 41, 84, 42, 12, 186, 198, 133, 82, 8, 161, 173, 130, 25, 26, 22,
424 152, 132, 221, 182, 68, 126, 160, 248, 183, 112, 129, 83, 181, 55, 17, 145,
425 18, 220, 143, 17, 49, 18, 15, 191, 104, 40, 67, 139, 127, 106, 56, 65,
426 4, 120, 100, 5, 88, 44, 82, 240, 138, 64, 42, 158, 24, 130, 133, 237,
427 235, 112, 115, 164, 249, 247, 233, 173, 116, 245, 23, 37, 216, 180, 118, 183,
428 58, 246, 254, 103, 93, 55, 36, 213, 76, 134, 122, 116, 164, 15, 11, 115,
429 168, 185, 226, 79, 250, 236, 172, 24, 226, 48, 150, 67, 128, 63, 211, 235,
430 219, 120, 216, 18, 31, 82, 136, 105, 151, 118, 193, 43, 33, 155, 55, 8,
431 17, 3, 211, 110, 115, 27, 122, 3, 195, 97, 1, 227, 22, 124, 213, 59,
432 89, 13, 253, 221, 207, 229, 25, 72, 200, 144, 209, 147, 185, 68, 132, 104,
433 7, 34, 237, 45, 2, 17, 209, 87, 170, 227, 60, 230, 53, 186, 59, 39,
434 254, 57, 191, 201, 59, 202, 119, 144, 163, 255, 78, 199, 9, 59, 129, 64,
435 232, 31, 20, 110, 63, 172, 85, 239, 97, 216, 252, 158, 76, 64, 55, 133,
436 43, 101, 22, 4, 27, 134, 210, 9, 120, 44, 255, 105, 142, 83, 6, 238,
437 61, 226, 118, 111, 217, 234, 153, 48, 9, 193, 133, 172, 20, 121, 210, 40,
438 243, 49, 13, 184, 152, 126, 248, 100, 37, 187, 216, 15, 250, 86, 178, 24,
439 30, 174, 216, 151, 139, 27, 166, 190, 200, 228, 25, 152, 212, 70, 7, 45,
440 141, 54, 143, 106, 206, 49, 170, 195, 61, 24, 81, 20, 116, 147, 95, 49,
441 245, 179, 223, 237, 184, 110, 49, 158, 190, 211, 132, 30, 22, 195, 234, 167,
442 143, 4, 26, 9, 215, 48, 100, 53, 221, 177, 172, 132, 184, 229, 165, 207,
443 213, 192, 26, 58, 211, 227, 65, 148, 198, 5, 248, 169, 32, 121, 24, 164,
444 193, 137, 218, 218, 105, 42, 136, 146, 91, 72, 238, 231, 24, 17, 108, 194,
445 206, 5, 180, 101, 199, 161, 172, 130, 78, 110, 255, 62, 158, 111, 204, 223,
446 33, 183, 43, 10, 93, 253, 249, 193, 149, 89, 21, 51, 198, 186, 91, 142,
447 121, 157, 35, 254, 21, 55, 2, 7, 119, 32, 175, 107, 199, 86, 174, 37,
448 144, 192, 13, 234, 244, 152, 150, 77, 69, 91, 174, 141, 211, 71, 85, 190,
449 231, 124, 80, 80, 137, 195, 5, 196, 21, 239, 110, 92, 99, 158, 247, 229,
450 178, 99, 156, 222, 135, 119, 197, 242, 98, 58, 0, 134, 97, 197, 30, 113,
451 164, 183, 9, 1, 97, 166, 94, 117, 183, 103, 45, 147, 215, 137, 8, 64,
452 9, 149, 66, 130, 166, 94, 72, 48, 181, 156, 233, 167, 116, 59, 10, 117,
453 203, 53, 110, 133, 3, 97, 84, 60, 179, 90, 47, 45, 78, 41, 89, 191,
454 234, 81, 129, 69, 179, 76, 221, 176, 171, 58, 158, 151, 251, 79, 189, 124,
455 159, 40, 189, 229, 126, 168, 24, 141, 209, 215, 105, 170, 166, 181, 113, 36,
456 4, 172, 90, 123, 232, 154, 150, 224, 87, 249, 134, 136, 14, 28, 23, 67,
457 78, 187, 209, 55, 157, 95, 36, 136, 83, 103, 54, 236, 62, 81, 66, 44,
458 85, 120, 219, 178, 62, 126, 203, 193, 229, 146, 25, 187, 254, 141, 147, 185,
459 158, 103, 216, 216, 38, 34, 245, 43, 169, 200, 129, 130, 7, 239, 207, 155,
460 250, 89, 209, 238, 20, 74, 133, 100, 67, 149, 41, 187, 72, 9, 135, 165,
461 140, 14, 90, 51, 241, 216, 7, 176, 238, 254, 84, 53, 231, 87, 12, 51,
462 222, 54, 70, 163, 101, 130, 63, 37, 120, 180, 219, 161, 69, 213, 233, 130,
463 199, 124, 2, 36, 224, 140, 95, 201, 23, 72, 219, 222, 181, 237, 134, 11,
464 103, 94, 246, 251, 215, 218, 228, 90, 36, 54, 237, 49, 204, 13, 194, 221,
465 18, 186, 35, 144, 179, 2, 98, 90, 110, 165, 66, 38, 152, 206, 0, 121,
466 90, 25, 94, 145, 133, 58, 143, 138, 175, 80, 233, 110, 78, 84, 0, 207,
467 87, 78, 27, 243, 160, 231, 241, 83, 173, 163, 191, 205, 184, 216, 232, 36,
468 194, 52, 5, 72, 249, 42, 103, 254, 213, 41, 159, 209, 56, 222, 40, 224,
469 177, 195, 214, 11, 84, 221, 245, 137, 131, 23, 220, 251, 167, 17, 34, 214,
470 41, 102, 226, 223, 79, 53, 119, 84, 17, 219, 19, 80, 90, 132, 19, 176,
471 73, 145, 38, 28, 198, 176, 141, 92, 242, 69, 174, 63, 244, 44, 152, 102,
472 120, 151, 167, 115, 67, 110, 119, 159, 56, 63, 29, 70, 253, 118, 119, 220,
473 181, 71, 193, 167, 77, 178, 236, 187, 193, 236, 147, 231, 209, 56, 168, 202,
474 7, 198, 208, 17, 20, 31, 42, 70, 237, 148, 162, 161, 128, 135, 88, 37,
475 219, 56, 83, 248, 116, 20, 44, 17, 231, 156, 187, 251, 237, 165, 123, 165,
476 181, 166, 212, 99, 132, 26, 122, 240, 223, 130, 235, 248, 239, 11, 161, 32,
477 109, 210, 97, 173, 12, 251, 94, 118, 7, 107, 206, 105, 158, 16, 4, 245,
478 159, 67, 150, 226, 53, 42, 241, 249, 146, 107, 111, 75, 147, 136, 141, 97,
479 49, 101, 233, 168, 197, 72, 95, 138, 162, 103, 154, 162, 192, 78, 41, 102,
480 52, 207, 165, 48, 93, 41, 104, 136, 91, 169, 167, 51, 217, 197, 25, 238,
481 3, 4, 35, 64, 146, 153, 32, 107, 66, 225, 249, 148, 225, 130, 197, 194,
482 34, 100, 235, 200, 204, 39, 230, 37, 103, 219, 139, 8, 232, 63, 95, 154,
483 76, 195, 226, 187, 206, 116, 21, 40, 98, 177, 244, 9, 114, 148, 22, 185,
484 243, 93, 8, 84, 137, 114, 217, 240, 69, 185, 123, 1, 225, 160, 221, 183,
485 81, 159, 31, 66, 221, 201, 197, 113, 137, 181, 249, 211, 211, 226, 62, 12,
486 116, 111, 130, 197, 99, 85, 29, 191, 94, 14, 166, 137, 147, 14, 133, 58,
487 230, 148, 144, 87, 48, 117, 252, 64, 114, 18, 185, 63, 164, 159, 26, 79,
488 188, 242, 126, 223, 213, 245, 195, 144, 19, 68, 175, 73, 15, 90, 45, 245,
489 111, 212, 15, 108, 108, 199, 180, 231, 92, 251, 69, 251, 100, 179, 160, 125,
490 250, 42, 79, 118, 101, 195, 108, 15, 243, 124, 76, 248, 137, 80, 49, 16,
491 233, 89, 247, 188, 102, 212, 82, 111, 184, 67, 70, 110, 79, 241, 15, 157,
492 225, 66, 87, 81, 35, 200, 210, 21, 243, 196, 86, 48, 46, 152, 150, 236,
493 76, 45, 178, 131, 90, 85, 147, 107, 25, 194, 182, 106, 191, 161, 71, 94,
494 211, 172, 93, 128, 17, 188, 240, 127, 4, 18, 124, 199, 122, 163, 140, 228,
495 91, 163, 59, 197, 191, 231, 162, 77, 248, 24, 168, 119, 182, 169, 140, 55,
496 207, 105, 70, 81, 32, 79, 212, 1, 59, 11, 55, 145, 61, 90, 134, 202,
497 49, 105, 117, 158, 91, 86, 139, 55, 90, 171, 167, 237, 141, 1, 184, 49,
498 63, 7, 226, 53, 153, 200, 188, 224, 234, 104, 101, 118, 238, 93, 34, 252,
499 120, 251, 177, 103, 213, 173, 184, 231, 225, 111, 186, 210, 40, 111, 65, 4,
500 60, 124, 221, 67, 201, 210, 65, 90, 74, 36, 39, 88, 233, 64, 172, 179,
501 18, 59, 182, 82, 152, 192, 154, 220, 209, 184, 218, 210, 172, 250, 155, 199,
502 175, 246, 218, 45, 211, 204, 131, 204, 73, 107, 246, 52, 133, 102, 103, 135,
503 5, 46, 175, 63, 204, 92, 108, 126, 126, 194, 208, 178, 166, 198, 191, 240,
504 128, 5, 203, 189, 102, 148, 65, 29, 146, 2, 24, 21, 201, 147, 145, 248,
505 85, 77, 63, 245, 176, 199, 198, 237, 34, 101, 159, 144, 166, 29, 102, 175,
506 121, 78, 75, 196, 204, 80, 156, 236, 198, 232, 117, 112, 135, 61, 63, 63,
507 82, 2, 65, 139, 70, 69, 78, 64, 48, 154, 15, 250, 79, 190, 251, 94,
508 205, 252, 236, 241, 2, 171, 232, 118, 128, 71, 18, 55, 49, 13, 27, 36,
509 149, 220, 149, 150, 55, 200, 192, 151, 47, 218, 134, 205, 93, 7, 206, 44,
510 229, 208, 62, 208, 55, 55, 239, 63, 45, 154, 171, 70, 223, 144, 78, 251,
511 5, 138, 224, 21, 184, 87, 55, 69, 224, 231, 37, 65, 87, 114, 78, 216,
512 41, 49, 143, 233, 182, 214, 84, 20, 20, 156, 17, 12, 173, 172, 80, 151,
513 37, 28, 191, 69, 146, 102, 65, 15, 152, 143, 198, 45, 204, 4, 140, 90,
514 149, 45, 157, 190, 119, 196, 121, 199, 176, 122, 198, 141, 161, 31, 24, 149,
515 96, 231, 70, 122, 160, 19, 100, 75, 112, 141, 18, 175, 109, 98, 19, 110,
516 237, 1, 5, 171, 153, 19, 251, 61, 180, 249, 9, 187, 196, 248, 127, 13,
517 21, 244, 224, 42, 97, 40, 236, 190, 18, 123, 133, 26, 235, 9, 150, 90,
518 21, 189, 189, 101, 226, 190, 82, 18, 45, 3, 172, 187, 72, 74, 244, 211,
519 76, 2, 70, 168, 41, 195, 165, 178, 139, 5, 155, 100, 199, 0, 227, 72,
520 247, 186, 33, 169, 34, 104, 196, 3, 253, 202, 19, 140, 100, 122, 144, 125,
521 201, 202, 194, 245, 180, 27, 10, 207, 180, 31, 25, 152, 243, 143, 51, 90,
522 33, 74, 147, 127, 66, 47, 10, 65, 99, 71, 243, 241, 221, 219, 32, 213,
523 98, 67, 119, 130, 254, 11, 149, 64, 73, 168, 73, 237, 110, 18, 243, 21,
524 177, 53, 109, 2, 242, 89, 136, 34, 36, 135, 12, 12, 125, 251, 104, 137,
525 128, 152, 41, 70, 163, 184, 237, 137, 249, 63, 56, 133, 39, 0, 243, 248,
526 80, 184, 48, 238, 155, 193, 21, 137, 95, 144, 146, 209, 151, 197, 199, 122,
527 60, 48, 250, 1, 79, 162, 58, 78, 225, 184, 199, 35, 186, 225, 19, 68,
528 31, 199, 150, 85, 197, 76, 246, 150, 47, 63, 55, 196, 200, 10, 163, 170,
529 246, 34, 196, 87, 0, 45, 18, 6, 168, 248, 130, 184, 5, 197, 97, 56,
530 128, 254, 236, 32, 10, 182, 198, 139, 255, 43, 41, 159, 119, 253, 81, 248,
531 251, 253, 184, 98, 229, 6, 8, 64, 48, 190, 105, 125, 168, 191, 43, 93,
532 156, 39, 244, 220, 138, 197, 117, 27, 152, 145, 254, 233, 211, 33, 234, 5,
533 72, 247, 49, 221, 35, 188, 210, 20, 231, 90, 255, 37, 30, 126, 209, 65,
534 137, 123, 126, 191, 158, 227, 201, 129, 19, 164, 51, 232, 188, 185, 96, 67,
535 24, 190, 56, 16, 229, 34, 219, 150, 137, 226, 59, 58, 3, 147, 232, 35,
536 99, 207, 101, 173, 217, 18, 139, 1, 94, 123, 4, 232, 147, 243, 13, 193,
537 193, 187, 232, 100, 187, 119, 105, 72, 86, 30, 165, 20, 192, 19, 157, 67,
538 253, 204, 246, 133, 85, 252, 109, 169, 106, 203, 83, 72, 51, 217, 172, 7,
539 212, 104, 170, 166, 21, 181, 11, 14, 145, 33, 175, 235, 169, 66, 203, 78,
540 108, 209, 100, 131, 93, 192, 70, 157, 186, 224, 174, 173, 22, 167, 87, 244,
541 227, 218, 96, 98, 186, 24, 205, 62, 66, 79, 198, 254, 160, 37, 127, 16,
542 95, 171, 47, 34, 80, 43, 26, 111, 65, 207, 29, 139, 135, 69, 13, 110,
543 133, 110, 65, 140, 61, 207, 117, 98, 106, 29, 166, 224, 78, 208, 252, 194,
544 91, 4, 38, 0, 61, 133, 180, 168, 149, 211, 7, 80, 227, 135, 51, 11,
545 249, 228, 26, 198, 244, 2, 47, 226, 93, 147, 222, 125, 200, 205, 166, 154,
546 234, 80, 39, 70, 84, 98, 209, 1, 6, 219, 17, 11, 253, 126, 145, 231,
547 131, 14, 163, 107, 200, 195, 167, 64, 6, 101, 209, 255, 116, 179, 69, 164,
548 133, 23, 78, 98, 105, 182, 236, 34, 246, 58, 81, 183, 100, 30, 44, 187,
549 164, 91, 239, 132, 51, 154, 9, 2, 215, 186, 191, 79, 237, 179, 141, 169,
550 237, 206, 190, 201, 64, 223, 143, 60, 173, 108, 96, 216, 183, 70, 110, 5,
551 59, 230, 206, 194, 40, 211, 109, 146, 1, 102, 194, 212, 90, 214, 43, 111,
552 134, 122, 146, 9, 220, 198, 72, 196, 68, 19, 214, 220, 11, 173, 243, 15,
553 254, 158, 193, 211, 191, 55, 163, 212, 18, 20, 42, 199, 191, 74, 238, 191,
554 113, 173, 125, 203, 48, 1, 119, 32, 224, 8, 178, 179, 0, 67, 153, 62,
555 227, 25, 254, 126, 23, 87, 67, 43, 45, 250, 42, 214, 118, 179, 111, 189,
556 103, 133, 35, 196, 54, 23, 203, 218, 59, 177, 194, 55, 210, 153, 78, 207,
557 145, 157, 229, 119, 218, 173, 20, 104, 251, 48, 204, 245, 166, 251, 123, 82,
558 175, 239, 215, 158, 200, 1, 174, 40, 200, 32, 108, 184, 0, 137, 90, 81,
559 159, 128, 165, 10, 233, 210, 52, 48, 74, 164, 246, 199, 240, 154, 12, 254,
560 70, 37, 106, 44, 85, 123, 151, 119, 153, 170, 48, 144, 241, 114, 64, 115,
561 120, 159, 13, 49, 211, 182, 99, 124, 25, 70, 73, 196, 179, 201, 219, 124,
562 22, 137, 229, 160, 155, 10, 158, 234, 132, 203, 208, 76, 81, 98, 30, 142,
563 154, 68, 158, 92, 107, 252, 4, 22, 218, 2, 167, 190, 152, 141, 251, 137,
564 236, 87, 186, 235, 90, 0, 132, 68, 232, 66, 63, 0, 41, 235, 157, 45,
565 68, 194, 45, 18, 249, 254, 60, 33, 10, 86, 183, 45, 5, 253, 253, 212,
566 44, 94, 203, 41, 53, 146, 101, 148, 123, 198, 92, 14, 181, 87, 49, 229,
567 177, 249, 216, 8, 12, 37, 108, 220, 236, 13, 72, 122, 48, 235, 219, 74,
568 220, 187, 130, 66, 249, 41, 184, 140, 101, 1, 203, 110, 22, 62, 23, 118,
569 199, 32, 191, 162, 140, 187, 157, 80, 144, 59, 112, 238, 32, 101, 238, 47,
570 225, 69, 99, 178, 246, 49, 76, 81, 101, 187, 71, 59, 140, 229, 81, 253,
571 42, 204, 158, 74, 184, 237, 197, 14, 91, 81, 34, 115, 123, 224, 167, 15,
572 112, 84, 225, 104, 103, 208, 236, 183, 185, 142, 175, 147, 237, 188, 159, 125,
573 142, 253, 121, 87, 239, 78, 57, 179, 13, 123, 74, 148, 197, 74, 227, 110,
574 48, 248, 165, 248, 249, 43, 249, 0, 69, 7, 183, 68, 167, 181, 39, 54,
575 144, 39, 212, 36, 40, 171, 48, 106, 76, 50, 201, 111, 254, 86, 240, 39,
576 14, 59, 58, 110, 54, 155, 2, 6, 205, 190, 237, 126, 58, 204, 112, 159,
577 145, 188, 208, 196, 197, 52, 54, 94, 84, 127, 46, 56, 93, 152, 190, 133,
578 120, 166, 75, 52, 6, 112, 112, 71, 119, 143, 218, 19, 242, 174, 48, 246,
579 29, 243, 137, 94, 127, 95, 76, 49, 20, 149, 159, 251, 59, 146, 102, 242,
580 222, 157, 162, 124, 154, 25, 47, 246, 135, 38, 177, 165, 246, 224, 202, 4,
581 177, 255, 203, 245, 58, 172, 164, 33, 155, 179, 56, 41, 202, 39, 145, 176,
582 130, 171, 30, 77, 177, 64, 203, 70, 230, 242, 240, 118, 145, 30, 89, 184,
583 11, 123, 157, 212, 156, 28, 5, 200, 96, 157, 102, 126, 212, 149, 137, 144,
584 169, 39, 211, 159, 193, 254, 65, 201, 154, 165, 37, 129, 14, 242, 28, 37,
585 17, 130, 202, 227, 241, 49, 191, 213, 179, 72, 243, 118, 52, 133, 149, 8,
586 156, 231, 94, 215, 15, 21, 118, 194, 254, 107, 249, 40, 153, 69, 95, 141,
587 97, 37, 224, 82, 146, 71, 35, 26, 88, 127, 137, 247, 242, 243, 135, 113,
588 189, 155, 56, 98, 99, 90, 108, 186, 118, 178, 253, 50, 44, 30, 43, 223,
589 171, 186, 44, 120, 215, 128, 45, 65, 178, 142, 159, 39, 70, 37, 168, 62,
590 127, 219, 111, 40, 239, 134, 47, 114, 69, 45, 87, 15, 234, 100, 9, 90,
591 220, 203, 241, 40, 150, 239, 164, 39, 164, 196, 117, 156, 132, 143, 87, 146,
592 190, 130, 168, 244, 193, 101, 110, 158, 231, 57, 146, 235, 227, 8, 12, 208,
593 209, 203, 35, 38, 242, 45, 43, 118, 252, 201, 244, 130, 42, 18, 133, 66,
594 129, 209, 77, 208, 69, 236, 138, 254, 255, 245, 112, 236, 86, 171, 1, 111,
595 107, 69, 213, 222, 232, 199, 49, 193, 174, 198, 100, 170, 183, 150, 10, 233,
596 28, 210, 219, 123, 233, 126, 105, 75, 222, 231, 13, 137, 242, 177, 41, 137,
597 60, 202, 92, 16, 131, 226, 193, 152, 79, 95, 235, 105, 227, 172, 7, 160,
598 180, 146, 190, 243, 34, 19, 186, 215, 106, 95, 152, 49, 90, 68, 71, 90,
599 222, 240, 72, 16, 153, 69, 114, 193, 215, 175, 165, 224, 198, 154, 70, 104,
600 79, 97, 153, 54, 153, 179, 2, 207, 197, 243, 12, 159, 76, 168, 136, 217,
601 116, 79, 104, 21, 215, 72, 199, 35, 153, 67, 50, 145, 11, 253, 62, 254,
602 121, 1, 8, 147, 39, 20, 94, 155, 80, 41, 135, 135, 45, 85, 61, 140,
603 26, 195, 80, 187, 252, 175, 253, 152, 170, 169, 118, 235, 158, 134, 82, 188,
604 86, 52, 70, 32, 239, 212, 157, 115, 137, 28, 191, 156, 197, 136, 226, 171,
605 17, 231, 181, 79, 246, 232, 178, 242, 233, 113, 210, 230, 35, 201, 213, 28,
606 72, 27, 183, 26, 106, 240, 111, 111, 255, 122, 128, 234, 179, 201, 66, 165,
607 245, 198, 201, 138, 20, 212, 139, 159, 200, 91, 150, 175, 209, 203, 255, 81,
608 30, 27, 83, 216, 119, 36, 48, 112, 237, 229, 175, 204, 149, 192, 183, 184,
609 165, 176, 231, 176, 223, 81, 214, 225, 145, 107, 248, 225, 213, 6, 99, 59,
610 197, 183, 125, 208, 26, 19, 178, 146, 154, 242, 71, 189, 11, 246, 48, 8,
611 7, 28, 105, 208, 20, 13, 236, 77, 244, 218, 101, 217, 125, 199, 153, 77,
612 193, 214, 233, 91, 48, 201, 209, 6, 155, 87, 208, 221, 9, 73, 76, 191,
613 23, 249, 237, 146, 189, 177, 55, 8, 68, 192, 111, 204, 19, 164, 189, 223,
614 83, 220, 156, 79, 12, 82, 178, 149, 102, 94, 120, 229, 198, 77, 136, 244,
615 84, 33, 90, 66, 193, 45, 252, 160, 151, 66, 240, 135, 232, 147, 235, 107,
616 173, 30, 184, 103, 131, 168, 55, 195, 111, 16, 202, 227, 203, 16, 14, 226,
617 104, 220, 126, 121, 163, 5, 26, 253, 35, 196, 13, 90, 196, 32, 157, 28,
618 152, 70, 205, 236, 101, 142, 207, 126, 230, 67, 194, 143, 67, 77, 91, 97,
619 71, 135, 244, 40, 104, 120, 39, 169, 91, 124, 162, 111, 121, 9, 118, 146,
620 215, 112, 120, 157, 22, 198, 241, 196, 32, 176, 60, 244, 197, 37, 210, 215,
621 125, 122, 143, 253, 175, 101, 92, 205, 43, 170, 70, 183, 173, 162, 130, 226,
622 41, 122, 158, 130, 183, 223, 162, 212, 194, 38, 133, 252, 57, 245, 187, 168,
623 165, 204, 119, 8, 249, 174, 10, 206, 251, 55, 212, 118, 212, 74, 226, 227,
624 141, 138, 122, 204, 83, 14, 175, 248, 18, 159, 79, 79, 100, 56, 37, 229,
625 209, 221, 238, 197, 164, 42, 159, 203, 67, 31, 8, 195, 72, 251, 142, 229,
626 60, 24, 254, 97, 124, 219, 201, 255, 232, 60, 77, 19, 220, 239, 10, 158,
627 62, 117, 245, 167, 63, 38, 216, 169, 209, 29, 245, 17, 4, 241, 218, 83,
628 72, 48, 214, 228, 85, 103, 116, 248, 133, 200, 75, 81, 220, 207, 59, 226,
629 102, 50, 238, 138, 44, 120, 162, 220, 105, 5, 120, 11, 153, 98, 144, 4,
630 197, 217, 39, 235, 141, 148, 123, 51, 213, 255, 144, 17, 189, 144, 214, 246,
631 45, 95, 229, 127, 107, 19, 164, 143, 48, 210, 29, 249, 66, 11, 171, 191,
632 73, 99, 161, 114, 190, 80, 31, 215, 67, 16, 187, 246, 47, 110, 157, 33,
633 208, 151, 122, 2, 228, 161, 51, 9, 215, 33, 246, 67, 44, 19, 41, 29,
634 10, 42, 130, 244, 95, 45, 199, 156, 251, 151, 210, 121, 198, 52, 44, 87,
635 214, 126, 214, 93, 242, 201, 31, 44, 250, 139, 78, 59, 95, 116, 45, 100,
636 187, 97, 206, 143, 158, 54, 98, 113, 30, 101, 151, 56, 187, 116, 199, 157,
637 108, 136, 90, 36, 85, 253, 171, 140, 253, 14, 229, 238, 65, 220, 56, 162,
638 194, 138, 46, 251, 90, 92, 121, 202, 202, 98, 133, 78, 229, 87, 31, 158,
639 12, 175, 122, 17, 65, 10, 163, 51, 163, 95, 143, 208, 9, 192, 58, 29,
640 130, 4, 237, 194, 246, 82, 11, 20, 49, 26, 177, 34, 202, 180, 210, 111,
641 234, 151, 37, 27, 225, 7, 205, 35, 242, 176, 98, 232, 60, 89, 99, 33,
642 233, 106, 236, 96, 248, 71, 101, 133, 44, 190, 241, 76, 113, 146, 181, 106,
643 191, 130, 100, 127, 206, 138, 118, 124, 159, 138, 215, 82, 22, 224, 17, 114,
644 127, 109, 203, 60, 33, 67, 126, 145, 25, 199, 88, 97, 150, 40, 68, 185,
645 144, 218, 230, 81, 203, 223, 45, 209, 250, 22, 234, 12, 153, 49, 19, 107,
646 97, 79, 126, 100, 128, 16, 12, 83, 74, 94, 23, 159, 192, 193, 74, 153,
647 246, 12, 157, 248, 106, 34, 35, 64, 99, 184, 137, 91, 26, 154, 127, 155,
648 218, 36, 185, 64, 26, 41, 236, 232, 223, 159, 10, 29, 165, 12, 244, 214,
649 231, 231, 212, 154, 169, 66, 39, 153, 129, 38, 40, 46, 140, 140, 172, 0,
650 251, 41, 244, 153, 56, 180, 67, 22, 40, 33, 9, 111, 79, 11, 215, 49,
651 66, 195, 45, 113, 22, 41, 109, 39, 124, 178, 49, 173, 25, 245, 157, 190,
652 63, 116, 79, 213, 200, 171, 85, 121, 185, 198, 99, 92, 235, 127, 157, 18,
653 45, 201, 187, 193, 140, 79, 33, 65, 24, 11, 175, 105, 233, 47, 242, 36,
654 139, 254, 195, 48, 31, 146, 32, 0, 150, 237, 52, 165, 4, 174, 230, 81,
655 72, 146, 101, 241, 206, 146, 151, 105, 106, 255, 165, 127, 196, 69, 250, 155,
656 248, 177, 254, 232, 30, 109, 169, 33, 76, 112, 72, 214, 254, 113, 170, 234,
657 191, 76, 20, 132, 209, 243, 152, 241, 107, 12, 107, 31, 16, 149, 129, 8,
658 160, 7, 54, 31, 219, 58, 93, 76, 50, 143, 210, 73, 131, 59, 34, 38,
659 88, 9, 217, 193, 206, 147, 54, 244, 11, 240, 180, 243, 123, 68, 124, 81,
660 153, 132, 49, 38, 33, 220, 125, 164, 236, 162, 128, 202, 246, 183, 178, 35,
661 242, 109, 76, 7, 215, 92, 149, 32, 117, 34, 174, 122, 34, 101, 5, 67,
662 79, 24, 48, 75, 194, 8, 12, 98, 113, 36, 13, 79, 16, 94, 249, 110,
663 147, 212, 105, 205, 39, 31, 127, 182, 213, 97, 28, 226, 105, 217, 245, 84,
664 138, 119, 58, 136, 137, 79, 193, 116, 226, 72, 101, 0, 142, 171, 59, 40,
665 203, 158, 100, 187, 137, 8, 9, 125, 233, 16, 241, 192, 135, 4, 72, 132,
666 89, 126, 34, 0, 197, 80, 159, 101, 77, 18, 52, 179, 249, 169, 95, 125,
667 120, 18, 56, 177, 106, 6, 100, 99, 197, 197, 111, 104, 120, 211, 163, 86,
668 224, 106, 157, 48, 112, 84, 232, 171, 172, 220, 107, 136, 118, 170, 105, 16,
669 133, 223, 77, 65, 61, 41, 184, 88, 67, 98, 175, 216, 139, 56, 140, 26,
670 18, 179, 212, 180, 218, 235, 78, 180, 154, 144, 195, 188, 126, 205, 37, 58,
671 203, 223, 248, 156, 87, 139, 176, 77, 244, 117, 77, 148, 85, 187, 142, 119,
672 144, 113, 128, 217, 33, 5, 107, 247, 10, 178, 66, 206, 128, 187, 155, 161,
673 150, 166, 9, 194, 18, 87, 82, 5, 42, 74, 250, 215, 83, 145, 8, 158,
674 182, 156, 82, 161, 19, 87, 92, 77, 14, 7, 208, 23, 8, 13, 59, 57,
675 167, 252, 236, 167, 68, 206, 208, 173, 237, 84, 141, 14, 118, 250, 194, 37,
676 131, 146, 23, 17, 37, 228, 42, 134, 130, 193, 34, 83, 151, 107, 227, 133,
677 189, 157, 96, 73, 176, 115, 205, 111, 159, 89, 182, 43, 180, 27, 36, 57,
678 30, 151, 83, 181, 2, 2, 53, 17, 231, 175, 92, 52, 97, 124, 25, 172,
679 17, 206, 83, 37, 79, 60, 174, 47, 181, 207, 115, 216, 0, 59, 178, 186,
680 222, 154, 48, 10, 203, 237, 168, 102, 67, 97, 12, 80, 164, 196, 36, 102,
681 249, 198, 223, 40, 139, 247, 238, 100, 167, 179, 209, 170, 131, 198, 166, 105,
682 139, 118, 164, 153, 86, 75, 187, 187, 197, 160, 68, 198, 18, 67, 72, 85,
683 158, 8, 198, 13, 38, 133, 227, 47, 6, 64, 250, 136, 178, 128, 108, 116,
684 81, 186, 206, 233, 159, 179, 60, 114, 136, 222, 26, 198, 221, 9, 223, 32,
685 123, 35, 23, 188, 146, 155, 213, 76, 159, 32, 252, 211, 185, 1, 157, 178,
686 135, 227, 248, 103, 157, 213, 189, 148, 107, 135, 236, 254, 236, 112, 211, 216,
687 133, 146, 65, 193, 156, 12, 68, 129, 130, 145, 203, 140, 174, 99, 164, 145,
688 36, 252, 41, 175, 206, 147, 115, 196, 4, 174, 108, 17, 122, 230, 134, 147,
689 226, 163, 123, 125, 195, 16, 122, 59, 157, 243, 224, 222, 35, 75, 158, 165,
690 183, 96, 220, 251, 154, 155, 140, 144, 238, 87, 118, 32, 40, 120, 50, 237,
691 231, 139, 167, 105, 32, 225, 232, 86, 220, 154, 75, 196, 71, 65, 93, 220,
692 61, 119, 51, 177, 246, 221, 145, 96, 123, 19, 25, 236, 101, 58, 161, 73,
693 84, 176, 133, 105, 196, 134, 172, 27, 162, 226, 224, 55, 16, 137, 168, 193,
694 190, 36, 174, 21, 216, 214, 118, 104, 129, 255, 68, 151, 108, 167, 109, 82,
695 66, 183, 246, 156, 70, 234, 152, 129, 21, 156, 244, 102, 179, 68, 253, 171,
696 86, 189, 188, 191, 254, 81, 210, 173, 115, 204, 35, 164, 144, 108, 236, 225,
697 100, 49, 60, 210, 38, 90, 187, 49, 180, 192, 94, 27, 241, 255, 99, 158,
698 7, 237, 83, 24, 236, 15, 188, 123, 165, 197, 98, 230, 62, 46, 224, 117,
699 139, 102, 180, 131, 227, 218, 54, 126, 52, 152, 148, 252, 217, 93, 32, 154,
700 96, 161, 242, 40, 170, 26, 56, 74, 254, 10, 15, 19, 201, 213, 81, 46,
701 158, 233, 148, 163, 223, 116, 67, 170, 168, 17, 52, 115, 222, 60, 24, 251,
702 6, 74, 89, 86, 242, 245, 45, 128, 182, 3, 195, 154, 20, 179, 113, 153,
703 44, 242, 180, 83, 26, 92, 220, 87, 99, 40, 234, 36, 47, 104, 5, 216,
704 15, 75, 28, 250, 13, 84, 199, 155, 151, 61, 58, 214, 142, 173, 215, 72,
705 185, 60, 233, 73, 102, 177, 181, 170, 7, 48, 166, 110, 32, 227, 24, 254,
706 43, 157, 97, 119, 1, 125, 154, 244, 80, 196, 119, 70, 137, 163, 29, 157,
707 21, 96, 40, 77, 149, 43, 89, 115, 78, 66, 67, 78, 130, 122, 141, 108,
708 245, 94, 13, 91, 233, 28, 99, 104, 150, 29, 104, 122, 221, 186, 150, 126,
709 164, 59, 147, 132, 74, 1, 84, 129, 134, 199, 184, 19, 164, 172, 218, 226,
710 69, 96, 187, 3, 219, 55, 20, 36, 43, 220, 131, 166, 139, 173, 189, 7,
711 95, 213, 220, 66, 112, 32, 44, 231, 163, 42, 23, 106, 253, 98, 142, 233,
712 108, 164, 242, 111, 223, 130, 113, 101, 180, 103, 69, 79, 3, 212, 134, 113,
713 14, 252, 41, 247, 87, 188, 147, 176, 171, 218, 249, 176, 197, 157, 118, 13,
714 73, 246, 206, 106, 50, 120, 17, 148, 147, 164, 185, 70, 144, 158, 116, 214,
715 92, 246, 184, 68, 85, 100, 240, 154, 2, 156, 164, 212, 110, 241, 153, 129,
716 7, 222, 203, 157, 48, 94, 103, 89, 110, 197, 102, 10, 76, 234, 22, 12,
717 104, 202, 167, 57, 56, 178, 52, 73, 40, 212, 95, 196, 212, 166, 85, 15,
718 41, 81, 141, 124, 130, 100, 79, 100, 175, 126, 225, 151, 102, 116, 43, 17,
719 190, 116, 116, 79, 51, 59, 243, 149, 11, 121, 3, 234, 103, 221, 234, 201,
720 245, 5, 11, 20, 29, 181, 138, 67, 190, 119, 205, 66, 225, 155, 66, 14,
721 205, 68, 114, 207, 7, 180, 117, 185, 176, 204, 9, 9, 126, 205, 58, 142,
722 28, 136, 232, 53, 149, 237, 169, 44, 185, 78, 143, 99, 153, 143, 187, 157,
723 87, 106, 201, 63, 2, 205, 96, 226, 4, 28, 208, 81, 197, 98, 126, 168,
724 170, 63, 29, 15, 228, 23, 82, 12, 109, 204, 227, 231, 228, 87, 196, 63,
725 117, 68, 31, 206, 19, 177, 225, 66, 233, 244, 58, 185, 208, 188, 153, 253,
726 0, 60, 122, 11, 36, 193, 235, 90, 21, 89, 103, 232, 187, 68, 214, 232,
727 180, 13, 143, 157, 99, 180, 232, 213, 90, 113, 194, 193, 194, 230, 242, 45,
728 135, 51, 201, 80, 171, 128, 144, 150, 184, 193, 211, 22, 74, 186, 176, 237,
729 133, 181, 83, 216, 250, 76, 28, 144, 255, 76, 29, 64, 27, 25, 54, 88,
730 161, 132, 38, 34, 236, 32, 77, 106, 157, 6, 74, 120, 64, 211, 237, 173,
731 164, 29, 22, 107, 236, 9, 67, 136, 70, 87, 153, 52, 245, 162, 52, 213,
732 109, 66, 123, 116, 19, 54, 210, 216, 16, 72, 192, 249, 183, 108, 193, 60,
733 242, 120, 186, 160, 200, 137, 184, 180, 97, 15, 95, 167, 169, 87, 146, 151,
734 83, 244, 178, 11, 114, 231, 59, 246, 175, 29, 229, 95, 166, 199, 244, 74,
735 6, 79, 7, 15, 150, 53, 55, 148, 10, 214, 117, 214, 214, 18, 111, 23,
736 77, 192, 122, 193, 255, 196, 114, 120, 89, 233, 200, 20, 133, 140, 132, 162,
737 136, 45, 10, 216, 110, 169, 138, 221, 15, 114, 80, 66, 207, 159, 89, 31,
738 183, 6, 112, 209, 114, 85, 57, 171, 99, 14, 83, 218, 19, 240, 133, 147,
739 208, 50, 112, 209, 213, 114, 113, 128, 67, 115, 171, 57, 184, 202, 111, 119,
740 128, 8, 204, 133, 137, 179, 216, 142, 74, 57, 86, 75, 192, 237, 228, 108,
741 69, 105, 193, 141, 250, 76, 204, 128, 155, 26, 66, 172, 237, 250, 179, 186,
742 199, 211, 152, 65, 6, 152, 201, 105, 251, 78, 186, 157, 66, 69, 101, 190,
743 17, 230, 96, 168, 156, 29, 7, 59, 250, 141, 145, 141, 234, 100, 149, 39,
744 172, 205, 57, 39, 61, 6, 218, 254, 181, 184, 94, 155, 251, 236, 8, 17,
745 252, 132, 153, 56, 164, 230, 249, 203, 60, 78, 227, 136, 118, 97, 69, 247,
746 170, 83, 230, 125, 104, 85, 239, 19, 220, 15, 148, 251, 249, 196, 138, 38,
747 81, 209, 15, 231, 239, 183, 73, 121, 87, 157, 191, 171, 0, 99, 100, 105,
748 105, 223, 226, 113, 198, 179, 200, 75, 136, 55, 190, 194, 166, 94, 142, 224,
749 39, 193, 163, 138, 3, 203, 220, 34, 118, 216, 34, 142, 111, 227, 241, 205,
750 154, 220, 162, 107, 200, 100, 217, 194, 122, 207, 234, 161, 104, 119, 201, 84,
751 46, 37, 159, 130, 76, 136, 147, 250, 29, 209, 151, 145, 92, 189, 105, 79,
752 101, 117, 4, 209, 229, 171, 22, 168, 11, 210, 160, 120, 158, 218, 39, 129,
753 95, 30, 254, 37, 160, 17, 226, 65, 38, 155, 129, 122, 222, 170, 133, 113,
754 134, 168, 135, 212, 57, 200, 248, 226, 62, 62, 200, 159, 127, 42, 51, 90,
755 49, 28, 134, 6, 226, 227, 159, 163, 142, 179, 173, 151, 168, 47, 106, 150,
756 43, 205, 20, 245, 181, 82, 210, 73, 173, 93, 73, 132, 69, 71, 195, 129,
757 214, 106, 151, 117, 135, 138, 224, 126, 167, 48, 83, 34, 36, 200, 13, 29,
758 239, 80, 11, 224, 146, 30, 165, 79, 231, 209, 119, 168, 138, 217, 100, 202,
759 154, 132, 206, 54, 71, 170, 74, 126, 11, 105, 96, 94, 176, 133, 105, 167,
760 60, 81, 127, 80, 238, 86, 126, 54, 147, 16, 117, 54, 230, 12, 76, 196,
761 8, 177, 11, 61, 177, 113, 30, 40, 18, 26, 18, 55, 37, 74, 94, 243,
762 222, 250, 144, 1, 67, 236, 61, 94, 204, 49, 44, 63, 128, 123, 253, 163,
763 36, 31, 168, 42, 144, 198, 132, 53, 212, 183, 1, 234, 164, 254, 55, 113,
764 19, 28, 184, 210, 113, 4, 95, 146, 92, 164, 152, 120, 176, 218, 237, 134,
765 193, 243, 109, 2, 35, 253, 94, 25, 192, 246, 118, 186, 220, 218, 81, 217,
766 36, 126, 215, 24, 86, 127, 114, 69, 176, 237, 20, 52, 239, 1, 82, 149,
767 90, 227, 216, 108, 176, 100, 41, 68, 64, 97, 13, 13, 10, 132, 104, 252,
768 194, 30, 134, 21, 234, 121, 133, 137, 238, 55, 1, 233, 41, 41, 165, 24,
769 135, 243, 206, 15, 65, 184, 175, 222, 34, 216, 2, 143, 84, 207, 136, 195,
770 96, 7, 114, 230, 244, 158, 69, 30, 62, 183, 157, 58, 157, 248, 35, 163,
771 89, 27, 18, 44, 149, 74, 255, 140, 216, 203, 58, 102, 75, 24, 123, 11,
772 79, 224, 186, 187, 55, 178, 22, 170, 74, 65, 248, 185, 88, 174, 100, 179,
773 42, 147, 165, 94, 149, 106, 1, 14, 49, 135, 110, 240, 201, 36, 145, 118,
774 151, 62, 220, 245, 246, 188, 254, 207, 98, 231, 47, 67, 38, 225, 110, 86,
775 50, 168, 160, 3, 188, 233, 152, 13, 199, 93, 171, 72, 152, 181, 223, 144,
776 105, 206, 64, 198, 51, 125, 118, 168, 107, 110, 42, 87, 126, 137, 100, 52,
777 139, 187, 84, 78, 109, 68, 157, 242, 105, 42, 192, 199, 227, 229, 167, 149,
778 115, 222, 117, 64, 146, 168, 86, 69, 160, 37, 91, 184, 75, 172, 107, 178,
779 205, 113, 109, 197, 143, 177, 69, 241, 131, 191, 103, 112, 145, 194, 234, 152,
780 191, 196, 121, 189, 118, 85, 248, 218, 129, 113, 247, 58, 112, 168, 212, 15,
781 226, 249, 121, 7, 193, 119, 219, 153, 152, 134, 87, 50, 53, 1, 122, 228,
782 133, 70, 218, 235, 176, 226, 181, 228, 247, 171, 237, 208, 93, 219, 210, 204,
783 99, 81, 35, 94, 213, 244, 214, 133, 87, 38, 157, 220, 76, 241, 250, 9,
784 174, 94, 200, 220, 42, 33, 84, 33, 20, 6, 86, 165, 70, 17, 23, 147,
785 58, 74, 222, 31, 41, 174, 132, 226, 158, 2, 97, 151, 118, 118, 199, 237,
786 251, 181, 137, 122, 134, 180, 206, 25, 127, 6, 28, 88, 227, 99, 230, 21,
787 51, 19, 201, 179, 147, 131, 49, 170, 49, 104, 15, 138, 137, 169, 120, 94,
788 205, 80, 43, 230, 239, 124, 165, 225, 36, 228, 209, 108, 204, 135, 125, 157,
789 94, 203, 116, 141, 29, 156, 97, 146, 225, 80, 43, 254, 51, 120, 58, 221,
790 11, 176, 165, 179, 174, 53, 216, 195, 110, 24, 177, 125, 101, 171, 86, 108,
791 182, 14, 91, 146, 246, 127, 249, 192, 221, 143, 211, 90, 9, 12, 130, 246,
792 170, 107, 193, 134, 28, 49, 35, 254, 131, 137, 125, 207, 196, 72, 80, 90,
793 30, 174, 143, 172, 226, 50, 12, 236, 58, 235, 205, 251, 234, 171, 14, 201,
794 232, 131, 230, 212, 162, 143, 189, 179, 44, 100, 224, 49, 15, 155, 170, 228,
795 158, 151, 239, 19, 0, 232, 204, 216, 76, 21, 149, 130, 142, 63, 146, 152,
796 124, 136, 129, 14, 182, 212, 29, 8, 244, 12, 36, 28, 134, 52, 216, 106,
797 229, 107, 150, 8, 223, 247, 117, 229, 251, 216, 158, 228, 97, 240, 148, 228,
798 49, 138, 80, 34, 204, 52, 237, 43, 105, 142, 231, 20, 32, 70, 44, 180,
799 212, 121, 229, 177, 50, 152, 238, 72, 51, 116, 111, 18, 27, 211, 40, 211,
800 97, 226, 18, 155, 21, 216, 166, 165, 37, 234, 56, 121, 165, 159, 197, 87,
801 203, 146, 69, 137, 25, 148, 143, 246, 247, 131, 100, 91, 45, 25, 127, 103,
802 35, 219, 32, 31, 237, 93, 92, 167, 194, 64, 255, 188, 64, 139, 118, 135,
803 212, 56, 216, 167, 102, 36, 220, 109, 21, 147, 92, 78, 8, 65, 213, 179,
804 11, 40, 227, 83, 207, 175, 56, 75, 193, 105, 239, 145, 193, 107, 234, 101,
805 50, 97, 123, 246, 137, 30, 180, 149, 18, 62, 162, 163, 16, 192, 79, 61,
806 222, 25, 35, 181, 13, 10, 90, 25, 216, 76, 219, 117, 100, 244, 159, 172,
807 223, 106, 19, 1, 176, 180, 154, 222, 182, 202, 241, 217, 150, 203, 244, 213,
808 94, 178, 158, 130, 166, 105, 167, 118, 194, 153, 142, 60, 134, 216, 142, 216,
809 254, 2, 7, 54, 26, 197, 25, 138, 74, 39, 101, 107, 168, 110, 24, 58,
810 191, 136, 25, 40, 26, 79, 96, 4, 25, 32, 134, 180, 69, 19, 198, 208,
811 254, 197, 133, 72, 242, 66, 107, 23, 157, 143, 117, 50, 224, 198, 246, 8,
812 19, 49, 213, 159, 9, 201, 160, 158, 200, 59, 145, 119, 110, 58, 190, 132,
813 168, 220, 64, 171, 103, 140, 202, 167, 130, 190, 195, 57, 194, 90, 11, 214,
814 19, 53, 68, 88, 89, 14, 235, 20, 50, 249, 248, 100, 241, 10, 149, 35,
815 93, 4, 84, 62, 75, 41, 223, 81, 56, 18, 14, 101, 224, 40, 118, 53,
816 252, 72, 194, 185, 15, 235, 120, 170, 171, 237, 242, 201, 96, 157, 93, 248,
817 227, 156, 239, 249, 190, 10, 177, 147, 77, 18, 157, 53, 114, 233, 168, 14,
818 28, 80, 50, 89, 248, 127, 156, 98, 193, 111, 202, 38, 248, 60, 243, 240,
819 198, 122, 227, 160, 117, 138, 247, 171, 235, 47, 23, 245, 177, 12, 24, 213,
820 214, 117, 210, 86, 85, 55, 153, 25, 16, 53, 195, 81, 247, 217, 104, 109,
821 170, 63, 79, 169, 38, 150, 42, 167, 206, 230, 51, 109, 62, 202, 205, 164,
822 28, 240, 90, 82, 119, 57, 222, 95, 195, 106, 193, 197, 180, 73, 24, 108,
823 143, 114, 54, 29, 100, 255, 124, 30, 143, 120, 147, 84, 110, 157, 53, 226,
824 104, 117, 65, 60, 187, 173, 94, 59, 132, 121, 145, 188, 220, 105, 4, 48,
825 89, 130, 82, 236, 212, 138, 179, 197, 182, 115, 6, 83, 196, 132, 184, 148,
826 183, 101, 141, 92, 84, 153, 147, 133, 212, 8, 250, 226, 167, 209, 22, 95,
827 44, 103, 243, 27, 111, 105, 128, 110, 88, 110, 190, 229, 81, 26, 219, 229,
828 83, 247, 16, 17, 158, 228, 197, 32, 193, 223, 184, 178, 89, 21, 43, 254,
829 124, 144, 200, 131, 138, 5, 107, 98, 139, 16, 184, 127, 244, 51, 141, 88,
830 178, 132, 205, 239, 123, 14, 34, 2, 244, 238, 154, 230, 146, 87, 15, 20,
831 164, 174, 159, 28, 211, 81, 230, 227, 158, 16, 168, 8, 18, 105, 177, 68,
832 50, 127, 64, 73, 123, 233, 44, 34, 159, 133, 66, 100, 163, 184, 244, 171,
833 240, 235, 230, 160, 137, 131, 200, 230, 189, 136, 137, 240, 110, 253, 0, 250,
834 52, 126, 123, 209, 83, 189, 61, 243, 153, 60, 36, 157, 156, 141, 175, 212,
835 219, 217, 33, 144, 133, 126, 7, 41, 228, 77, 247, 47, 162, 47, 3, 157,
836 32, 219, 149, 138, 51, 181, 65, 242, 51, 76, 185, 51, 5, 188, 216, 33,
837 31, 179, 247, 93, 55, 241, 103, 253, 14, 6, 32, 17, 137, 194, 126, 235,
838 132, 115, 93, 167, 187, 190, 147, 190, 255, 120, 166, 38, 118, 241, 129, 163,
839 37, 39, 155, 142, 37, 147, 134, 221, 136, 99, 114, 152, 250, 143, 53, 104,
840 103, 7, 37, 178, 195, 124, 200, 196, 34, 8, 247, 255, 156, 141, 29, 202,
841 239, 70, 189, 144, 0, 167, 182, 105, 57, 205, 218, 54, 151, 29, 7, 76,
842 7, 84, 20, 246, 185, 216, 93, 21, 96, 25, 115, 176, 38, 180, 177, 224,
843 112, 104, 92, 17, 152, 55, 211, 21, 210, 98, 249, 201, 21, 85, 84, 185,
844 53, 59, 147, 198, 1, 251, 185, 235, 132, 73, 67, 194, 220, 120, 191, 206,
845 73, 53, 158, 237, 102, 41, 23, 133, 14, 81, 47, 204, 9, 142, 124, 180,
846 115, 236, 180, 190, 218, 68, 92, 113, 54, 250, 174, 99, 126, 1, 186, 88,
847 231, 96, 51, 147, 236, 164, 135, 210, 75, 242, 196, 53, 104, 101, 233, 0,
848 129, 173, 53, 118, 42, 188, 139, 187, 251, 143, 37, 222, 198, 168, 194, 103,
849 107, 56, 240, 213, 98, 0, 65, 112, 187, 230, 203, 207, 104, 124, 78, 130,
850 66, 156, 214, 95, 22, 46, 181, 254, 15, 201, 138, 160, 138, 171, 202, 3,
851 169, 187, 110, 58, 43, 218, 62, 112, 49, 206, 186, 161, 31, 140, 183, 84,
852 143, 250, 217, 123, 9, 210, 87, 1, 208, 77, 143, 33, 6, 237, 173, 108,
853 187, 137, 131, 148, 145, 22, 123, 142, 146, 156, 223, 61, 124, 151, 57, 17,
854 88, 139, 56, 8, 26, 205, 163, 193, 72, 201, 209, 220, 215, 97, 172, 73,
855 99, 139, 111, 125, 94, 196, 78, 235, 224, 103, 38, 237, 9, 142, 131, 229,
856 45, 247, 172, 219, 29, 102, 67, 124, 171, 113, 2, 85, 148, 56, 150, 227,
857 45, 147, 200, 171, 42, 244, 128, 106, 2, 47, 245, 211, 163, 240, 41, 86,
858 50, 70, 44, 91, 166, 247, 110, 234, 138, 152, 4, 100, 49, 248, 198, 51,
859 124, 253, 126, 122, 30, 165, 0, 183, 248, 65, 30, 156, 161, 52, 164, 76,
860 44, 198, 99, 20, 24, 97, 93, 232, 104, 51, 200, 0, 153, 67, 93, 172,
861 94, 217, 127, 34, 29, 64, 149, 41, 78, 211, 63, 188, 61, 102, 2, 127,
862 166, 194, 5, 59, 203, 5, 224, 68, 250, 58, 202, 236, 218, 235, 168, 0,
863 205, 82, 53, 99, 51, 144, 0, 140, 45, 46, 213, 207, 17, 221, 47, 85,
864 211, 87, 2, 35, 167, 236, 191, 70, 147, 201, 200, 69, 1, 228, 136, 243,
865 122, 253, 34, 201, 92, 90, 194, 8, 119, 197, 197, 178, 157, 207, 170, 147,
866 232, 5, 200, 241, 6, 27, 120, 242, 232, 163, 26, 234, 230, 50, 214, 194,
867 125, 135, 62, 28, 118, 24, 155, 39, 166, 250, 204, 189, 169, 94, 110, 81,
868 222, 81, 127, 71, 49, 176, 178, 37, 63, 219, 72, 0, 100, 255, 201, 70,
869 177, 208, 81, 101, 177, 31, 130, 187, 196, 119, 161, 217, 207, 216, 59, 106,
870 15, 56, 134, 229, 99, 68, 73, 215, 9, 25, 119, 82, 88, 19, 184, 42,
871 38, 40, 176, 6, 34, 167, 249, 143, 6, 216, 128, 139, 75, 3, 229, 126,
872 121, 187, 68, 219, 187, 99, 154, 175, 240, 86, 75, 40, 133, 146, 223, 105,
873 220, 83, 126, 90, 206, 136, 102, 199, 36, 217, 56, 78, 226, 138, 59, 142,
874 223, 68, 175, 191, 83, 224, 208, 195, 2, 102, 168, 194, 158, 231, 143, 162,
875 83, 92, 93, 238, 12, 231, 142, 41, 106, 66, 178, 68, 83, 155, 24, 102,
876 150, 112, 1, 27, 175, 239, 85, 175, 61, 75, 157, 245, 121, 62, 171, 217,
877 55, 218, 86, 45, 10, 228, 203, 193, 216, 90, 142, 109, 232, 168, 17, 149,
878 145, 169, 199, 134, 194, 110, 104, 66, 130, 215, 179, 205, 6, 183, 93, 47,
879 131, 8, 104, 12, 169, 92, 69, 43, 193, 77, 223, 238, 36, 15, 59, 136,
880 95, 87, 196, 169, 35, 118, 252, 19, 6, 247, 172, 219, 159, 109, 118, 154,
881 10, 199, 227, 164, 36, 85, 27, 37, 52, 149, 85, 107, 134, 203, 39, 112,
882 63, 235, 229, 225, 141, 127, 46, 188, 125, 48, 183, 137, 79, 157, 251, 128,
883 214, 29, 60, 192, 43, 20, 22, 77, 62, 5, 229, 201, 61, 217, 181, 68,
884 161, 232, 220, 189, 206, 170, 48, 199, 251, 10, 93, 153, 112, 35, 81, 174,
885 17, 220, 54, 183, 4, 229, 14, 231, 33, 14, 63, 121, 125, 205, 101, 110,
886 255, 145, 55, 130, 56, 4, 236, 171, 27, 10, 130, 188, 115, 125, 104, 178,
887 41, 100, 48, 200, 231, 41, 156, 32, 125, 22, 167, 209, 221, 201, 63, 165,
888 210, 15, 14, 83, 162, 45, 176, 131, 195, 34, 145, 120, 155, 67, 82, 254,
889 231, 179, 149, 97, 4, 84, 30, 62, 140, 39, 235, 91, 145, 92, 89, 87,
890 96, 144, 96, 223, 153, 0, 28, 117, 238, 168, 40, 11, 140, 197, 162, 172,
891 72, 23, 120, 153, 147, 195, 6, 39, 36, 54, 174, 202, 182, 74, 232, 30,
892 240, 10, 130, 188, 127, 2, 48, 68, 9, 191, 245, 176, 249, 169, 19, 21,
893 154, 45, 249, 114, 137, 223, 190, 252, 87, 36, 85, 242, 96, 21, 234, 18,
894 157, 108, 86, 179, 103, 87, 149, 121, 231, 19, 111, 157, 154, 171, 158, 128,
895 68, 253, 157, 146, 9, 11, 82, 101, 218, 181, 37, 73, 31, 19, 122, 211,
896 104, 102, 172, 244, 119, 94, 235, 143, 241, 113, 24, 211, 132, 227, 169, 254,
897 60, 118, 45, 122, 177, 97, 161, 170, 233, 212, 139, 23, 179, 61, 117, 175,
898 126, 18, 119, 242, 14, 67, 254, 147, 62, 61, 58, 54, 42, 75, 134, 163,
899 134, 56, 20, 222, 1, 199, 168, 38, 142, 114, 14, 84, 106, 218, 24, 245,
900 129, 59, 86, 217, 80, 79, 119, 218, 53, 136, 124, 63, 90, 179, 205, 112,
901 192, 116, 186, 223, 65, 52, 109, 169, 196, 209, 73, 239, 124, 224, 15, 78,
902 134, 164, 65, 189, 58, 22, 166, 57, 64, 104, 185, 101, 43, 231, 254, 145,
903 156, 74, 38, 201, 121, 28, 25, 221, 129, 82, 26, 14, 36, 32, 158, 208,
904 70, 2, 201, 70, 190, 208, 246, 54, 239, 158, 140, 212, 225, 209, 177, 86,
905 31, 32, 45, 93, 207, 255, 12, 176, 154, 217, 193, 166, 61, 241, 53, 80,
906 37, 214, 34, 65, 207, 114, 163, 132, 116, 133, 63, 217, 234, 5, 111, 188,
907 79, 1, 110, 88, 156, 17, 242, 1, 138, 105, 144, 213, 123, 212, 7, 164,
908 200, 175, 161, 145, 108, 104, 174, 202, 202, 35, 153, 88, 138, 105, 58, 143,
909 57, 227, 90, 38, 189, 38, 66, 80, 222, 174, 7, 202, 57, 236, 239, 104,
910 51, 26, 252, 140, 2, 74, 4, 163, 211, 199, 202, 185, 65, 203, 13, 210,
911 69, 228, 115, 31, 100, 143, 189, 100, 228, 209, 107, 55, 72, 150, 255, 144,
912 232, 155, 15, 42, 18, 149, 49, 207, 32, 148, 178, 112, 254, 67, 51, 14,
913 217, 41, 203, 217, 205, 101, 223, 161, 148, 33, 92, 164, 250, 91, 80, 251,
914 104, 157, 225, 172, 18, 245, 5, 54, 30, 8, 254, 109, 3, 202, 215, 179,
915 161, 236, 147, 104, 254, 232, 217, 124, 178, 1, 206, 38, 168, 77, 8, 112,
916 234, 154, 162, 94, 3, 90, 94, 114, 137, 115, 42, 98, 202, 0, 214, 202,
917 65, 93, 52, 179, 123, 74, 86, 10, 171, 211, 171, 44, 226, 56, 13, 163,
918 7, 146, 57, 253, 115, 93, 156, 132, 119, 146, 107, 98, 218, 19, 195, 5,
919 195, 190, 231, 218, 143, 48, 65, 102, 92, 0, 244, 108, 148, 144, 214, 99,
920 128, 208, 85, 124, 5, 75, 38, 131, 93, 38, 21, 170, 24, 105, 170, 135,
921 152, 21, 38, 191, 251, 88, 178, 62, 84, 177, 239, 61, 156, 63, 47, 195,
922 117, 159, 198, 182, 126, 216, 103, 165, 158, 51, 70, 34, 33, 241, 216, 11,
923 50, 152, 157, 100, 30, 66, 147, 88, 38, 17, 251, 19, 182, 71, 65, 199,
924 150, 215, 188, 188, 80, 83, 2, 83, 73, 183, 251, 85, 101, 25, 173, 50,
925 243, 138, 194, 98, 209, 104, 219, 25, 45, 111, 172, 115, 238, 149, 4, 205,
926 123, 112, 218, 192, 247, 102, 191, 30, 225, 230, 36, 188, 219, 220, 19, 213,
927 127, 226, 227, 17, 90, 216, 88, 129, 249, 230, 91, 42, 111, 102, 45, 42,
928 175, 161, 188, 195, 184, 238, 57, 69, 88, 168, 167, 23, 64, 47, 201, 51,
929 79, 65, 117, 254, 146, 100, 8, 30, 209, 42, 138, 132, 209, 241, 66, 249,
930 228, 192, 48, 21, 75, 202, 123, 99, 76, 87, 34, 99, 32, 224, 140, 94,
931 90, 178, 47, 165, 23, 227, 92, 218, 45, 44, 104, 9, 23, 94, 254, 195,
932 16, 12, 105, 135, 48, 225, 7, 139, 148, 199, 157, 139, 243, 71, 254, 15,
933 64, 143, 140, 3, 221, 218, 117, 118, 34, 177, 156, 50, 220, 99, 219, 4,
934 247, 244, 16, 100, 51, 73, 85, 181, 24, 127, 102, 173, 238, 205, 143, 68,
935 63, 44, 197, 106, 165, 150, 11, 244, 198, 36, 101, 10, 79, 207, 183, 214,
936 228, 226, 226, 235, 77, 11, 175, 80, 90, 197, 35, 99, 7, 121, 208, 236,
937 141, 171, 176, 158, 219, 162, 166, 168, 147, 2, 131, 180, 57, 229, 106, 63,
938 194, 250, 21, 63, 152, 16, 109, 20, 208, 227, 225, 10, 22, 2, 223, 128,
939 89, 100, 47, 101, 165, 0, 147, 198, 47, 109, 94, 113, 183, 101, 113, 248,
940 79, 21, 26, 141, 176, 52, 118, 71, 143, 174, 194, 248, 199, 194, 245, 105,
941 112, 92, 180, 22, 184, 218, 78, 192, 41, 17, 171, 143, 203, 2, 81, 178,
942 177, 138, 101, 113, 190, 77, 70, 73, 85, 228, 194, 2, 70, 191, 54, 43,
943 188, 233, 27, 135, 140, 127, 10, 59, 38, 86, 226, 127, 166, 132, 69, 21,
944 200, 107, 33, 89, 24, 152, 88, 90, 75, 144, 236, 44, 10, 121, 139, 169,
945 113, 127, 104, 227, 164, 145, 69, 196, 233, 237, 127, 132, 204, 244, 178, 247,
946 191, 207, 63, 135, 214, 135, 213, 151, 44, 43, 190, 32, 241, 221, 118, 81,
947 145, 43, 29, 244, 239, 78, 245, 115, 229, 178, 255, 147, 16, 149, 255, 154,
948 217, 226, 234, 99, 247, 146, 209, 42, 9, 74, 220, 199, 178, 165, 246, 188,
949 22, 51, 136, 38, 63, 125, 45, 108, 190, 111, 72, 248, 57, 16, 107, 120,
950 245, 158, 215, 136, 9, 25, 61, 162, 148, 109, 112, 193, 56, 81, 121, 143,
951 208, 225, 20, 130, 245, 12, 81, 156, 189, 102, 23, 51, 135, 76, 205, 59,
952 197, 152, 35, 80, 127, 168, 223, 48, 20, 104, 57, 69, 132, 53, 72, 220,
953 161, 178, 219, 33, 37, 245, 58, 199, 17, 246, 39, 2, 84, 251, 20, 62,
954 21, 56, 209, 143, 149, 24, 68, 59, 17, 240, 215, 95, 195, 188, 231, 97,
955 41, 32, 98, 57, 107, 172, 90, 159, 132, 150, 226, 75, 151, 144, 12, 111,
956 6, 253, 112, 213, 28, 179, 232, 233, 73, 139, 84, 232, 204, 0, 148, 77,
957 48, 183, 37, 213, 67, 195, 211, 206, 12, 110, 212, 180, 201, 229, 77, 7,
958 48, 221, 44, 102, 23, 168, 145, 200, 77, 103, 7, 173, 247, 84, 110, 123,
959 23, 5, 145, 154, 124, 95, 103, 89, 78, 136, 74, 47, 136, 86, 135, 250,
960 60, 228, 64, 78, 228, 172, 111, 204, 89, 144, 119, 8, 248, 81, 70, 113,
961 89, 113, 50, 70, 124, 182, 58, 179, 77, 197, 160, 136, 41, 195, 19, 163,
962 222, 23, 34, 70, 203, 156, 137, 209, 146, 213, 112, 210, 203, 138, 236, 36,
963 24, 57, 106, 75, 115, 112, 43, 229, 239, 154, 133, 160, 211, 36, 241, 229,
964 94, 110, 224, 182, 162, 85, 189, 20, 125, 9, 26, 137, 185, 177, 14, 138,
965 5, 225, 132, 174, 244, 209, 187, 92, 140, 29, 158, 111, 150, 8, 32, 99,
966 99, 142, 213, 19, 101, 164, 64, 190, 61, 219, 198, 118, 246, 217, 110, 173,
967 248, 24, 100, 216, 190, 118, 198, 209, 64, 238, 205, 176, 46, 116, 131, 103,
968 243, 148, 123, 69, 136, 144, 46, 112, 112, 162, 219, 21, 205, 136, 193, 152,
969 96, 134, 16, 22, 146, 190, 194, 19, 119, 47, 44, 67, 131, 166, 109, 215,
970 159, 90, 88, 212, 11, 71, 235, 55, 31, 4, 113, 172, 187, 169, 10, 144,
971 169, 108, 79, 145, 7, 29, 24, 221, 230, 28, 113, 32, 190, 160, 67, 40,
972 43, 107, 222, 221, 175, 180, 200, 217, 15, 128, 253, 206, 203, 106, 167, 163,
973 89, 29, 28, 247, 240, 14, 121, 133, 218, 154, 167, 77, 98, 149, 151, 145,
974 4, 78, 232, 135, 195, 121, 157, 216, 178, 211, 243, 201, 71, 220, 150, 119,
975 74, 71, 110, 200, 234, 100, 105, 248, 47, 25, 35, 1, 241, 166, 6, 88,
976 41, 246, 176, 181, 21, 75, 150, 20, 227, 19, 64, 226, 209, 194, 121, 174,
977 240, 219, 133, 253, 161, 146, 230, 69, 122, 42, 165, 82, 78, 45, 185, 61,
978 12, 14, 148, 13, 119, 155, 157, 28, 90, 226, 119, 9, 201, 199, 64, 93,
979 120, 115, 138, 156, 235, 123, 52, 111, 149, 48, 73, 181, 204, 181, 10, 157,
980 16, 55, 100, 243, 10, 29, 159, 139, 88, 16, 1, 31, 201, 242, 2, 237,
981 186, 181, 217, 139, 102, 205, 119, 197, 201, 221, 108, 205, 171, 54, 109, 31,
982 76, 199, 28, 160, 214, 14, 201, 25, 211, 189, 144, 44, 69, 70, 205, 79,
983 150, 149, 108, 23, 8, 171, 60, 18, 127, 161, 41, 71, 239, 168, 89, 140,
984 49, 149, 157, 109, 232, 141, 227, 239, 247, 114, 174, 129, 19, 252, 130, 74,
985 202, 224, 73, 122, 246, 47, 147, 8, 37, 60, 253, 101, 11, 171, 160, 39,
986 92, 180, 183, 40, 254, 233, 117, 200, 139, 37, 140, 28, 35, 8, 10, 40,
987 167, 247, 248, 84, 215, 58, 170, 2, 7, 1, 69, 214, 10, 7, 233, 209,
988 181, 212, 34, 68, 46, 141, 198, 137, 248, 45, 130, 97, 123, 104, 141, 17,
989 126, 7, 199, 55, 194, 160, 69, 39, 13, 70, 41, 63, 205, 99, 1, 69,
990 46, 92, 77, 56, 20, 247, 224, 226, 60, 153, 81, 180, 91, 159, 156, 27,
991 119, 114, 126, 210, 26, 123, 165, 204, 237, 81, 75, 130, 45, 60, 0, 155,
992 11, 125, 27, 202, 35, 230, 101, 164, 86, 117, 226, 23, 171, 253, 222, 223,
993 38, 104, 224, 124, 92, 251, 110, 145, 247, 198, 158, 25, 172, 84, 49, 87,
994 1, 168, 95, 124, 146, 5, 46, 179, 198, 235, 69, 200, 63, 212, 59, 110,
995 52, 195, 54, 71, 169, 234, 189, 58, 180, 149, 194, 10, 118, 99, 66, 66,
996 123, 192, 248, 51, 237, 129, 10, 143, 94, 55, 135, 247, 56, 163, 40, 139,
997 150, 192, 142, 64, 169, 90, 42, 116, 228, 62, 67, 130, 212, 212, 23, 210,
998 182, 95, 109, 224, 185, 255, 156, 102, 184, 171, 42, 98, 217, 218, 27, 80,
999 171, 125, 49, 233, 16, 238, 42, 102, 61, 95, 180, 49, 192, 67, 112, 143,
1000 106, 145, 185, 239, 180, 181, 120, 24, 127, 215, 233, 123, 235, 104, 228, 248,
1001 223, 90, 211, 211, 76, 179, 198, 253, 220, 171, 247, 171, 11, 237, 17, 249,
1002 81, 122, 111, 255, 213, 120, 167, 192, 149, 102, 7, 204, 86, 107, 156, 83,
1003 174, 18, 237, 143, 85, 76, 245, 189, 86, 90, 118, 69, 100, 140, 121, 17,
1004 255, 17, 209, 144, 90, 3, 191, 201, 134, 108, 0, 196, 133, 153, 39, 248,
1005 138, 215, 73, 18, 21, 140, 172, 178, 154, 194, 170, 45, 112, 113, 213, 36,
1006 155, 0, 30, 213, 186, 39, 6, 241, 92, 111, 139, 52, 84, 58, 218, 187,
1007 60, 123, 113, 190, 185, 89, 242, 248, 221, 238, 173, 145, 214, 237, 133, 101,
1008 6, 143, 188, 116, 13, 189, 205, 203, 147, 140, 215, 175, 38, 99, 77, 54,
1009 98, 146, 54, 101, 40, 206, 175, 26, 195, 33, 63, 20, 210, 96, 227, 125,
1010 108, 230, 179, 123, 81, 135, 183, 132, 216, 56, 223, 197, 141, 158, 114, 228,
1011 67, 172, 95, 76, 69, 212, 188, 244, 12, 16, 158, 119, 106, 44, 39, 36,
1012 38, 164, 173, 182, 172, 210, 176, 19, 125, 6, 36, 138, 77, 65, 219, 30,
1013 45, 167, 21, 125, 49, 69, 173, 23, 242, 246, 25, 155, 194, 161, 140, 125,
1014 97, 153, 68, 120, 114, 23, 243, 242, 192, 129, 68, 88, 43, 161, 33, 152,
1015 130, 232, 179, 70, 156, 219, 198, 1, 135, 3, 178, 49, 92, 30, 125, 185,
1016 39, 185, 69, 143, 30, 180, 113, 109, 233, 156, 101, 82, 239, 142, 58, 234,
1017 151, 67, 2, 140, 198, 7, 180, 167, 33, 168, 131, 213, 157, 139, 43, 208,
1018 27, 217, 245, 115, 0, 59, 155, 69, 236, 209, 101, 139, 211, 247, 2, 41,
1019 113, 222, 7, 2, 109, 61, 232, 215, 145, 18, 202, 158, 187, 136, 54, 190,
1020 169, 13, 59, 204, 117, 37, 160, 6, 121, 200, 9, 189, 31, 0, 251, 78,
1021 223, 43, 122, 5, 42, 24, 74, 247, 241, 68, 42, 49, 28, 153, 3, 40,
1022 166, 47, 55, 83, 186, 236, 69, 132, 91, 115, 132, 26, 214, 160, 51, 161,
1023 232, 147, 172, 175, 144, 53, 58, 241, 1, 245, 53, 126, 211, 121, 98, 228,
1024 65, 166, 9, 186, 93, 111, 249, 87, 109, 85, 218, 177, 160, 225, 99, 131,
1025 167, 173, 36, 10, 121, 121, 98, 249, 99, 68, 128, 159, 217, 207, 65, 52,
1026 247, 53, 58, 135, 11, 76, 238, 101, 162, 166, 100, 126, 136, 157, 43, 172,
1027 186, 157, 138, 2, 132, 141, 165, 152, 92, 234, 3, 92, 81, 111, 83, 239,
1028 234, 204, 152, 240, 74, 198, 42, 56, 131, 104, 96, 83, 207, 109, 30, 185,
1029 45, 242, 2, 155, 47, 18, 111, 119, 57, 239, 7, 88, 45, 86, 239, 10,
1030 178, 146, 58, 248, 96, 166, 234, 253, 202, 224, 111, 120, 216, 70, 205, 29,
1031 154, 232, 216, 165, 222, 76, 153, 46, 5, 143, 71, 197, 175, 198, 127, 231,
1032 119, 110, 47, 128, 61, 134, 41, 115, 101, 3, 35, 127, 201, 12, 152, 1,
1033 163, 41, 91, 233, 10, 230, 150, 44, 140, 234, 164, 184, 214, 218, 114, 23,
1034 221, 163, 57, 2, 5, 147, 66, 223, 90, 238, 136, 95, 138, 116, 27, 91,
1035 223, 52, 243, 246, 183, 215, 166, 170, 169, 8, 140, 91, 173, 160, 160, 105,
1036 69, 241, 31, 33, 33, 148, 215, 67, 130, 181, 1, 114, 104, 206, 192, 195,
1037 247, 229, 99, 84, 29, 2, 132, 146, 191, 243, 37, 36, 46, 176, 164, 68,
1038 84, 121, 159, 6, 160, 195, 170, 43, 128, 130, 165, 44, 157, 83, 173, 182,
1039 93, 90, 202, 227, 133, 140, 39, 203, 202, 2, 49, 96, 178, 190, 147, 15,
1040 99, 71, 216, 166, 97, 130, 87, 4, 149, 23, 107, 246, 216, 213, 222, 64,
1041 41, 215, 37, 211, 21, 53, 90, 130, 165, 181, 188, 87, 70, 8, 53, 114,
1042 227, 18, 192, 19, 200, 195, 83, 228, 1, 171, 202, 229, 92, 92, 227, 48,
1043 251, 31, 198, 59, 162, 119, 9, 75, 115, 30, 127, 8, 89, 99, 249, 86,
1044 152, 198, 53, 207, 82, 251, 68, 82, 247, 21, 214, 18, 246, 118, 81, 94,
1045 240, 34, 174, 233, 205, 204, 71, 0, 254, 24, 178, 166, 248, 12, 70, 187,
1046 163, 168, 95, 23, 108, 156, 210, 244, 198, 216, 54, 32, 83, 158, 121, 26,
1047 116, 252, 122, 73, 188, 134, 154, 180, 229, 139, 102, 2, 8, 171, 201, 5,
1048 187, 57, 35, 254, 35, 19, 161, 16, 88, 215, 158, 148, 249, 201, 65, 177,
1049 144, 69, 138, 161, 220, 255, 190, 223, 43, 181, 11, 158, 103, 193, 14, 21,
1050 49, 16, 40, 223, 155, 12, 164, 23, 31, 15, 20, 238, 131, 85, 181, 80,
1051 149, 128, 196, 123, 155, 236, 9, 94, 252, 182, 54, 62, 215, 115, 115, 224,
1052 242, 141, 137, 238, 115, 101, 107, 65, 202, 79, 79, 27, 239, 29, 154, 19,
1053 18, 4, 185, 144, 191, 107, 92, 29, 38, 248, 142, 81, 109, 64, 161, 23,
1054 73, 93, 31, 114, 51, 81, 98, 209, 69, 27, 43, 22, 4, 168, 88, 60,
1055 149, 89, 100, 82, 122, 95, 21, 38, 97, 185, 87, 66, 82, 16, 242, 109,
1056 100, 94, 164, 6, 73, 130, 76, 137, 218, 226, 166, 35, 21, 156, 72, 253,
1057 148, 228, 142, 134, 41, 145, 15, 144, 215, 187, 120, 239, 195, 203, 44, 250,
1058 46, 72, 181, 43, 255, 81, 247, 100, 195, 248, 208, 115, 141, 32, 190, 131,
1059 77, 230, 220, 54, 197, 60, 22, 115, 177, 116, 250, 0, 60, 144, 128, 68,
1060 245, 231, 199, 216, 17, 216, 227, 120, 221, 68, 233, 236, 202, 121, 189, 237,
1061 149, 60, 244, 130, 250, 169, 70, 101, 147, 8, 49, 248, 61, 207, 202, 148,
1062 228, 87, 234, 117, 238, 52, 92, 118, 148, 203, 206, 175, 75, 64, 215, 57,
1063 70, 196, 52, 62, 29, 116, 241, 185, 96, 131, 201, 219, 16, 3, 188, 159,
1064 129, 134, 11, 138, 13, 3, 72, 193, 183, 236, 91, 171, 161, 52, 166, 23,
1065 254, 118, 238, 180, 55, 215, 165, 163, 154, 202, 27, 61, 150, 31, 12, 1,
1066 249, 0, 12, 29, 132, 213, 168, 105, 53, 112, 54, 2, 236, 131, 230, 3,
1067 211, 69, 243, 233, 173, 145, 105, 27, 18, 252, 224, 5, 46, 18, 233, 96,
1068 237, 143, 52, 67, 158, 30, 242, 151, 98, 148, 208, 60, 143, 14, 245, 250,
1069 185, 151, 111, 147, 145, 197, 165, 233, 18, 178, 240, 83, 228, 213, 237, 58,
1070 20, 152, 249, 241, 250, 204, 15, 167, 97, 242, 6, 228, 117, 133, 2, 199,
1071 220, 212, 239, 206, 104, 231, 145, 33, 17, 150, 223, 126, 173, 223, 148, 21,
1072 228, 41, 63, 37, 19, 102, 73, 95, 196, 40, 151, 2, 19, 239, 182, 22,
1073 178, 165, 242, 159, 208, 226, 72, 179, 201, 109, 157, 18, 230, 130, 221, 89,
1074 173, 242, 170, 11, 146, 20, 135, 112, 2, 202, 30, 25, 106, 151, 52, 223,
1075 1, 3, 18, 151, 74, 113, 49, 186, 112, 160, 121, 38, 233, 155, 188, 237,
1076 251, 178, 8, 200, 120, 134, 152, 22, 232, 250, 219, 237, 157, 23, 134, 158,
1077 122, 202, 120, 89, 248, 68, 46, 184, 180, 93, 84, 85, 177, 236, 62, 50,
1078 103, 62, 81, 105, 33, 15, 97, 203, 192, 132, 219, 70, 203, 104, 162, 98,
1079 179, 224, 44, 101, 221, 84, 176, 97, 77, 84, 45, 255, 227, 80, 107, 45,
1080 70, 106, 68, 206, 134, 182, 205, 255, 235, 44, 131, 81, 126, 142, 30, 130,
1081 87, 133, 227, 15, 200, 194, 5, 230, 230, 169, 65, 116, 104, 193, 196, 214,
1082 18, 199, 56, 114, 5, 7, 189, 158, 32, 119, 53, 93, 169, 172, 141, 223,
1083 71, 194, 204, 221, 237, 118, 16, 198, 169, 10, 38, 156, 152, 76, 185, 73,
1084 15, 227, 118, 57, 149, 160, 14, 158, 18, 139, 117, 249, 142, 12, 175, 252,
1085 9, 202, 65, 196, 23, 211, 174, 169, 85, 244, 154, 239, 28, 199, 196, 171,
1086 241, 27, 140, 222, 54, 25, 229, 69, 102, 134, 125, 235, 246, 156, 41, 75,
1087 212, 225, 169, 207, 88, 246, 136, 176, 27, 40, 205, 228, 239, 24, 217, 42,
1088 212, 63, 187, 75, 60, 197, 97, 245, 3, 35, 243, 128, 36, 129, 145, 31,
1089 27, 193, 20, 122, 116, 143, 130, 159, 80, 203, 253, 233, 66, 118, 92, 177,
1090 83, 55, 141, 189, 115, 240, 125, 107, 8, 221, 237, 171, 24, 183, 220, 174,
1091 149, 51, 81, 221, 187, 233, 21, 116, 37, 88, 123, 20, 208, 201, 141, 155,
1092 136, 148, 64, 14, 102, 204, 248, 173, 249, 61, 75, 253, 199, 46, 192, 138,
1093 79, 83, 161, 127, 235, 140, 173, 158, 127, 232, 77, 17, 45, 207, 154, 51,
1094 79, 57, 184, 22, 220, 225, 61, 233, 188, 119, 221, 254, 87, 105, 151, 29,
1095 156, 162, 18, 202, 244, 36, 105, 24, 240, 195, 198, 39, 31, 155, 135, 62,
1096 220, 180, 53, 70, 121, 254, 234, 194, 79, 177, 181, 75, 23, 20, 217, 209,
1097 107, 100, 175, 83, 25, 212, 62, 11, 108, 33, 144, 17, 150, 176, 225, 86,
1098 54, 190, 8, 82, 150, 219, 80, 72, 75, 100, 197, 72, 95, 174, 189, 158,
1099 109, 146, 103, 67, 101, 165, 191, 178, 148, 32, 173, 147, 195, 145, 27, 119,
1100 126, 46, 186, 120, 226, 41, 209, 51, 171, 29, 4, 244, 184, 209, 92, 159,
1101 221, 122, 163, 30, 246, 68, 8, 190, 146, 143, 159, 116, 211, 83, 247, 90,
1102 241, 193, 10, 58, 250, 60, 69, 182, 204, 181, 207, 107, 37, 104, 150, 14,
1103 69, 55, 20, 7, 158, 96, 202, 248, 68, 220, 209, 132, 133, 164, 58, 175,
1104 103, 166, 1, 174, 0, 32, 182, 13, 199, 83, 48, 148, 52, 198, 19, 135,
1105 58, 46, 109, 164, 49, 199, 26, 109, 132, 19, 46, 118, 59, 27, 202, 73,
1106 4, 1, 22, 183, 163, 247, 45, 96, 206, 43, 239, 186, 131, 5, 61, 198,
1107 46, 99, 31, 89, 194, 241, 207, 170, 80, 250, 72, 225, 89, 154, 151, 165,
1108 171, 42, 59, 58, 68, 73, 178, 88, 153, 111, 247, 233, 19, 130, 51, 194,
1109 18, 142, 129, 52, 252, 167, 183, 238, 99, 198, 85, 134, 20, 114, 94, 90,
1110 7, 223, 147, 178, 135, 156, 216, 69, 14, 42, 181, 232, 203, 63, 239, 213,
1111 42, 225, 189, 223, 15, 238, 219, 62, 218, 15, 210, 141, 184, 226, 11, 228,
1112 9, 40, 37, 118, 26, 194, 213, 220, 99, 247, 7, 137, 187, 61, 64, 56,
1113 86, 169, 143, 224, 135, 166, 4, 28, 55, 87, 216, 45, 56, 39, 37, 181,
1114 234, 38, 4, 241, 184, 43, 134, 108, 245, 247, 230, 99, 162, 95, 214, 92,
1115 191, 83, 38, 152, 241, 38, 33, 32, 38, 92, 222, 228, 138, 11, 143, 135,
1116 83, 181, 140, 99, 9, 252, 123, 215, 212, 81, 108, 71, 2, 159, 246, 82,
1117 118, 186, 48, 69, 212, 147, 218, 61, 183, 170, 130, 233, 227, 145, 101, 156,
1118 20, 106, 128, 214, 238, 12, 163, 59, 152, 250, 112, 173, 42, 5, 1, 68,
1119 35, 52, 13, 198, 121, 11, 117, 16, 126, 143, 54, 184, 205, 44, 238, 47,
1120 218, 75, 112, 228, 183, 55, 22, 189, 35, 146, 27, 44, 229, 190, 241, 110,
1121 42, 152, 12, 141, 131, 183, 84, 31, 40, 185, 108, 176, 173, 247, 217, 214,
1122 155, 108, 176, 152, 201, 201, 185, 7, 227, 187, 87, 71, 45, 98, 224, 159,
1123 125, 230, 132, 19, 233, 98, 174, 93, 80, 245, 32, 94, 253, 35, 150, 68,
1124 176, 83, 50, 127, 196, 149, 176, 191, 136, 194, 84, 228, 106, 238, 47, 206,
1125 110, 204, 9, 116, 136, 230, 249, 90, 215, 160, 51, 151, 61, 92, 187, 82,
1126 129, 101, 75, 238, 22, 166, 132, 86, 183, 113, 149, 215, 39, 242, 214, 148,
1127 71, 168, 236, 20, 105, 249, 219, 23, 101, 63, 92, 173, 40, 126, 253, 145,
1128 161, 9, 72, 60, 215, 59, 155, 228, 255, 201, 193, 60, 129, 51, 29, 207,
1129 237, 43, 145, 161, 41, 115, 98, 19, 138, 253, 66, 232, 233, 186, 79, 114,
1130 1, 164, 184, 14, 61, 151, 198, 60, 247, 115, 5, 176, 132, 201, 245, 60,
1131 21, 238, 60, 133, 186, 18, 154, 89, 170, 23, 102, 2, 111, 147, 25, 208,
1132 152, 173, 13, 58, 125, 181, 115, 218, 196, 107, 173, 192, 60, 94, 140, 254,
1133 83, 80, 214, 220, 245, 254, 250, 39, 202, 132, 142, 84, 16, 199, 20, 129,
1134 159, 24, 18, 123, 143, 157, 176, 199, 173, 56, 169, 222, 252, 63, 27, 242,
1135 137, 138, 253, 143, 4, 209, 124, 86, 243, 170, 152, 121, 231, 24, 238, 35,
1136 113, 27, 205, 59, 153, 161, 234, 65, 153, 237, 97, 197, 98, 216, 129, 30,
1137 174, 211, 193, 167, 102, 229, 240, 198, 85, 193, 253, 73, 118, 185, 63, 3,
1138 227, 165, 139, 38, 109, 214, 108, 253, 48, 227, 253, 219, 1, 226, 89, 47,
1139 145, 86, 8, 234, 146, 159, 230, 108, 212, 111, 112, 129, 121, 28, 164, 105,
1140 138, 143, 106, 132, 254, 202, 177, 171, 123, 38, 162, 112, 97, 88, 221, 95,
1141 5, 161, 222, 76, 234, 253, 239, 231, 13, 62, 243, 80, 164, 204, 67, 229,
1142 43, 103, 152, 30, 131, 240, 218, 184, 149, 161, 234, 124, 238, 126, 33, 234,
1143 133, 1, 201, 113, 176, 190, 231, 215, 99, 64, 219, 224, 29, 217, 23, 232,
1144 185, 215, 56, 14, 128, 31, 227, 227, 80, 213, 239, 224, 36, 144, 26, 243,
1145 36, 181, 129, 69, 104, 55, 42, 212, 27, 252, 74, 173, 196, 255, 96, 153,
1146 53, 3, 99, 13, 167, 244, 183, 92, 231, 140, 210, 116, 98, 36, 187, 126,
1147 84, 77, 144, 109, 126, 138, 53, 237, 100, 96, 209, 68, 204, 61, 104, 246,
1148 64, 35, 98, 99, 82, 152, 68, 118, 51, 82, 101, 136, 76, 149, 234, 135,
1149 110, 37, 167, 154, 17, 145, 150, 148, 89, 184, 123, 108, 255, 2, 49, 98,
1150 101, 125, 88, 110, 2, 146, 130, 120, 212, 249, 21, 164, 164, 161, 47, 201,
1151 70, 114, 46, 149, 0, 88, 142, 60, 228, 58, 181, 175, 207, 222, 199, 81,
1152 135, 121, 200, 205, 143, 132, 31, 93, 179, 202, 132, 84, 3, 19, 40, 190,
1153 99, 120, 38, 42, 165, 159, 18, 153, 99, 212, 120, 4, 237, 237, 8, 57,
1154 69, 228, 186, 220, 183, 121, 139, 113, 179, 200, 21, 166, 75, 19, 149, 135,
1155 138, 170, 149, 14, 166, 110, 94, 129, 233, 66, 187, 163, 213, 96, 172, 4,
1156 145, 205, 41, 25, 97, 26, 66, 99, 104, 172, 227, 73, 193, 35, 142, 228,
1157 202, 85, 209, 10, 77, 47, 21, 8, 14, 215, 104, 211, 62, 186, 19, 226,
1158 180, 187, 81, 140, 101, 188, 252, 173, 1, 242, 9, 66, 177, 73, 5, 79,
1159 230, 53, 67, 28, 207, 98, 199, 52, 27, 66, 153, 200, 135, 247, 246, 210,
1160 128, 156, 173, 249, 92, 165, 93, 112, 247, 110, 0, 133, 56, 64, 199, 71,
1161 135, 104, 242, 50, 218, 28, 242, 216, 223, 229, 92, 19, 39, 36, 161, 233,
1162 104, 205, 56, 92, 20, 44, 81, 244, 215, 85, 116, 79, 44, 104, 236, 197,
1163 72, 17, 157, 105, 213, 76, 90, 85, 9, 54, 76, 248, 27, 39, 175, 107,
1164 79, 142, 31, 140, 48, 194, 73, 214, 79, 131, 65, 191, 175, 211, 154, 225,
1165 182, 226, 90, 169, 178, 95, 71, 89, 3, 4, 83, 27, 152, 218, 67, 67,
1166 225, 90, 159, 244, 215, 227, 41, 53, 214, 40, 178, 86, 46, 92, 27, 200,
1167 104, 126, 203, 185, 150, 90, 220, 210, 140, 33, 238, 113, 54, 31, 121, 4,
1168 49, 132, 62, 250, 9, 180, 120, 241, 248, 86, 67, 254, 57, 166, 141, 34,
1169 165, 218, 73, 167, 166, 85, 50, 191, 136, 177, 212, 175, 133, 8, 30, 106,
1170 201, 100, 208, 40, 119, 107, 182, 231, 27, 237, 58, 22, 225, 63, 21, 160,
1171 176, 7, 223, 124, 229, 53, 246, 170, 155, 70, 75, 68, 204, 221, 146, 48,
1172 109, 153, 25, 0, 157, 54, 208, 220, 240, 216, 113, 30, 230, 30, 46, 139,
1173 116, 215, 222, 10, 247, 103, 24, 86, 125, 8, 77, 202, 39, 152, 10, 225,
1174 131, 18, 117, 227, 249, 127, 160, 143, 86, 128, 207, 99, 207, 224, 42, 110,
1175 232, 36, 86, 179, 249, 138, 84, 121, 50, 5, 149, 93, 7, 200, 115, 209,
1176 110, 152, 124, 77, 52, 79, 221, 157, 195, 140, 54, 19, 60, 205, 158, 199,
1177 127, 207, 7, 117, 11, 227, 197, 72, 199, 187, 184, 43, 95, 0, 61, 143,
1178 176, 207, 65, 130, 87, 82, 140, 181, 182, 184, 223, 238, 244, 209, 170, 7,
1179 11, 100, 83, 5, 98, 125, 26, 188, 40, 137, 242, 22, 249, 227, 184, 80,
1180 44, 145, 32, 143, 254, 218, 115, 107, 76, 139, 212, 87, 253, 12, 11, 121,
1181 216, 159, 121, 87, 182, 101, 205, 151, 5, 0, 126, 150, 6, 166, 115, 36,
1182 14, 128, 159, 126, 200, 42, 189, 146, 192, 223, 186, 35, 71, 224, 63, 33,
1183 211, 207, 93, 66, 201, 31, 66, 220, 66, 97, 107, 95, 157, 213, 92, 81,
1184 217, 125, 242, 101, 243, 184, 255, 155, 2, 165, 9, 143, 103, 243, 133, 173,
1185 202, 202, 40, 221, 73, 177, 248, 57, 243, 125, 130, 127, 102, 47, 3, 227,
1186 27, 203, 33, 179, 249, 117, 28, 112, 157, 0, 210, 139, 43, 15, 192, 47,
1187 202, 45, 132, 10, 26, 163, 47, 220, 65, 169, 225, 235, 120, 57, 25, 176,
1188 206, 16, 38, 110, 84, 145, 28, 43, 63, 35, 144, 234, 249, 59, 22, 152,
1189 16, 175, 248, 2, 6, 109, 55, 92, 124, 77, 237, 166, 207, 82, 238, 140,
1190 22, 30, 214, 144, 177, 182, 229, 27, 180, 150, 186, 187, 231, 184, 242, 23,
1191 178, 119, 36, 24, 165, 82, 15, 195, 55, 147, 107, 45, 198, 133, 194, 95,
1192 20, 146, 8, 222, 235, 67, 80, 119, 234, 48, 223, 163, 51, 60, 217, 228,
1193 171, 195, 231, 250, 46, 111, 138, 143, 1, 48, 174, 116, 197, 186, 40, 61,
1194 177, 53, 65, 225, 171, 95, 186, 209, 199, 254, 152, 98, 179, 71, 140, 127,
1195 193, 177, 171, 61, 227, 117, 130, 92, 148, 43, 199, 156, 176, 219, 52, 218,
1196 133, 160, 123, 11, 221, 104, 254, 253, 144, 156, 245, 5, 156, 246, 226, 198,
1197 222, 172, 246, 13, 35, 210, 51, 99, 203, 213, 159, 248, 139, 71, 77, 120,
1198 75, 195, 89, 11, 122, 125, 43, 57, 30, 233, 45, 10, 87, 102, 171, 47,
1199 21, 167, 175, 143, 207, 121, 98, 48, 220, 247, 72, 184, 97, 83, 152, 72,
1200 51, 136, 17, 52, 249, 169, 8, 140, 219, 152, 5, 221, 132, 225, 17, 117,
1201 28, 72, 220, 69, 199, 108, 140, 175, 206, 165, 41, 39, 77, 194, 249, 154,
1202 121, 23, 85, 205, 128, 34, 118, 49, 220, 85, 5, 240, 181, 26, 210, 29,
1203 177, 24, 132, 91, 57, 218, 74, 217, 135, 225, 148, 82, 95, 98, 54, 127,
1204 58, 1, 85, 12, 122, 2, 58, 81, 16, 32, 168, 153, 186, 97, 214, 81,
1205 176, 244, 134, 168, 111, 127, 21, 251, 227, 215, 141, 191, 141, 90, 21, 177,
1206 142, 172, 29, 212, 128, 163, 54, 172, 20, 35, 174, 1, 225, 232, 74, 73,
1207 226, 154, 236, 45, 211, 64, 28, 142, 90, 175, 147, 230, 243, 66, 160, 207,
1208 186, 212, 201, 34, 58, 202, 236, 9, 218, 10, 226, 189, 74, 106, 75, 43,
1209 93, 1, 5, 162, 36, 42, 54, 86, 83, 35, 242, 114, 165, 93, 76, 8,
1210 94, 21, 110, 101, 241, 119, 219, 78, 115, 182, 5, 105, 116, 73, 50, 193,
1211 102, 254, 43, 197, 64, 236, 6, 105, 84, 206, 79, 127, 195, 151, 106, 76,
1212 122, 173, 234, 203, 34, 20, 204, 34, 195, 244, 209, 60, 32, 112, 157, 150,
1213 185, 49, 35, 11, 41, 230, 21, 63, 137, 1, 127, 147, 193, 77, 136, 174,
1214 109, 122, 243, 119, 160, 26, 5, 187, 191, 90, 83, 26, 214, 237, 162, 198,
1215 184, 179, 204, 246, 113, 43, 145, 228, 4, 250, 28, 187, 22, 149, 121, 67,
1216 94, 202, 229, 64, 35, 204, 174, 106, 180, 40, 224, 146, 117, 146, 217, 9,
1217 29, 22, 202, 177, 96, 25, 165, 0, 97, 146, 120, 15, 29, 230, 203, 30,
1218 181, 73, 37, 59, 38, 156, 8, 123, 215, 252, 229, 157, 240, 58, 91, 78,
1219 3, 189, 39, 232, 28, 175, 195, 69, 94, 127, 176, 218, 32, 40, 236, 113,
1220 175, 110, 241, 181, 238, 15, 46, 106, 58, 170, 48, 58, 254, 253, 190, 204,
1221 172, 214, 31, 202, 150, 134, 97, 230, 224, 255, 121, 206, 110, 102, 224, 49,
1222 94, 248, 23, 109, 243, 23, 208, 50, 120, 155, 166, 16, 193, 8, 111, 212,
1223 88, 114, 163, 247, 255, 144, 18, 87, 92, 47, 60, 250, 35, 102, 101, 150,
1224 228, 34, 28, 18, 59, 175, 136, 120, 186, 193, 15, 151, 143, 76, 54, 96,
1225 157, 183, 62, 4, 245, 231, 132, 94, 131, 139, 192, 253, 72, 194, 242, 7,
1226 202, 19, 20, 245, 122, 114, 177, 101, 133, 107, 109, 109, 112, 151, 71, 239,
1227 115, 43, 157, 185, 57, 149, 27, 82, 191, 118, 114, 80, 96, 115, 166, 79,
1228 166, 59, 23, 91, 223, 159, 217, 68, 63, 155, 173, 200, 73, 32, 199, 233,
1229 241, 206, 133, 125, 89, 87, 71, 172, 91, 56, 219, 233, 115, 26, 63, 53,
1230 98, 209, 57, 151, 243, 141, 54, 139, 107, 120, 252, 89, 249, 133, 67, 85,
1231 144, 135, 86, 238, 9, 133, 115, 95, 92, 97, 212, 81, 117, 70, 225, 199,
1232 123, 49, 84, 16, 84, 19, 134, 156, 33, 78, 195, 79, 191, 112, 44, 206,
1233 81, 249, 191, 4, 106, 159, 152, 246, 185, 246, 125, 7, 186, 106, 239, 25,
1234 144, 121, 78, 194, 199, 195, 218, 118, 189, 66, 2, 220, 105, 0, 77, 65,
1235 137, 55, 169, 82, 156, 126, 146, 139, 71, 44, 247, 210, 45, 171, 110, 252,
1236 221, 51, 80, 157, 164, 99, 10, 241, 175, 65, 32, 180, 254, 187, 89, 223,
1237 231, 227, 216, 197, 99, 217, 65, 187, 235, 152, 63, 74, 176, 36, 170, 236,
1238 134, 46, 98, 13, 108, 160, 126, 185, 245, 100, 96, 40, 240, 69, 171, 10,
1239 2, 141, 57, 105, 56, 82, 168, 46, 126, 161, 5, 219, 126, 1, 1, 165,
1240 92, 219, 81, 202, 86, 78, 174, 209, 195, 7, 142, 244, 119, 255, 115, 242,
1241 220, 11, 168, 135, 5, 71, 145, 137, 108, 10, 17, 30, 178, 142, 202, 147,
1242 24, 141, 161, 192, 79, 54, 62, 142, 239, 66, 209, 248, 101, 134, 83, 10,
1243 119, 121, 22, 240, 25, 227, 60, 180, 18, 46, 164, 105, 89, 30, 196, 167,
1244 206, 32, 32, 76, 54, 35, 10, 210, 170, 114, 127, 0, 216, 28, 71, 6,
1245 216, 15, 56, 201, 194, 246, 115, 182, 231, 202, 62, 218, 93, 252, 151, 125,
1246 48, 231, 133, 89, 67, 175, 88, 80, 25, 208, 80, 251, 226, 12, 4, 225,
1247 125, 37, 78, 202, 227, 212, 179, 219, 234, 223, 207, 188, 126, 214, 22, 59,
1248 134, 161, 108, 10, 115, 65, 40, 68, 211, 192, 129, 64, 163, 178, 183, 164,
1249 98, 212, 20, 146, 25, 16, 154, 29, 176, 107, 3, 15, 62, 226, 67, 119,
1250 189, 45, 123, 187, 83, 222, 206, 56, 135, 242, 121, 61, 220, 133, 171, 150,
1251 139, 221, 69, 112, 13, 183, 180, 76, 97, 122, 168, 79, 203, 136, 62, 161,
1252 138, 40, 253, 182, 3, 51, 229, 58, 195, 79, 191, 203, 248, 191, 180, 101,
1253 40, 189, 22, 127, 67, 139, 219, 213, 78, 11, 67, 215, 82, 41, 107, 54,
1254 143, 72, 223, 89, 246, 156, 91, 11, 157, 16, 225, 237, 213, 148, 187, 201,
1255 233, 101, 70, 211, 201, 113, 164, 185, 140, 169, 130, 42, 1, 222, 92, 59,
1256 66, 17, 108, 67, 197, 192, 251, 55, 203, 109, 189, 230, 131, 237, 215, 241,
1257 65, 148, 253, 241, 39, 141, 155, 148, 156, 244, 12, 68, 71, 109, 235, 241,
1258 4, 161, 177, 218, 114, 173, 113, 146, 11, 3, 219, 33, 141, 215, 62, 45,
1259 215, 184, 196, 97, 162, 250, 218, 110, 1, 190, 8, 67, 241, 94, 82, 196,
1260 64, 85, 118, 139, 240, 71, 67, 49, 241, 49, 129, 247, 44, 211, 46, 227,
1261 115, 140, 123, 192, 63, 82, 9, 155, 83, 167, 250, 70, 61, 66, 186, 217,
1262 46, 155, 128, 255, 232, 56, 224, 32, 254, 12, 204, 2, 85, 173, 20, 75,
1263 214, 73, 229, 18, 247, 145, 83, 241, 20, 245, 155, 15, 92, 111, 180, 101,
1264 179, 246, 5, 243, 112, 196, 44, 146, 16, 128, 155, 80, 106, 147, 110, 87,
1265 96, 17, 243, 247, 21, 87, 149, 78, 248, 20, 153, 249, 196, 11, 177, 96,
1266 227, 185, 136, 7, 244, 54, 177, 91, 192, 193, 111, 21, 159, 105, 143, 236,
1267 167, 215, 244, 121, 207, 245, 202, 161, 215, 45, 233, 32, 123, 220, 57, 34,
1268 171, 115, 37, 163, 75, 253, 140, 232, 51, 143, 204, 252, 146, 168, 85, 148,
1269 201, 161, 181, 231, 125, 44, 172, 79, 210, 12, 147, 82, 38, 254, 157, 225,
1270 167, 230, 182, 123, 63, 141, 146, 152, 136, 190, 80, 156, 163, 231, 33, 184,
1271 58, 200, 134, 28, 70, 202, 88, 195, 39, 224, 159, 154, 206, 183, 11, 96,
1272 102, 136, 26, 238, 179, 189, 226, 18, 30, 188, 148, 25, 3, 252, 154, 142,
1273 147, 145, 126, 11, 55, 1, 3, 108, 144, 55, 251, 167, 54, 127, 180, 216,
1274 77, 70, 138, 95, 166, 90, 48, 2, 211, 236, 235, 131, 107, 251, 91, 238,
1275 255, 0, 113, 41, 243, 14, 241, 252, 163, 99, 74, 25, 172, 87, 125, 36,
1276 203, 96, 189, 125, 222, 165, 138, 25, 76, 136, 67, 137, 161, 22, 232, 31,
1277 5, 96, 146, 214, 146, 21, 181, 198, 199, 34, 190, 63, 191, 201, 104, 116,
1278 123, 201, 64, 128, 84, 139, 86, 102, 244, 241, 162, 126, 4, 9, 132, 2,
1279 53, 113, 21, 1, 95, 7, 212, 123, 252, 100, 87, 78, 71, 28, 131, 135,
1280 183, 72, 196, 33, 66, 237, 12, 135, 58, 102, 69, 234, 214, 244, 57, 44,
1281 181, 120, 156, 218, 99, 146, 97, 15, 77, 113, 179, 142, 113, 226, 38, 72,
1282 128, 211, 160, 95, 52, 181, 30, 200, 64, 234, 8, 229, 150, 219, 225, 30,
1283 162, 223, 52, 242, 29, 31, 226, 91, 102, 235, 127, 213, 105, 123, 11, 172,
1284 190, 152, 59, 69, 1, 253, 126, 19, 145, 99, 33, 26, 198, 80, 74, 47,
1285 59, 77, 158, 60, 231, 51, 65, 145, 210, 232, 71, 100, 73, 71, 176, 239,
1286 42, 124, 176, 31, 254, 64, 223, 51, 195, 108, 165, 78, 202, 174, 212, 32,
1287 157, 58, 145, 133, 84, 230, 17, 206, 107, 72, 89, 129, 240, 179, 56, 231,
1288 218, 55, 236, 231, 122, 137, 50, 245, 171, 107, 223, 86, 17, 155, 68, 241,
1289 220, 120, 38, 95, 74, 110, 214, 202, 223, 60, 35, 120, 33, 79, 32, 58,
1290 77, 28, 121, 180, 99, 64, 201, 81, 156, 37, 28, 254, 219, 153, 74, 200,
1291 178, 70, 252, 140, 137, 127, 195, 238, 103, 228, 44, 96, 216, 12, 198, 246,
1292 206, 130, 67, 71, 129, 114, 145, 168, 64, 145, 128, 169, 169, 11, 28, 145,
1293 64, 144, 92, 206, 171, 135, 128, 121, 84, 142, 75, 37, 199, 208, 97, 243,
1294 114, 58, 152, 244, 201, 119, 76, 178, 3, 128, 185, 252, 146, 38, 165, 53,
1295 186, 175, 102, 81, 233, 115, 190, 227, 19, 31, 134, 132, 114, 24, 2, 21,
1296 249, 228, 128, 74, 119, 144, 74, 43, 168, 201, 131, 175, 254, 42, 103, 23,
1297 94, 138, 61, 40, 129, 252, 51, 80, 150, 135, 133, 55, 54, 122, 187, 93,
1298 42, 9, 154, 50, 93, 143, 241, 26, 80, 108, 7, 51, 144, 218, 129, 48,
1299 168, 66, 150, 108, 86, 127, 156, 232, 5, 54, 7, 182, 73, 210, 46, 115,
1300 84, 145, 113, 254, 195, 166, 106, 119, 116, 233, 154, 170, 185, 255, 99, 223,
1301 133, 115, 122, 10, 210, 76, 123, 92, 28, 159, 138, 133, 70, 126, 240, 215,
1302 36, 119, 180, 221, 156, 46, 89, 71, 1, 175, 247, 102, 107, 67, 136, 62,
1303 142, 197, 212, 50, 159, 107, 254, 44, 30, 59, 234, 51, 55, 35, 103, 170,
1304 231, 41, 111, 178, 14, 27, 77, 40, 43, 88, 199, 148, 211, 140, 17, 59,
1305 84, 182, 195, 92, 230, 109, 218, 165, 117, 39, 234, 195, 94, 70, 151, 202,
1306 167, 17, 179, 205, 213, 68, 102, 11, 120, 210, 150, 47, 150, 115, 186, 81,
1307 137, 53, 132, 36, 224, 107, 115, 100, 143, 118, 212, 239, 176, 139, 243, 36,
1308 235, 189, 48, 43, 25, 130, 143, 2, 165, 117, 173, 63, 189, 86, 180, 83,
1309 22, 204, 226, 141, 78, 199, 226, 195, 94, 183, 88, 103, 180, 205, 96, 254,
1310 235, 65, 144, 231, 11, 193, 111, 52, 129, 110, 125, 68, 42, 234, 138, 118,
1311 112, 69, 178, 191, 213, 115, 230, 221, 222, 97, 60, 187, 154, 161, 24, 25,
1312 147, 205, 69, 47, 45, 241, 84, 238, 249, 129, 6, 107, 126, 245, 187, 62,
1313 247, 159, 178, 6, 100, 80, 244, 229, 53, 83, 186, 208, 116, 164, 83, 217,
1314 76, 21, 191, 207, 44, 19, 21, 253, 153, 84, 92, 96, 41, 9, 10, 187,
1315 82, 155, 222, 146, 71, 130, 217, 44, 75, 51, 56, 119, 4, 77, 141, 46,
1316 0, 97, 157, 176, 42, 30, 102, 41, 39, 48, 191, 201, 226, 156, 80, 24,
1317 28, 109, 150, 215, 254, 211, 17, 87, 114, 111, 250, 7, 60, 233, 55, 121,
1318 139, 121, 167, 213, 0, 106, 85, 183, 122, 254, 65, 52, 95, 129, 197, 156,
1319 125, 235, 47, 46, 191, 44, 139, 244, 217, 239, 216, 228, 14, 234, 216, 19,
1320 13, 124, 221, 166, 60, 124, 187, 83, 242, 154, 57, 182, 125, 172, 123, 100,
1321 165, 156, 196, 254, 19, 73, 234, 83, 209, 242, 17, 54, 12, 115, 163, 148,
1322 32, 146, 41, 86, 171, 11, 77, 71, 162, 203, 42, 153, 71, 217, 254, 31,
1323 214, 184, 58, 41, 245, 132, 249, 54, 172, 163, 225, 203, 205, 52, 64, 105,
1324 110, 128, 162, 176, 118, 243, 173, 173, 69, 11, 98, 19, 183, 83, 247, 5,
1325 137, 91, 192, 122, 15, 151, 125, 192, 220, 207, 6, 118, 84, 8, 86, 196,
1326 88, 59, 246, 8, 250, 10, 27, 7, 233, 225, 220, 213, 222, 239, 138, 177,
1327 173, 63, 58, 16, 68, 113, 218, 216, 24, 25, 147, 176, 232, 249, 135, 194,
1328 5, 26, 37, 110, 251, 13, 178, 55, 28, 116, 84, 162, 145, 153, 117, 194,
1329 41, 16, 179, 64, 121, 52, 127, 232, 232, 53, 135, 212, 72, 122, 32, 112,
1330 152, 10, 241, 217, 107, 3, 99, 91, 115, 88, 107, 146, 120, 22, 156, 153,
1331 68, 104, 212, 39, 76, 144, 54, 58, 61, 91, 212, 96, 139, 35, 184, 37,
1332 17, 55, 223, 15, 75, 18, 55, 124, 232, 21, 10, 147, 24, 221, 23, 87,
1333 186, 27, 152, 51, 247, 112, 63, 56, 89, 180, 195, 67, 89, 105, 236, 102,
1334 235, 57, 17, 45, 151, 91, 186, 224, 171, 11, 149, 111, 102, 149, 50, 144,
1335 250, 243, 179, 20, 251, 203, 229, 228, 190, 33, 209, 254, 237, 112, 60, 222,
1336 179, 19, 224, 4, 78, 246, 239, 248, 80, 169, 180, 71, 190, 29, 178, 253,
1337 130, 207, 77, 202, 16, 108, 142, 201, 238, 135, 247, 155, 237, 187, 243, 139,
1338 247, 21, 141, 125, 213, 34, 106, 183, 4, 125, 40, 8, 104, 128, 73, 121,
1339 163, 122, 190, 121, 152, 45, 174, 52, 181, 139, 254, 242, 146, 36, 163, 183,
1340 147, 27, 234, 160, 222, 93, 232, 251, 153, 185, 158, 215, 9, 86, 49, 72,
1341 87, 154, 88, 169, 82, 186, 198, 240, 104, 92, 129, 217, 12, 124, 113, 206,
1342 117, 116, 149, 159, 149, 124, 219, 138, 96, 50, 177, 145, 244, 8, 232, 218,
1343 158, 22, 70, 31, 52, 226, 90, 7, 187, 135, 66, 35, 193, 62, 122, 72,
1344 201, 100, 66, 137, 236, 158, 187, 195, 107, 234, 27, 155, 187, 221, 131, 2,
1345 167, 165, 18, 225, 67, 72, 190, 63, 136, 69, 32, 185, 181, 234, 159, 57,
1346 4, 101, 127, 121, 3, 2, 235, 220, 44, 245, 160, 71, 64, 175, 55, 135,
1347 83, 250, 217, 239, 121, 81, 181, 160, 151, 70, 56, 101, 74, 169, 142, 167,
1348 10, 179, 233, 140, 156, 203, 110, 15, 95, 15, 8, 169, 164, 40, 43, 50,
1349 148, 216, 167, 161, 36, 142, 145, 126, 236, 167, 154, 120, 110, 239, 138, 53,
1350 152, 233, 115, 33, 203, 253, 249, 174, 176, 43, 0, 178, 120, 133, 211, 252,
1351 95, 221, 221, 185, 36, 145, 53, 15, 125, 26, 232, 42, 249, 86, 8, 205,
1352 183, 114, 81, 62, 187, 162, 4, 251, 26, 79, 159, 156, 42, 7, 83, 97,
1353 14, 124, 38, 252, 215, 34, 141, 252, 226, 61, 237, 252, 114, 117, 187, 21,
1354 53, 236, 151, 9, 147, 40, 68, 63, 10, 166, 84, 236, 0, 169, 196, 239,
1355 107, 214, 32, 53, 142, 172, 22, 245, 22, 154, 150, 105, 223, 5, 178, 48,
1356 151, 191, 251, 63, 50, 255, 54, 206, 221, 49, 249, 35, 133, 197, 248, 47,
1357 155, 185, 108, 172, 179, 104, 121, 72, 25, 83, 78, 205, 136, 136, 250, 47,
1358 68, 179, 166, 229, 237, 212, 214, 104, 191, 88, 159, 43, 30, 168, 89, 25,
1359 137, 79, 142, 7, 237, 19, 230, 87, 255, 20, 182, 27, 217, 197, 80, 45,
1360 119, 115, 241, 181, 96, 155, 160, 62, 57, 162, 103, 171, 196, 214, 243, 194,
1361 41, 223, 187, 22, 4, 157, 139, 4, 98, 193, 171, 27, 217, 8, 27, 100,
1362 222, 30, 235, 4, 127, 97, 243, 231, 102, 37, 47, 237, 58, 79, 189, 143,
1363 193, 144, 0, 150, 183, 0, 100, 29, 130, 166, 233, 150, 241, 61, 175, 23,
1364 56, 239, 24, 59, 143, 79, 27, 23, 124, 4, 9, 207, 73, 21, 181, 227,
1365 80, 149, 79, 226, 85, 110, 255, 126, 11, 66, 167, 203, 91, 50, 255, 189,
1366 91, 50, 79, 115, 160, 201, 112, 13, 25, 100, 68, 8, 218, 253, 185, 90,
1367 85, 79, 74, 27, 123, 23, 229, 57, 97, 91, 127, 106, 189, 186, 213, 74,
1368 233, 11, 137, 181, 51, 79, 108, 16, 145, 67, 82, 93, 245, 199, 182, 112,
1369 114, 208, 100, 151, 117, 222, 34, 187, 232, 137, 114, 251, 117, 217, 153, 37,
1370 215, 22, 113, 249, 198, 21, 184, 245, 107, 107, 27, 224, 2, 158, 165, 155,
1371 155, 104, 108, 215, 105, 154, 76, 171, 175, 245, 245, 206, 227, 85, 231, 208,
1372 127, 196, 191, 48, 150, 44, 38, 194, 191, 59, 10, 10, 175, 148, 162, 163,
1373 122, 167, 207, 145, 105, 234, 57, 199, 40, 112, 205, 98, 242, 238, 38, 68,
1374 192, 158, 91, 141, 80, 54, 12, 193, 215, 8, 201, 136, 185, 229, 109, 175,
1375 25, 245, 209, 147, 197, 233, 17, 80, 189, 150, 49, 218, 246, 78, 30, 112,
1376 64, 212, 109, 75, 232, 228, 171, 102, 239, 219, 152, 158, 217, 121, 43, 174,
1377 99, 82, 7, 113, 222, 107, 164, 30, 205, 236, 152, 19, 157, 60, 82, 165,
1378 34, 117, 23, 166, 185, 209, 212, 7, 250, 32, 167, 172, 234, 117, 139, 110,
1379 191, 14, 44, 158, 95, 115, 126, 115, 234, 209, 174, 95, 163, 117, 243, 203,
1380 182, 113, 182, 4, 33, 100, 143, 45, 225, 128, 69, 73, 183, 246, 91, 28,
1381 57, 20, 1, 175, 125, 128, 38, 4, 54, 93, 255, 28, 106, 122, 42, 104,
1382 35, 79, 242, 117, 75, 237, 149, 28, 178, 84, 224, 183, 116, 254, 120, 3,
1383 70, 154, 8, 57, 132, 86, 14, 119, 4, 130, 3, 155, 233, 177, 27, 28,
1384 233, 148, 205, 109, 29, 39, 33, 0, 160, 214, 129, 207, 180, 227, 131, 109,
1385 29, 136, 60, 47, 234, 99, 52, 57, 228, 87, 114, 138, 185, 19, 148, 152,
1386 114, 48, 12, 231, 182, 67, 228, 94, 253, 199, 34, 171, 238, 77, 59, 83,
1387 128, 137, 52, 74, 35, 236, 38, 181, 165, 106, 161, 12, 100, 76, 100, 237,
1388 69, 13, 211, 210, 117, 185, 178, 17, 231, 85, 134, 101, 66, 9, 71, 42,
1389 88, 125, 183, 106, 217, 38, 175, 131, 139, 75, 163, 134, 149, 70, 120, 146,
1390 156, 196, 151, 154, 242, 232, 163, 33, 206, 179, 123, 102, 249, 28, 11, 115,
1391 88, 20, 192, 244, 74, 33, 165, 176, 215, 142, 87, 229, 188, 139, 225, 192,
1392 111, 203, 55, 25, 241, 218, 22, 119, 121, 89, 69, 116, 214, 254, 94, 137,
1393 253, 168, 156, 155, 34, 150, 56, 126, 229, 79, 49, 150, 109, 99, 194, 179,
1394 40, 114, 63, 220, 161, 254, 73, 154, 211, 245, 21, 255, 63, 209, 45, 135,
1395 86, 234, 184, 213, 95, 28, 28, 244, 42, 66, 200, 83, 190, 81, 247, 24,
1396 153, 129, 180, 45, 159, 132, 4, 187, 171, 88, 178, 140, 143, 60, 212, 187,
1397 102, 125, 212, 66, 85, 133, 248, 58, 240, 126, 196, 7, 68, 71, 137, 202,
1398 116, 79, 137, 229, 156, 122, 69, 94, 146, 226, 198, 191, 116, 96, 33, 50,
1399 189, 32, 4, 5, 92, 116, 29, 122, 137, 140, 42, 199, 138, 59, 38, 48,
1400 178, 115, 216, 201, 225, 170, 183, 55, 248, 151, 58, 187, 184, 152, 106, 130,
1401 176, 52, 36, 73, 99, 77, 12, 166, 238, 52, 231, 86, 144, 91, 2, 248,
1402 246, 127, 5, 182, 201, 149, 205, 246, 73, 158, 98, 4, 20, 138, 51, 176,
1403 71, 169, 209, 237, 230, 100, 244, 243, 107, 80, 113, 246, 233, 115, 26, 175,
1404 72, 11, 38, 165, 68, 108, 163, 27, 38, 43, 246, 18, 153, 208, 118, 235,
1405 201, 225, 235, 17, 65, 53, 173, 72, 230, 232, 105, 215, 41, 180, 191, 61,
1406 31, 28, 214, 219, 29, 209, 90, 206, 232, 80, 22, 101, 237, 61, 105, 128,
1407 249, 224, 23, 242, 8, 250, 190, 130, 207, 148, 102, 166, 241, 67, 58, 8,
1408 61, 43, 58, 21, 148, 188, 40, 139, 116, 11, 79, 186, 85, 9, 240, 164,
1409 117, 238, 157, 59, 244, 184, 250, 69, 143, 88, 147, 126, 237, 37, 6, 159,
1410 130, 18, 72, 138, 251, 58, 136, 155, 92, 42, 173, 253, 171, 166, 57, 160,
1411 162, 211, 173, 241, 66, 121, 37, 176, 180, 140, 117, 240, 132, 181, 16, 234,
1412 173, 59, 98, 9, 123, 31, 18, 165, 45, 182, 89, 112, 130, 79, 53, 10,
1413 120, 252, 52, 114, 58, 57, 146, 87, 222, 154, 231, 215, 219, 84, 246, 85,
1414 57, 206, 180, 66, 125, 212, 226, 45, 212, 74, 132, 27, 185, 34, 150, 235,
1415 119, 218, 77, 70, 235, 171, 112, 123, 174, 87, 160, 89, 86, 219, 3, 47,
1416 39, 240, 116, 102, 70, 107, 31, 55, 102, 167, 4, 101, 119, 146, 176, 237,
1417 168, 123, 84, 118, 218, 112, 118, 52, 18, 56, 120, 216, 66, 187, 31, 12,
1418 205, 53, 119, 26, 225, 215, 195, 226, 2, 201, 75, 105, 65, 81, 45, 239,
1419 114, 182, 155, 135, 95, 153, 240, 143, 109, 109, 219, 218, 224, 26, 175, 35,
1420 86, 128, 209, 255, 71, 26, 86, 115, 22, 70, 167, 3, 105, 128, 160, 142,
1421 163, 149, 168, 112, 8, 12, 14, 119, 65, 43, 183, 105, 197, 156, 207, 226,
1422 231, 239, 48, 62, 4, 49, 169, 234, 123, 26, 164, 98, 119, 33, 170, 43,
1423 39, 6, 128, 15, 217, 209, 229, 109, 240, 180, 150, 169, 252, 118, 242, 240,
1424 108, 204, 24, 107, 199, 108, 184, 110, 208, 52, 175, 245, 241, 123, 90, 123,
1425 150, 211, 56, 75, 247, 140, 187, 53, 172, 174, 90, 223, 117, 128, 254, 97,
1426 235, 170, 193, 190, 34, 215, 109, 18, 109, 13, 118, 134, 45, 22, 100, 73,
1427 141, 199, 203, 124, 169, 191, 102, 108, 250, 201, 188, 39, 236, 74, 154, 159,
1428 170, 137, 69, 63, 82, 44, 177, 240, 178, 157, 53, 89, 6, 99, 5, 13,
1429 134, 169, 195, 121, 229, 179, 212, 123, 198, 131, 96, 250, 187, 94, 106, 51,
1430 219, 16, 147, 227, 108, 124, 240, 237, 172, 43, 83, 157, 124, 246, 118, 249,
1431 175, 43, 235, 221, 18, 24, 166, 127, 255, 210, 199, 57, 134, 73, 141, 254,
1432 219, 209, 19, 217, 36, 25, 104, 225, 133, 24, 3, 130, 62, 103, 148, 212,
1433 243, 122, 52, 213, 102, 26, 144, 227, 189, 143, 151, 230, 98, 87, 214, 147,
1434 110, 31, 43, 248, 142, 126, 199, 95, 170, 186, 67, 225, 208, 49, 50, 159,
1435 108, 174, 152, 118, 43, 193, 187, 13, 63, 141, 94, 118, 113, 200, 75, 165,
1436 117, 247, 53, 209, 151, 163, 241, 24, 23, 252, 149, 18, 16, 77, 69, 208,
1437 219, 254, 159, 220, 62, 99, 26, 31, 231, 88, 150, 219, 168, 151, 178, 181,
1438 234, 141, 124, 130, 37, 1, 21, 195, 96, 139, 179, 136, 145, 29, 159, 213,
1439 248, 10, 174, 213, 22, 180, 250, 251, 30, 42, 228, 139, 178, 90, 19, 228,
1440 100, 120, 205, 54, 6, 189, 213, 203, 193, 43, 218, 211, 27, 93, 76, 181,
1441 127, 159, 43, 96, 233, 249, 118, 252, 127, 59, 67, 82, 65, 48, 100, 170,
1442 227, 197, 141, 49, 153, 31, 189, 176, 102, 14, 101, 152, 242, 25, 251, 47,
1443 242, 67, 114, 61, 184, 29, 60, 163, 186, 19, 17, 36, 42, 76, 31, 246,
1444 195, 224, 206, 221, 89, 69, 218, 112, 148, 98, 60, 154, 28, 199, 206, 59,
1445 157, 199, 18, 214, 53, 217, 211, 254, 128, 220, 189, 96, 134, 57, 73, 152,
1446 41, 52, 0, 93, 23, 215, 124, 209, 63, 252, 134, 64, 224, 183, 197, 94,
1447 46, 214, 214, 233, 202, 211, 155, 236, 31, 238, 220, 132, 54, 88, 122, 140,
1448 146, 11, 88, 164, 238, 156, 72, 239, 225, 82, 157, 144, 27, 240, 5, 231,
1449 89, 25, 63, 50, 227, 219, 3, 5, 218, 125, 13, 151, 59, 40, 162, 211,
1450 79, 33, 157, 76, 245, 55, 229, 140, 88, 50, 221, 42, 52, 162, 106, 212,
1451 125, 187, 254, 0, 126, 156, 98, 149, 35, 94, 247, 215, 131, 86, 116, 176,
1452 3, 56, 30, 26, 138, 113, 71, 255, 77, 143, 52, 111, 20, 113, 47, 88,
1453 104, 110, 225, 164, 226, 8, 74, 180, 182, 183, 206, 215, 84, 12, 46, 61,
1454 177, 168, 102, 244, 93, 199, 243, 247, 214, 227, 131, 185, 103, 131, 49, 3,
1455 49, 18, 74, 111, 249, 150, 2, 113, 165, 221, 7, 93, 110, 59, 242, 246,
1456 243, 168, 45, 182, 45, 140, 19, 41, 72, 10, 164, 190, 17, 174, 216, 36,
1457 216, 3, 1, 198, 230, 150, 19, 0, 114, 10, 75, 166, 138, 161, 0, 113,
1458 132, 128, 116, 201, 147, 42, 63, 211, 56, 195, 45, 125, 69, 55, 177, 149,
1459 228, 7, 78, 217, 133, 35, 108, 182, 210, 185, 124, 187, 167, 95, 246, 202,
1460 121, 167, 61, 61, 239, 37, 153, 143, 109, 126, 42, 69, 174, 253, 132, 161,
1461 118, 14, 10, 7, 141, 92, 188, 60, 81, 174, 93, 28, 58, 223, 217, 119,
1462 84, 213, 230, 132, 248, 31, 47, 141, 88, 249, 28, 205, 19, 5, 183, 167,
1463 88, 177, 66, 242, 50, 66, 255, 31, 218, 182, 209, 12, 246, 151, 87, 252,
1464 211, 231, 32, 120, 95, 76, 180, 20, 124, 238, 190, 60, 165, 239, 207, 37,
1465 221, 115, 145, 126, 61, 51, 141, 54, 64, 219, 247, 164, 74, 19, 7, 93,
1466 27, 150, 115, 224, 228, 172, 232, 113, 6, 148, 40, 229, 228, 32, 17, 92,
1467 215, 75, 64, 50, 235, 127, 109, 127, 152, 99, 73, 55, 210, 245, 55, 37,
1468 236, 244, 136, 154, 177, 231, 119, 30, 187, 225, 83, 240, 237, 183, 80, 245,
1469 10, 129, 181, 156, 137, 27, 79, 97, 145, 78, 100, 127, 79, 224, 218, 244,
1470 49, 70, 225, 131, 138, 102, 32, 110, 123, 110, 49, 161, 246, 27, 99, 115,
1471 171, 159, 45, 44, 15, 108, 51, 173, 24, 4, 170, 76, 255, 41, 27, 0,
1472 27, 35, 61, 145, 246, 241, 138, 152, 47, 51, 2, 153, 171, 79, 81, 176,
1473 123, 63, 192, 74, 27, 243, 22, 51, 86, 243, 48, 24, 129, 162, 69, 218,
1474 102, 143, 135, 107, 52, 182, 189, 25, 142, 206, 227, 144, 140, 57, 124, 252,
1475 97, 157, 61, 55, 43, 76, 52, 197, 146, 154, 83, 0, 150, 16, 85, 76,
1476 230, 32, 23, 86, 31, 241, 251, 88, 183, 195, 242, 192, 181, 160, 229, 185,
1477 229, 186, 72, 219, 249, 142, 111, 178, 42, 163, 117, 93, 31, 171, 161, 227,
1478 194, 51, 36, 53, 116, 0, 233, 37, 150, 128, 144, 8, 168, 198, 68, 35,
1479 57, 148, 64, 207, 148, 64, 213, 174, 223, 174, 129, 171, 81, 132, 1, 90,
1480 208, 100, 105, 209, 10, 209, 228, 138, 169, 82, 197, 37, 172, 32, 222, 70,
1481 180, 78, 59, 234, 106, 250, 76, 237, 59, 173, 178, 212, 151, 107, 131, 245,
1482 14, 218, 71, 56, 187, 138, 74, 101, 15, 32, 18, 131, 21, 57, 6, 32,
1483 115, 75, 244, 119, 168, 158, 154, 147, 72, 143, 232, 51, 49, 181, 115, 27,
1484 96, 141, 93, 202, 36, 38, 23, 61, 150, 171, 239, 66, 13, 183, 126, 24,
1485 99, 175, 110, 189, 88, 170, 252, 139, 127, 179, 106, 243, 140, 208, 243, 110,
1486 145, 64, 161, 4, 191, 209, 211, 72, 135, 24, 121, 210, 109, 42, 134, 9,
1487 160, 241, 186, 161, 203, 85, 212, 3, 23, 228, 75, 147, 133, 9, 100, 65,
1488 195, 165, 252, 229, 177, 199, 170, 63, 194, 247, 76, 171, 66, 203, 193, 3,
1489 74, 91, 86, 31, 85, 185, 52, 27, 175, 175, 84, 137, 51, 233, 26, 52,
1490 16, 75, 185, 95, 35, 167, 251, 67, 83, 217, 9, 241, 43, 252, 76, 242,
1491 101, 115, 133, 173, 154, 251, 33, 116, 118, 243, 152, 63, 173, 153, 63, 75,
1492 90, 106, 203, 197, 141, 149, 127, 9, 133, 218, 223, 193, 62, 19, 48, 231,
1493 45, 146, 21, 164, 1, 42, 43, 187, 75, 88, 20, 39, 233, 165, 20, 76,
1494 26, 145, 226, 155, 106, 187, 26, 195, 23, 212, 49, 60, 145, 149, 37, 167,
1495 73, 106, 203, 228, 185, 223, 108, 12, 187, 239, 88, 126, 27, 154, 235, 203,
1496 207, 187, 1, 114, 12, 112, 238, 17, 185, 120, 227, 177, 242, 191, 10, 18,
1497 241, 143, 21, 239, 31, 150, 102, 60, 15, 167, 209, 64, 117, 237, 45, 45,
1498 217, 147, 32, 28, 98, 221, 12, 20, 2, 176, 213, 147, 95, 31, 176, 64,
1499 237, 55, 53, 44, 105, 249, 43, 111, 73, 162, 180, 4, 62, 66, 118, 36,
1500 215, 254, 183, 249, 170, 39, 21, 69, 147, 65, 105, 136, 232, 160, 174, 141,
1501 84, 222, 189, 33, 250, 197, 226, 170, 246, 127, 87, 25, 10, 181, 46, 151,
1502 216, 250, 227, 131, 115, 64, 217, 11, 190, 199, 122, 148, 242, 221, 46, 169,
1503 45, 54, 9, 90, 251, 94, 61, 211, 30, 67, 199, 115, 204, 4, 199, 203,
1504 109, 137, 60, 223, 206, 3, 144, 170, 215, 224, 72, 247, 128, 64, 147, 140,
1505 223, 125, 20, 67, 248, 253, 206, 5, 44, 72, 160, 33, 20, 166, 80, 123,
1506 194, 220, 16, 134, 206, 24, 66, 217, 177, 231, 223, 66, 251, 253, 235, 180,
1507 36, 205, 107, 173, 198, 108, 83, 120, 82, 128, 120, 245, 67, 23, 248, 203,
1508 28, 14, 75, 235, 117, 111, 34, 127, 39, 52, 169, 101, 28, 144, 123, 20,
1509 197, 116, 96, 141, 201, 246, 61, 101, 132, 127, 98, 178, 186, 139, 226, 132,
1510 55, 229, 116, 75, 43, 241, 119, 139, 104, 169, 215, 199, 226, 113, 178, 214,
1511 153, 159, 139, 208, 106, 136, 77, 149, 72, 248, 49, 179, 98, 110, 192, 105,
1512 128, 27, 245, 36, 215, 210, 187, 98, 45, 92, 51, 238, 57, 153, 113, 21,
1513 86, 147, 122, 138, 3, 70, 66, 84, 135, 96, 199, 23, 123, 105, 226, 81,
1514 171, 23, 228, 73, 234, 240, 50, 135, 108, 143, 140, 247, 26, 245, 43, 94,
1515 183, 180, 240, 235, 159, 127, 57, 119, 6, 34, 58, 112, 170, 62, 37, 57,
1516 171, 56, 223, 147, 98, 204, 183, 146, 154, 85, 172, 49, 76, 84, 231, 138,
1517 117, 46, 81, 57, 240, 43, 102, 130, 234, 208, 237, 88, 164, 124, 128, 104,
1518 167, 38, 88, 73, 7, 131, 234, 67, 4, 213, 8, 211, 84, 81, 197, 133,
1519 123, 247, 254, 101, 230, 68, 245, 220, 193, 152, 208, 91, 63, 109, 228, 184,
1520 117, 28, 114, 146, 98, 142, 195, 4, 139, 48, 186, 242, 211, 124, 175, 224,
1521 69, 38, 35, 14, 253, 245, 242, 184, 138, 4, 206, 221, 15, 125, 189, 97,
1522 127, 46, 212, 10, 55, 1, 69, 56, 31, 180, 245, 93, 175, 58, 220, 3,
1523 164, 88, 22, 74, 157, 113, 246, 189, 65, 97, 235, 189, 126, 106, 50, 120,
1524 180, 71, 120, 11, 200, 48, 19, 57, 236, 64, 234, 180, 243, 32, 228, 127,
1525 228, 253, 42, 20, 238, 109, 161, 67, 73, 52, 35, 126, 197, 5, 117, 12,
1526 86, 215, 168, 60, 159, 4, 74, 193, 92, 104, 190, 30, 185, 187, 153, 208,
1527 87, 245, 62, 200, 16, 204, 189, 141, 188, 226, 187, 144, 101, 51, 86, 204,
1528 26, 22, 246, 230, 176, 81, 195, 19, 126, 58, 91, 30, 204, 178, 248, 217,
1529 81, 155, 68, 145, 42, 9, 22, 68, 22, 107, 25, 86, 153, 225, 224, 143,
1530 128, 94, 164, 65, 168, 173, 178, 181, 97, 100, 159, 212, 164, 213, 75, 25,
1531 35, 225, 133, 5, 243, 65, 39, 158, 155, 153, 3, 81, 53, 165, 153, 52,
1532 237, 226, 122, 245, 248, 255, 60, 13, 2, 41, 202, 232, 184, 57, 152, 133,
1533 105, 159, 33, 220, 49, 135, 76, 198, 212, 70, 168, 43, 233, 168, 180, 88,
1534 139, 246, 219, 120, 12, 161, 238, 88, 228, 9, 77, 236, 129, 227, 73, 91,
1535 104, 222, 104, 205, 28, 140, 205, 167, 178, 222, 150, 197, 139, 205, 66, 245,
1536 48, 241, 80, 225, 218, 27, 159, 205, 64, 148, 107, 54, 46, 190, 61, 0,
1537 161, 228, 124, 123, 18, 170, 35, 46, 53, 61, 171, 154, 121, 253, 187, 158,
1538 102, 194, 132, 94, 49, 239, 86, 57, 205, 129, 185, 234, 50, 56, 219, 36,
1539 56, 77, 247, 160, 75, 239, 154, 122, 34, 34, 143, 66, 53, 20, 212, 246,
1540 3, 79, 229, 119, 50, 132, 221, 187, 208, 82, 149, 183, 151, 200, 181, 97,
1541 12, 4, 136, 233, 171, 247, 128, 211, 234, 122, 152, 140, 221, 82, 83, 98,
1542 185, 95, 122, 23, 120, 124, 112, 240, 39, 16, 49, 140, 225, 135, 88, 69,
1543 96, 125, 246, 99, 224, 165, 148, 178, 35, 63, 192, 217, 39, 153, 63, 32,
1544 109, 142, 224, 12, 132, 10, 55, 49, 140, 217, 141, 113, 10, 72, 92, 37,
1545 121, 96, 72, 35, 184, 70, 156, 225, 140, 110, 150, 24, 95, 209, 172, 140,
1546 187, 10, 154, 58, 113, 215, 254, 36, 101, 155, 5, 46, 249, 59, 238, 164,
1547 25, 212, 35, 5, 87, 45, 183, 124, 174, 6, 182, 241, 206, 128, 118, 190,
1548 239, 160, 140, 2, 149, 90, 185, 125, 192, 8, 75, 105, 184, 51, 2, 11,
1549 198, 85, 249, 100, 88, 73, 229, 189, 80, 81, 244, 167, 62, 110, 52, 13,
1550 254, 122, 144, 170, 206, 64, 239, 191, 0, 73, 235, 143, 120, 81, 33, 87,
1551 83, 154, 156, 163, 31, 172, 104, 196, 78, 144, 100, 3, 54, 202, 67, 177,
1552 217, 80, 207, 235, 48, 12, 127, 78, 116, 96, 238, 226, 97, 154, 97, 120,
1553 19, 33, 89, 14, 160, 149, 243, 246, 196, 219, 74, 113, 225, 92, 32, 216,
1554 10, 50, 176, 127, 113, 63, 157, 143, 190, 245, 94, 244, 103, 85, 143, 162,
1555 61, 177, 203, 240, 204, 55, 183, 226, 251, 205, 53, 25, 19, 197, 160, 34,
1556 42, 128, 169, 80, 11, 210, 133, 105, 128, 175, 107, 72, 222, 130, 95, 209,
1557 93, 161, 16, 35, 244, 178, 236, 100, 20, 129, 190, 118, 246, 108, 68, 206,
1558 105, 58, 91, 90, 149, 0, 168, 95, 115, 63, 54, 240, 7, 164, 186, 100,
1559 76, 81, 225, 58, 178, 14, 46, 79, 31, 226, 180, 34, 164, 191, 84, 22,
1560 244, 90, 105, 13, 83, 133, 230, 81, 45, 49, 157, 84, 22, 168, 167, 205,
1561 219, 123, 209, 80, 87, 205, 180, 152, 162, 225, 229, 142, 72, 250, 240, 134,
1562 185, 145, 112, 149, 25, 185, 198, 174, 213, 83, 145, 151, 228, 138, 96, 152,
1563 242, 251, 227, 53, 229, 136, 37, 147, 184, 141, 104, 221, 51, 219, 21, 93,
1564 42, 253, 183, 57, 203, 92, 7, 240, 82, 171, 103, 167, 115, 233, 175, 142,
1565 8, 112, 10, 56, 44, 192, 231, 79, 18, 8, 68, 128, 106, 121, 225, 149,
1566 30, 210, 173, 86, 240, 30, 138, 197, 89, 213, 63, 161, 106, 65, 141, 57,
1567 96, 102, 191, 28, 56, 9, 201, 3, 248, 113, 118, 51, 121, 247, 83, 135,
1568 51, 54, 14, 19, 49, 175, 59, 206, 112, 172, 155, 243, 75, 19, 154, 102,
1569 188, 11, 76, 198, 136, 11, 44, 154, 139, 48, 34, 194, 116, 170, 198, 127,
1570 132, 231, 200, 44, 61, 210, 93, 20, 159, 201, 183, 39, 78, 178, 225, 112,
1571 50, 254, 198, 200, 207, 18, 196, 209, 222, 252, 67, 56, 186, 71, 24, 210,
1572 30, 105, 32, 102, 99, 239, 195, 191, 131, 246, 65, 121, 91, 66, 112, 28,
1573 170, 67, 28, 144, 187, 46, 117, 97, 187, 240, 250, 118, 249, 68, 151, 248,
1574 219, 208, 103, 242, 166, 122, 220, 59, 50, 215, 90, 160, 15, 15, 96, 89,
1575 167, 87, 22, 253, 137, 202, 126, 145, 162, 171, 97, 181, 102, 50, 107, 230,
1576 31, 183, 133, 105, 23, 233, 228, 13, 247, 169, 79, 53, 76, 138, 29, 51,
1577 53, 221, 126, 199, 47, 153, 184, 183, 198, 109, 192, 203, 178, 26, 115, 177,
1578 118, 158, 181, 43, 48, 174, 195, 253, 43, 18, 172, 171, 101, 129, 255, 63,
1579 41, 49, 160, 15, 86, 108, 235, 87, 115, 36, 93, 46, 164, 152, 49, 31,
1580 137, 125, 174, 115, 196, 240, 117, 226, 183, 151, 73, 30, 75, 59, 61, 160,
1581 96, 157, 215, 246, 160, 136, 82, 95, 181, 13, 207, 158, 106, 81, 18, 27,
1582 182, 35, 249, 72, 148, 128, 15, 82, 68, 197, 0, 159, 149, 239, 34, 250,
1583 171, 70, 200, 219, 214, 18, 134, 14, 71, 69, 219, 145, 208, 125, 65, 232,
1584 201, 212, 148, 39, 208, 142, 54, 38, 32, 154, 124, 35, 76, 173, 240, 232,
1585 23, 74, 183, 118, 137, 244, 180, 149, 195, 198, 105, 25, 246, 236, 155, 88,
1586 230, 134, 32, 126, 183, 72, 127, 129, 139, 161, 224, 222, 127, 107, 201, 78,
1587 227, 207, 10, 48, 9, 199, 240, 176, 49, 165, 95, 200, 101, 89, 40, 229,
1588 28, 8, 41, 193, 173, 218, 63, 229, 216, 170, 82, 90, 162, 243, 0, 125,
1589 248, 79, 186, 228, 44, 197, 178, 58, 196, 251, 85, 19, 254, 130, 110, 78,
1590 91, 217, 146, 16, 90, 221, 6, 129, 173, 73, 56, 77, 72, 19, 8, 14,
1591 129, 84, 19, 88, 146, 252, 137, 165, 222, 7, 199, 107, 135, 13, 253, 137,
1592 180, 184, 240, 37, 238, 133, 135, 80, 170, 172, 60, 80, 94, 130, 246, 166,
1593 63, 181, 30, 103, 97, 138, 193, 148, 96, 82, 61, 47, 188, 230, 118, 65,
1594 74, 28, 123, 50, 73, 12, 187, 123, 129, 19, 95, 213, 61, 153, 85, 243,
1595 44, 195, 249, 250, 121, 175, 42, 187, 154, 233, 91, 217, 49, 130, 129, 172,
1596 250, 182, 203, 30, 93, 213, 217, 24, 28, 198, 4, 208, 61, 207, 108, 120,
1597 22, 39, 136, 252, 123, 15, 188, 34, 35, 177, 35, 134, 178, 221, 217, 22,
1598 51, 18, 22, 215, 47, 68, 120, 130, 0, 192, 242, 170, 170, 202, 220, 179,
1599 185, 81, 204, 10, 115, 181, 231, 246, 172, 38, 43, 145, 56, 171, 219, 34,
1600 17, 96, 165, 209, 53, 44, 68, 74, 236, 249, 192, 35, 204, 123, 56, 118,
1601 174, 172, 151, 249, 36, 21, 133, 119, 237, 232, 61, 125, 6, 124, 200, 62,
1602 68, 67, 40, 196, 202, 84, 213, 160, 237, 85, 249, 125, 41, 187, 126, 48,
1603 152, 124, 104, 211, 127, 96, 167, 184, 23, 161, 68, 106, 119, 224, 226, 148,
1604 234, 54, 155, 168, 186, 193, 167, 15, 242, 100, 82, 15, 205, 247, 34, 24,
1605 134, 152, 115, 132, 114, 196, 0, 136, 242, 73, 91, 35, 90, 4, 161, 138,
1606 163, 21, 16, 244, 60, 158, 199, 246, 233, 150, 10, 142, 248, 196, 224, 129,
1607 8, 158, 81, 11, 92, 96, 197, 23, 45, 104, 235, 250, 9, 31, 47, 153,
1608 116, 22, 170, 186, 150, 46, 214, 246, 75, 116, 4, 242, 147, 168, 177, 134,
1609 143, 149, 36, 139, 224, 127, 143, 167, 208, 115, 158, 250, 132, 4, 124, 204,
1610 99, 217, 239, 97, 5, 38, 50, 17, 176, 171, 96, 92, 88, 219, 195, 184,
1611 160, 158, 175, 10, 175, 33, 245, 28, 55, 56, 207, 47, 46, 114, 108, 196,
1612 101, 93, 39, 227, 183, 40, 40, 109, 121, 123, 90, 85, 162, 165, 227, 200,
1613 238, 136, 223, 36, 77, 179, 45, 156, 51, 95, 33, 15, 219, 71, 37, 98,
1614 141, 150, 179, 78, 217, 221, 130, 186, 155, 84, 146, 217, 210, 202, 91, 212,
1615 50, 129, 188, 203, 28, 213, 10, 230, 40, 47, 215, 77, 161, 88, 71, 56,
1616 82, 124, 130, 249, 70, 139, 142, 23, 78, 139, 252, 32, 223, 90, 214, 27,
1617 94, 23, 12, 240, 77, 145, 71, 172, 75, 235, 141, 83, 145, 50, 101, 166,
1618 87, 154, 179, 203, 27, 233, 169, 45, 28, 41, 211, 46, 144, 123, 62, 62,
1619 205, 178, 180, 89, 32, 194, 238, 151, 217, 164, 214, 241, 164, 96, 215, 46,
1620 141, 189, 86, 97, 143, 4, 227, 73, 20, 221, 238, 66, 3, 132, 135, 229,
1621 22, 60, 152, 102, 211, 20, 250, 225, 36, 212, 131, 182, 212, 216, 84, 141,
1622 133, 86, 163, 136, 107, 219, 8, 100, 189, 138, 217, 60, 131, 237, 64, 37,
1623 241, 85, 140, 47, 54, 75, 58, 76, 66, 104, 245, 201, 199, 236, 188, 71,
1624 30, 171, 233, 190, 81, 120, 166, 63, 237, 249, 233, 192, 5, 24, 231, 193,
1625 39, 99, 101, 108, 92, 109, 156, 211, 111, 87, 157, 130, 16, 58, 113, 47,
1626 101, 152, 60, 183, 37, 227, 52, 255, 213, 16, 112, 234, 223, 197, 101, 73,
1627 120, 94, 60, 158, 82, 227, 131, 13, 4, 167, 78, 126, 120, 154, 26, 246,
1628 35, 145, 40, 150, 7, 208, 243, 100, 68, 89, 200, 139, 138, 121, 37, 28,
1629 35, 197, 227, 79, 19, 130, 171, 91, 116, 57, 153, 140, 217, 236, 7, 180,
1630 221, 226, 163, 199, 158, 131, 200, 37, 48, 41, 157, 175, 139, 71, 53, 172,
1631 113, 159, 133, 47, 139, 113, 157, 40, 88, 44, 115, 105, 104, 219, 211, 18,
1632 164, 170, 127, 5, 178, 115, 181, 143, 30, 173, 6, 186, 183, 45, 56, 94,
1633 252, 210, 171, 154, 10, 17, 34, 153, 4, 11, 176, 85, 144, 114, 36, 247,
1634 34, 67, 187, 69, 164, 168, 120, 82, 186, 46, 15, 147, 105, 48, 76, 235,
1635 15, 218, 86, 160, 19, 220, 119, 241, 103, 252, 196, 58, 74, 131, 214, 109,
1636 17, 175, 75, 203, 167, 17, 60, 52, 251, 130, 55, 184, 165, 83, 225, 231,
1637 184, 208, 196, 88, 70, 8, 3, 43, 78, 107, 158, 180, 130, 248, 194, 16,
1638 46, 54, 100, 98, 121, 67, 185, 17, 181, 210, 5, 15, 178, 196, 80, 220,
1639 28, 103, 220, 231, 167, 10, 122, 225, 194, 118, 157, 192, 195, 205, 130, 253,
1640 94, 246, 177, 74, 149, 90, 120, 188, 230, 48, 77, 168, 50, 76, 130, 136,
1641 200, 219, 209, 192, 20, 10, 193, 97, 205, 136, 98, 117, 128, 170, 198, 220,
1642 218, 180, 178, 186, 150, 227, 196, 161, 4, 244, 124, 31, 85, 243, 34, 78,
1643 187, 226, 164, 167, 122, 56, 114, 232, 140, 189, 160, 19, 184, 223, 165, 202,
1644 86, 210, 102, 183, 50, 30, 109, 134, 23, 102, 171, 130, 93, 106, 2, 117,
1645 80, 82, 197, 193, 247, 137, 255, 255, 127, 38, 13, 82, 103, 51, 179, 220,
1646 133, 247, 104, 152, 160, 229, 160, 214, 152, 157, 87, 183, 82, 43, 36, 19,
1647 80, 192, 122, 186, 201, 116, 190, 220, 131, 228, 153, 197, 212, 112, 233, 124,
1648 114, 212, 106, 195, 129, 141, 204, 238, 98, 247, 90, 244, 23, 118, 2, 168,
1649 71, 48, 223, 253, 187, 16, 204, 230, 46, 221, 30, 243, 27, 129, 155, 210,
1650 159, 84, 56, 212, 197, 131, 174, 59, 85, 108, 80, 36, 31, 210, 71, 228,
1651 254, 171, 67, 129, 154, 175, 245, 140, 11, 167, 43, 69, 231, 227, 91, 183,
1652 133, 108, 4, 151, 128, 64, 243, 215, 74, 160, 186, 217, 38, 28, 186, 75,
1653 178, 151, 214, 5, 49, 158, 242, 126, 91, 249, 88, 156, 110, 124, 205, 125,
1654 227, 19, 235, 172, 103, 200, 190, 121, 169, 140, 118, 156, 21, 152, 34, 31,
1655 235, 46, 191, 107, 37, 109, 135, 112, 195, 9, 245, 43, 96, 232, 74, 8,
1656 193, 131, 70, 140, 180, 204, 219, 243, 72, 70, 16, 11, 227, 0, 27, 252,
1657 142, 183, 199, 103, 114, 149, 221, 235, 69, 92, 245, 9, 227, 43, 173, 139,
1658 119, 85, 104, 214, 84, 126, 244, 243, 122, 14, 164, 185, 104, 176, 55, 133,
1659 44, 28, 208, 232, 50, 71, 32, 78, 200, 95, 153, 70, 82, 243, 91, 164,
1660 64, 159, 173, 244, 103, 78, 29, 218, 209, 124, 118, 153, 42, 69, 240, 237,
1661 228, 33, 155, 17, 61, 27, 233, 171, 6, 240, 48, 113, 243, 134, 207, 120,
1662 216, 61, 188, 247, 231, 185, 163, 43, 140, 138, 235, 132, 219, 47, 38, 93,
1663 205, 6, 247, 195, 200, 79, 87, 111, 210, 54, 222, 179, 108, 163, 253, 22,
1664 22, 101, 180, 6, 61, 41, 91, 95, 237, 186, 166, 110, 225, 139, 205, 146,
1665 41, 133, 153, 114, 63, 48, 110, 208, 168, 38, 233, 141, 23, 136, 236, 22,
1666 220, 14, 62, 224, 46, 20, 193, 181, 107, 14, 234, 156, 234, 108, 30, 112,
1667 235, 126, 237, 189, 252, 240, 240, 3, 175, 210, 85, 35, 230, 115, 219, 184,
1668 173, 48, 84, 250, 52, 113, 44, 187, 173, 253, 153, 177, 32, 127, 98, 100,
1669 180, 211, 71, 146, 82, 1, 69, 200, 165, 198, 121, 133, 232, 0, 237, 157,
1670 169, 31, 134, 106, 243, 245, 16, 228, 53, 133, 143, 255, 123, 175, 19, 10,
1671 98, 117, 180, 38, 50, 190, 63, 70, 106, 8, 221, 78, 66, 129, 190, 181,
1672 165, 119, 242, 101, 19, 18, 181, 91, 223, 30, 93, 253, 74, 242, 112, 139,
1673 30, 121, 25, 100, 144, 32, 212, 143, 3, 96, 134, 113, 193, 190, 51, 8,
1674 60, 108, 88, 168, 142, 47, 217, 173, 44, 207, 174, 161, 237, 179, 147, 4,
1675 30, 5, 177, 202, 43, 239, 15, 135, 44, 216, 10, 183, 63, 27, 159, 195,
1676 56, 238, 95, 213, 45, 44, 252, 4, 101, 233, 38, 88, 66, 126, 149, 196,
1677 87, 211, 55, 38, 17, 92, 26, 76, 156, 183, 136, 154, 166, 219, 125, 10,
1678 88, 240, 97, 14, 86, 67, 4, 74, 236, 71, 72, 10, 49, 18, 158, 148,
1679 128, 15, 241, 17, 9, 236, 243, 22, 116, 160, 65, 166, 34, 113, 76, 41,
1680 100, 153, 184, 22, 62, 252, 220, 47, 180, 124, 103, 242, 104, 13, 244, 136,
1681 33, 146, 33, 176, 31, 159, 235, 29, 221, 255, 182, 90, 183, 158, 186, 155,
1682 85, 137, 173, 129, 71, 91, 147, 17, 30, 240, 214, 110, 79, 64, 21, 129,
1683 97, 109, 253, 198, 203, 116, 235, 89, 166, 151, 116, 106, 194, 27, 51, 177,
1684 23, 119, 199, 227, 50, 143, 129, 234, 188, 217, 9, 136, 48, 115, 5, 252,
1685 241, 195, 116, 239, 68, 176, 55, 121, 2, 38, 229, 224, 94, 204, 200, 115,
1686 84, 235, 131, 172, 242, 56, 208, 41, 21, 36, 113, 156, 137, 6, 225, 132,
1687 4, 181, 193, 84, 10, 213, 155, 150, 72, 127, 23, 107, 255, 105, 250, 61,
1688 234, 211, 225, 169, 93, 63, 138, 95, 201, 74, 208, 99, 119, 184, 219, 62,
1689 86, 163, 142, 35, 24, 86, 92, 224, 53, 84, 57, 101, 113, 76, 26, 78,
1690 174, 49, 28, 234, 153, 240, 27, 114, 87, 133, 130, 78, 66, 144, 205, 152,
1691 171, 169, 136, 219, 142, 223, 145, 149, 196, 6, 167, 109, 52, 188, 0, 98,
1692 242, 254, 184, 129, 250, 63, 244, 10, 97, 188, 7, 137, 183, 165, 68, 91,
1693 26, 188, 230, 246, 227, 12, 217, 170, 224, 119, 135, 243, 149, 88, 67, 23,
1694 117, 173, 130, 164, 233, 244, 251, 11, 123, 57, 80, 111, 249, 146, 231, 213,
1695 158, 26, 236, 250, 213, 228, 117, 251, 101, 128, 8, 241, 251, 36, 40, 149,
1696 148, 60, 146, 48, 104, 121, 163, 233, 2, 24, 10, 21, 93, 137, 124, 8,
1697 115, 220, 255, 107, 153, 105, 6, 255, 32, 160, 96, 74, 84, 184, 31, 155,
1698 118, 206, 58, 131, 111, 150, 137, 145, 22, 45, 138, 211, 118, 151, 248, 189,
1699 64, 82, 222, 9, 137, 114, 59, 89, 77, 249, 245, 195, 146, 198, 43, 209,
1700 186, 151, 121, 136, 170, 81, 53, 43, 126, 15, 62, 88, 171, 206, 232, 34,
1701 99, 52, 6, 22, 126, 140, 32, 181, 122, 253, 230, 127, 211, 254, 61, 254,
1702 108, 114, 38, 214, 164, 244, 87, 243, 187, 185, 57, 105, 24, 244, 59, 254,
1703 92, 143, 235, 38, 70, 177, 126, 123, 61, 243, 45, 127, 76, 127, 39, 45,
1704 254, 239, 67, 221, 24, 81, 24, 130, 247, 106, 239, 93, 18, 57, 242, 4,
1705 223, 131, 86, 249, 241, 81, 149, 230, 154, 17, 14, 179, 194, 234, 17, 85,
1706 188, 33, 162, 62, 73, 157, 253, 248, 111, 97, 205, 47, 74, 223, 192, 185,
1707 212, 153, 240, 156, 104, 64, 46, 209, 146, 56, 27, 21, 184, 95, 107, 95,
1708 101, 243, 133, 146, 194, 240, 51, 109, 158, 225, 18, 80, 66, 4, 79, 252,
1709 174, 187, 55, 230, 54, 51, 42, 87, 34, 159, 155, 184, 118, 167, 150, 46,
1710 32, 156, 244, 124, 222, 84, 247, 12, 231, 119, 237, 135, 225, 227, 97, 178,
1711 37, 208, 112, 126, 32, 227, 60, 239, 194, 183, 169, 208, 221, 250, 180, 56,
1712 137, 67, 153, 170, 242, 54, 55, 48, 219, 79, 106, 249, 250, 56, 130, 184,
1713 43, 56, 114, 175, 122, 249, 107, 188, 63, 169, 25, 43, 68, 61, 246, 47,
1714 191, 117, 150, 7, 163, 144, 42, 186, 5, 195, 11, 68, 215, 219, 87, 213,
1715 42, 84, 99, 37, 29, 78, 34, 180, 131, 15, 171, 186, 225, 163, 204, 225,
1716 72, 198, 227, 122, 245, 4, 133, 40, 134, 17, 61, 112, 55, 159, 37, 118,
1717 112, 173, 210, 126, 9, 23, 209, 65, 14, 109, 16, 247, 254, 45, 170, 33,
1718 143, 35, 107, 134, 51, 132, 135, 226, 40, 112, 156, 122, 5, 31, 37, 113,
1719 24, 1, 153, 3, 180, 227, 249, 172, 93, 20, 79, 126, 42, 254, 100, 80,
1720 86, 180, 123, 71, 213, 32, 178, 28, 63, 75, 177, 246, 25, 119, 33, 236,
1721 194, 31, 94, 169, 97, 96, 42, 29, 165, 234, 199, 12, 76, 8, 242, 229,
1722 160, 130, 169, 76, 120, 159, 25, 18, 36, 182, 222, 210, 105, 251, 2, 40,
1723 111, 212, 249, 119, 48, 137, 50, 71, 146, 216, 47, 18, 60, 194, 18, 119,
1724 197, 216, 84, 170, 143, 241, 61, 207, 206, 238, 51, 39, 145, 171, 81, 108,
1725 64, 0, 229, 83, 190, 81, 149, 27, 77, 44, 34, 134, 178, 250, 9, 244,
1726 128, 175, 124, 28, 41, 116, 254, 30, 162, 88, 207, 231, 222, 155, 224, 234,
1727 201, 56, 119, 191, 190, 158, 195, 16, 153, 152, 99, 244, 60, 207, 205, 133,
1728 34, 101, 0, 104, 144, 141, 121, 168, 44, 40, 234, 49, 35, 136, 39, 242,
1729 14, 198, 188, 124, 161, 135, 113, 180, 68, 218, 10, 47, 223, 190, 0, 238,
1730 109, 149, 149, 25, 14, 218, 109, 85, 106, 125, 45, 29, 63, 122, 74, 184,
1731 39, 153, 72, 81, 69, 212, 62, 80, 161, 110, 103, 56, 254, 7, 198, 201,
1732 47, 202, 145, 147, 115, 7, 252, 21, 157, 211, 102, 40, 117, 116, 41, 110,
1733 189, 45, 41, 128, 46, 18, 40, 228, 43, 159, 202, 90, 114, 78, 193, 9,
1734 237, 172, 59, 89, 50, 218, 47, 142, 139, 118, 146, 201, 8, 158, 116, 71,
1735 133, 105, 177, 199, 24, 202, 219, 64, 136, 101, 162, 11, 225, 13, 60, 217,
1736 13, 125, 9, 38, 224, 90, 78, 166, 145, 101, 167, 132, 24, 58, 73, 19,
1737 2, 185, 83, 148, 110, 133, 191, 76, 71, 18, 168, 103, 0, 123, 195, 39,
1738 41, 243, 215, 62, 38, 156, 101, 42, 144, 43, 125, 154, 46, 152, 74, 242,
1739 251, 158, 180, 189, 228, 165, 64, 75, 220, 184, 160, 9, 23, 57, 138, 16,
1740 88, 240, 5, 234, 106, 188, 171, 120, 55, 203, 43, 72, 33, 67, 129, 26,
1741 242, 128, 89, 144, 226, 129, 58, 143, 110, 185, 216, 158, 238, 175, 34, 121,
1742 59, 49, 76, 178, 81, 88, 181, 23, 219, 66, 1, 228, 34, 143, 250, 41,
1743 77, 7, 245, 65, 3, 203, 53, 144, 140, 194, 71, 27, 10, 175, 218, 149,
1744 242, 213, 150, 9, 199, 22, 202, 155, 5, 44, 23, 111, 102, 5, 150, 32,
1745 62, 31, 220, 1, 129, 151, 109, 27, 215, 54, 235, 104, 157, 123, 8, 89,
1746 94, 161, 197, 0, 163, 75, 124, 41, 240, 192, 109, 9, 202, 124, 25, 82,
1747 95, 243, 170, 63, 91, 248, 4, 63, 47, 208, 243, 61, 85, 62, 107, 32,
1748 87, 19, 208, 87, 120, 234, 108, 244, 44, 158, 238, 91, 185, 219, 105, 13,
1749 254, 85, 208, 93, 148, 144, 160, 98, 237, 72, 27, 59, 119, 22, 99, 52,
1750 193, 190, 57, 171, 46, 247, 180, 126, 30, 16, 200, 88, 35, 212, 215, 253,
1751 218, 25, 96, 40, 44, 53, 29, 129, 153, 154, 197, 238, 84, 201, 244, 106,
1752 184, 178, 127, 54, 198, 60, 160, 98, 4, 229, 110, 220, 225, 26, 254, 238,
1753 123, 69, 248, 222, 43, 122, 207, 63, 166, 246, 171, 129, 231, 7, 89, 132,
1754 245, 76, 55, 174, 184, 93, 139, 221, 250, 11, 86, 239, 248, 14, 98, 226,
1755 66, 146, 45, 59, 106, 78, 6, 253, 6, 128, 53, 174, 7, 36, 100, 130,
1756 22, 47, 157, 147, 27, 31, 15, 97, 122, 46, 137, 84, 126, 104, 48, 217,
1757 236, 131, 51, 253, 147, 23, 35, 133, 43, 183, 124, 197, 150, 85, 170, 39,
1758 96, 227, 44, 130, 51, 83, 224, 22, 177, 39, 65, 125, 98, 28, 162, 56,
1759 25, 112, 81, 50, 28, 118, 184, 45, 236, 226, 87, 117, 111, 219, 157, 34,
1760 224, 77, 68, 59, 91, 80, 177, 178, 188, 203, 247, 133, 130, 15, 61, 125,
1761 252, 18, 201, 87, 157, 158, 47, 5, 151, 104, 231, 127, 161, 154, 172, 224,
1762 74, 95, 195, 121, 175, 200, 18, 26, 240, 194, 222, 85, 189, 238, 106, 136,
1763 195, 28, 170, 10, 115, 25, 236, 203, 127, 254, 103, 79, 175, 57, 159, 102,
1764 193, 106, 136, 130, 195, 16, 19, 14, 240, 130, 74, 217, 154, 5, 217, 88,
1765 21, 113, 205, 138, 241, 209, 39, 255, 182, 100, 41, 243, 199, 191, 7, 123,
1766 185, 7, 186, 28, 32, 71, 236, 16, 220, 222, 5, 122, 74, 55, 95, 19,
1767 230, 127, 201, 130, 180, 143, 142, 149, 229, 43, 81, 95, 32, 138, 165, 42,
1768 136, 231, 106, 34, 90, 135, 60, 60, 105, 191, 50, 195, 62, 230, 189, 100,
1769 41, 110, 61, 204, 139, 237, 185, 208, 136, 61, 249, 12, 20, 230, 48, 141,
1770 65, 17, 204, 126, 215, 73, 77, 129, 49, 230, 39, 247, 222, 109, 50, 151,
1771 255, 246, 141, 254, 233, 117, 156, 172, 113, 74, 72, 133, 218, 227, 4, 192,
1772 27, 185, 21, 99, 61, 34, 52, 112, 74, 18, 149, 38, 195, 43, 154, 8,
1773 16, 189, 142, 139, 167, 137, 2, 155, 165, 1, 255, 158, 107, 131, 141, 112,
1774 87, 102, 97, 12, 228, 30, 143, 60, 14, 238, 183, 145, 88, 116, 187, 64,
1775 138, 136, 138, 24, 16, 241, 126, 37, 103, 99, 203, 164, 198, 129, 140, 189,
1776 18, 178, 241, 154, 7, 81, 8, 75, 196, 131, 121, 19, 52, 90, 125, 71,
1777 179, 8, 102, 149, 117, 88, 2, 58, 115, 41, 254, 118, 205, 28, 244, 153,
1778 79, 179, 136, 194, 59, 55, 233, 48, 87, 218, 151, 218, 172, 109, 72, 156,
1779 112, 175, 129, 111, 124, 151, 112, 69, 175, 237, 175, 208, 35, 15, 70, 189,
1780 245, 118, 229, 51, 121, 237, 106, 57, 190, 157, 42, 37, 107, 108, 240, 142,
1781 180, 123, 58, 243, 99, 76, 153, 94, 235, 148, 3, 146, 198, 250, 3, 176,
1782 73, 105, 64, 3, 129, 155, 69, 66, 114, 55, 53, 31, 200, 171, 9, 127,
1783 227, 81, 238, 0, 29, 54, 79, 184, 213, 44, 21, 21, 106, 118, 193, 193,
1784 132, 216, 89, 39, 107, 40, 29, 198, 229, 184, 123, 32, 225, 148, 78, 40,
1785 236, 108, 100, 112, 139, 33, 176, 201, 41, 56, 180, 87, 100, 161, 247, 181,
1786 48, 215, 32, 88, 3, 2, 69, 189, 162, 185, 155, 129, 131, 151, 170, 201,
1787 203, 192, 141, 27, 38, 21, 174, 100, 48, 138, 216, 113, 123, 137, 161, 92,
1788 153, 129, 184, 21, 205, 18, 190, 184, 189, 57, 130, 168, 67, 161, 16, 207,
1789 223, 35, 254, 40, 169, 65, 104, 178, 164, 88, 198, 40, 58, 221, 211, 96,
1790 91, 98, 147, 157, 193, 121, 211, 28, 185, 217, 84, 58, 236, 70, 181, 35,
1791 58, 27, 111, 52, 213, 103, 93, 154, 18, 60, 201, 180, 29, 28, 85, 126,
1792 170, 190, 231, 64, 27, 191, 83, 158, 125, 124, 43, 172, 198, 25, 151, 108,
1793 116, 7, 164, 114, 92, 215, 197, 222, 31, 231, 41, 112, 42, 172, 207, 164,
1794 87, 123, 138, 156, 78, 44, 131, 127, 155, 114, 138, 219, 52, 223, 150, 230,
1795 94, 165, 103, 45, 139, 238, 161, 208, 117, 178, 225, 67, 90, 90, 110, 176,
1796 20, 110, 4, 189, 194, 138, 12, 168, 150, 181, 139, 54, 241, 243, 87, 19,
1797 136, 251, 68, 1, 239, 85, 161, 139, 67, 117, 239, 162, 214, 96, 205, 66,
1798 79, 13, 47, 16, 72, 171, 33, 246, 93, 197, 65, 115, 108, 87, 83, 116,
1799 49, 66, 34, 18, 101, 65, 24, 178, 147, 34, 61, 242, 51, 246, 191, 249,
1800 164, 200, 210, 150, 146, 46, 157, 137, 147, 161, 25, 101, 217, 142, 125, 241,
1801 73, 115, 83, 86, 208, 167, 233, 77, 109, 89, 197, 219, 108, 206, 54, 99,
1802 113, 101, 77, 41, 251, 24, 203, 179, 28, 109, 62, 248, 113, 197, 82, 35,
1803 89, 132, 11, 184, 194, 237, 142, 71, 81, 173, 36, 220, 103, 66, 254, 78,
1804 252, 105, 211, 89, 149, 132, 218, 43, 45, 77, 64, 137, 248, 238, 145, 172,
1805 64, 78, 123, 225, 161, 166, 202, 94, 210, 227, 36, 254, 153, 230, 23, 21,
1806 82, 125, 167, 115, 10, 25, 141, 144, 226, 25, 151, 22, 157, 162, 2, 250,
1807 16, 161, 48, 111, 121, 9, 191, 229, 41, 136, 83, 163, 165, 10, 195, 34,
1808 56, 145, 166, 99, 184, 180, 180, 159, 95, 110, 17, 46, 227, 245, 97, 207,
1809 27, 113, 121, 55, 196, 29, 248, 171, 108, 250, 236, 1, 31, 108, 15, 34,
1810 233, 32, 250, 127, 67, 159, 151, 145, 5, 171, 219, 102, 159, 137, 231, 130,
1811 229, 177, 209, 253, 150, 217, 76, 62, 111, 42, 25, 152, 169, 83, 245, 164,
1812 127, 61, 128, 35, 234, 8, 69, 152, 103, 107, 18, 98, 101, 214, 205, 136,
1813 68, 165, 54, 48, 189, 59, 29, 254, 128, 255, 249, 46, 23, 246, 29, 131,
1814 185, 27, 160, 235, 16, 52, 232, 247, 100, 230, 137, 91, 111, 48, 202, 31,
1815 126, 167, 162, 45, 159, 66, 215, 176, 32, 5, 255, 82, 108, 31, 184, 89,
1816 6, 73, 8, 209, 86, 202, 122, 111, 132, 39, 140, 160, 74, 148, 254, 21,
1817 33, 80, 180, 165, 241, 182, 74, 205, 243, 194, 17, 216, 113, 8, 239, 190,
1818 34, 158, 31, 58, 223, 249, 51, 74, 174, 191, 157, 185, 12, 98, 190, 135,
1819 91, 198, 25, 221, 76, 118, 88, 240, 184, 188, 70, 92, 36, 208, 124, 43,
1820 228, 200, 86, 193, 178, 251, 115, 233, 240, 11, 134, 91, 230, 141, 195, 161,
1821 255, 12, 103, 85, 187, 84, 129, 202, 48, 85, 155, 242, 226, 185, 109, 126,
1822 2, 8, 174, 221, 203, 67, 182, 52, 114, 243, 219, 32, 89, 183, 125, 18,
1823 209, 200, 99, 116, 123, 185, 17, 250, 250, 223, 129, 221, 147, 249, 142, 238,
1824 25, 230, 85, 85, 141, 248, 144, 13, 241, 3, 10, 253, 74, 96, 82, 115,
1825 210, 221, 17, 79, 213, 119, 27, 192, 55, 41, 161, 125, 167, 87, 45, 10,
1826 246, 22, 76, 245, 83, 4, 160, 242, 62, 221, 89, 206, 80, 235, 33, 34,
1827 81, 125, 28, 117, 233, 167, 89, 6, 132, 138, 130, 88, 227, 245, 44, 138,
1828 180, 42, 215, 4, 177, 9, 167, 135, 173, 234, 185, 119, 100, 108, 4, 237,
1829 145, 52, 227, 61, 231, 130, 77, 97, 204, 175, 136, 225, 27, 29, 36, 142,
1830 151, 129, 170, 105, 233, 88, 57, 122, 219, 60, 16, 70, 253, 218, 123, 188,
1831 49, 210, 121, 115, 150, 249, 213, 246, 76, 2, 197, 196, 24, 169, 143, 175,
1832 230, 138, 32, 81, 191, 13, 166, 211, 252, 110, 84, 221, 244, 13, 45, 116,
1833 242, 123, 18, 153, 163, 187, 46, 33, 28, 160, 219, 179, 85, 166, 2, 125,
1834 92, 99, 147, 61, 4, 200, 245, 135, 172, 187, 4, 101, 102, 85, 79, 168,
1835 53, 222, 129, 150, 252, 253, 252, 45, 39, 64, 33, 104, 69, 239, 180, 71,
1836 234, 177, 245, 185, 59, 238, 88, 65, 58, 156, 84, 238, 150, 46, 236, 65,
1837 229, 33, 221, 168, 102, 249, 163, 155, 36, 189, 54, 211, 154, 247, 69, 45,
1838 47, 140, 119, 63, 143, 129, 163, 38, 120, 88, 216, 66, 117, 118, 176, 93,
1839 153, 42, 129, 198, 45, 203, 26, 150, 43, 17, 53, 104, 196, 82, 234, 59,
1840 129, 81, 14, 104, 229, 8, 204, 187, 8, 168, 112, 18, 211, 154, 195, 181,
1841 87, 241, 234, 148, 68, 229, 231, 23, 134, 14, 97, 119, 22, 48, 123, 17,
1842 115, 105, 180, 124, 135, 51, 177, 104, 187, 23, 210, 76, 161, 8, 36, 57,
1843 218, 252, 142, 236, 154, 178, 119, 129, 189, 255, 208, 56, 25, 70, 68, 50,
1844 57, 172, 77, 154, 163, 80, 33, 180, 118, 57, 105, 97, 5, 50, 158, 185,
1845 226, 119, 237, 163, 47, 79, 233, 114, 160, 246, 93, 238, 197, 217, 240, 55,
1846 121, 37, 138, 104, 245, 181, 30, 133, 129, 94, 97, 31, 188, 121, 119, 74,
1847 227, 167, 196, 194, 108, 185, 63, 242, 0, 224, 8, 162, 49, 173, 57, 250,
1848 12, 113, 238, 241, 0, 180, 180, 198, 57, 180, 248, 243, 214, 122, 103, 81,
1849 205, 243, 232, 213, 39, 122, 142, 107, 4, 63, 123, 147, 22, 78, 174, 200,
1850 33, 27, 16, 76, 139, 230, 32, 101, 246, 228, 246, 89, 15, 30, 11, 87,
1851 174, 70, 195, 104, 14, 26, 209, 149, 19, 254, 121, 62, 186, 224, 56, 247,
1852 10, 237, 102, 83, 215, 211, 22, 123, 161, 52, 251, 122, 142, 228, 191, 93,
1853 151, 174, 176, 166, 64, 184, 254, 113, 140, 214, 109, 159, 126, 201, 95, 245,
1854 167, 180, 165, 106, 61, 83, 143, 239, 68, 254, 0, 201, 237, 162, 231, 108,
1855 152, 131, 248, 39, 149, 131, 80, 224, 41, 14, 157, 96, 16, 251, 139, 15,
1856 153, 45, 29, 84, 116, 154, 221, 234, 127, 39, 10, 244, 3, 92, 154, 93,
1857 125, 209, 252, 144, 73, 139, 47, 93, 98, 78, 7, 61, 173, 117, 46, 155,
1858 73, 76, 127, 202, 5, 223, 113, 215, 86, 54, 82, 0, 105, 16, 52, 226,
1859 140, 232, 53, 23, 76, 117, 212, 139, 183, 112, 95, 162, 174, 153, 104, 4,
1860 241, 133, 159, 188, 4, 147, 92, 125, 133, 104, 26, 241, 130, 13, 239, 96,
1861 235, 36, 195, 74, 193, 126, 54, 27, 55, 190, 97, 44, 26, 106, 31, 76,
1862 244, 174, 179, 1, 97, 168, 114, 14, 65, 60, 199, 182, 133, 130, 65, 175,
1863 95, 224, 125, 74, 157, 34, 99, 26, 135, 160, 188, 244, 114, 175, 211, 194,
1864 74, 97, 182, 244, 93, 3, 219, 223, 154, 204, 10, 132, 233, 165, 23, 204,
1865 187, 163, 179, 23, 72, 137, 22, 40, 123, 77, 216, 95, 44, 20, 55, 213,
1866 165, 125, 17, 237, 77, 140, 2, 146, 193, 104, 9, 83, 40, 126, 177, 137,
1867 53, 89, 59, 23, 49, 80, 240, 168, 70, 97, 250, 36, 161, 17, 228, 161,
1868 136, 213, 43, 118, 106, 198, 251, 68, 223, 34, 79, 123, 118, 91, 222, 236,
1869 73, 236, 175, 255, 248, 249, 96, 53, 245, 248, 238, 12, 106, 127, 183, 1,
1870 31, 193, 14, 126, 7, 19, 252, 102, 191, 74, 208, 115, 140, 76, 133, 179,
1871 82, 5, 83, 122, 154, 82, 37, 19, 171, 190, 177, 177, 233, 248, 175, 214,
1872 93, 17, 121, 167, 249, 165, 149, 191, 145, 188, 218, 99, 154, 55, 109, 202,
1873 12, 17, 56, 107, 124, 137, 156, 233, 85, 18, 237, 207, 9, 72, 10, 218,
1874 98, 58, 70, 254, 207, 179, 61, 201, 250, 163, 135, 215, 130, 182, 47, 93,
1875 123, 14, 251, 252, 34, 240, 172, 151, 111, 127, 19, 6, 165, 96, 254, 15,
1876 32, 153, 247, 91, 200, 78, 169, 160, 28, 70, 146, 251, 174, 49, 54, 98,
1877 93, 161, 19, 105, 195, 62, 196, 38, 84, 53, 122, 177, 158, 179, 113, 93,
1878 91, 102, 90, 119, 52, 120, 247, 208, 228, 233, 97, 240, 187, 205, 14, 194,
1879 35, 134, 229, 241, 16, 152, 130, 206, 63, 93, 110, 21, 52, 170, 67, 99,
1880 214, 121, 230, 201, 133, 173, 143, 225, 81, 184, 139, 105, 226, 58, 237, 106,
1881 16, 91, 163, 15, 4, 63, 94, 186, 80, 219, 85, 209, 183, 129, 122, 39,
1882 8, 140, 180, 203, 167, 223, 148, 74, 147, 29, 237, 108, 105, 143, 229, 254,
1883 104, 243, 111, 210, 11, 185, 158, 151, 90, 47, 43, 233, 91, 18, 119, 144,
1884 184, 63, 64, 3, 244, 225, 30, 134, 198, 210, 41, 103, 2, 31, 221, 74,
1885 26, 54, 18, 23, 242, 104, 39, 31, 167, 183, 209, 105, 192, 88, 219, 25,
1886 134, 228, 8, 222, 149, 25, 195, 141, 61, 33, 114, 213, 93, 6, 58, 12,
1887 191, 113, 216, 153, 39, 235, 173, 146, 34, 139, 210, 13, 59, 240, 88, 10,
1888 71, 72, 27, 225, 32, 70, 92, 182, 120, 151, 82, 246, 248, 93, 119, 13,
1889 199, 161, 48, 202, 84, 88, 226, 198, 249, 152, 165, 34, 183, 109, 9, 196,
1890 232, 168, 236, 241, 85, 100, 181, 81, 235, 85, 247, 85, 173, 57, 141, 145,
1891 116, 254, 146, 249, 161, 133, 245, 17, 117, 141, 208, 49, 245, 121, 181, 158,
1892 144, 197, 200, 63, 202, 119, 158, 107, 112, 56, 178, 227, 29, 87, 48, 151,
1893 228, 55, 194, 130, 52, 12, 35, 245, 171, 149, 90, 206, 151, 205, 184, 221,
1894 45, 57, 126, 64, 203, 244, 167, 172, 134, 141, 5, 145, 101, 29, 33, 133,
1895 90, 17, 64, 127, 152, 209, 78, 10, 131, 151, 157, 204, 231, 255, 164, 122,
1896 16, 78, 220, 245, 161, 229, 90, 203, 12, 205, 95, 8, 47, 51, 92, 23,
1897 118, 95, 211, 124, 116, 147, 74, 79, 10, 192, 217, 74, 80, 127, 17, 105,
1898 56, 248, 144, 72, 197, 159, 230, 19, 147, 31, 50, 239, 236, 92, 237, 131,
1899 159, 88, 99, 171, 76, 209, 41, 181, 194, 28, 3, 242, 137, 227, 20, 198,
1900 120, 6, 12, 97, 45, 210, 143, 177, 60, 83, 61, 135, 132, 187, 54, 61,
1901 82, 149, 193, 23, 45, 6, 95, 28, 167, 0, 67, 27, 17, 93, 241, 43,
1902 221, 109, 102, 179, 204, 80, 198, 60, 229, 38, 47, 100, 235, 50, 166, 193,
1903 79, 255, 71, 207, 116, 216, 201, 255, 134, 194, 201, 34, 169, 250, 28, 217,
1904 198, 176, 10, 203, 193, 197, 125, 80, 116, 149, 108, 224, 10, 195, 68, 228,
1905 218, 85, 146, 119, 67, 73, 118, 186, 171, 162, 86, 198, 176, 73, 41, 162,
1906 237, 196, 130, 32, 231, 70, 197, 139, 140, 182, 151, 221, 55, 95, 183, 58,
1907 43, 141, 160, 148, 193, 197, 162, 189, 62, 36, 226, 255, 214, 75, 166, 163,
1908 78, 30, 253, 52, 8, 190, 55, 241, 60, 187, 226, 34, 177, 102, 155, 56,
1909 165, 51, 183, 2, 181, 247, 125, 53, 36, 206, 73, 32, 19, 20, 204, 228,
1910 105, 254, 34, 201, 161, 175, 232, 223, 216, 103, 247, 13, 68, 49, 206, 172,
1911 122, 11, 17, 3, 55, 101, 94, 39, 18, 183, 214, 16, 149, 252, 137, 39,
1912 205, 84, 114, 80, 101, 246, 222, 173, 145, 229, 199, 73, 91, 219, 123, 235,
1913 45, 190, 39, 241, 146, 209, 124, 178, 151, 30, 19, 26, 112, 150, 192, 183,
1914 237, 124, 253, 165, 28, 130, 132, 161, 157, 140, 159, 163, 87, 181, 211, 166,
1915 233, 0, 180, 87, 125, 229, 173, 128, 90, 23, 38, 235, 143, 31, 117, 66,
1916 203, 76, 150, 249, 19, 23, 45, 184, 56, 249, 220, 114, 205, 1, 215, 169,
1917 205, 173, 58, 188, 128, 116, 122, 184, 48, 114, 95, 167, 3, 191, 136, 238,
1918 124, 245, 166, 82, 191, 16, 212, 149, 183, 166, 14, 212, 255, 67, 106, 50,
1919 159, 172, 211, 101, 207, 198, 242, 179, 40, 1, 73, 20, 64, 185, 29, 21,
1920 216, 246, 154, 104, 156, 214, 231, 192, 137, 220, 150, 215, 4, 80, 110, 164,
1921 185, 68, 114, 110, 234, 45, 143, 171, 196, 148, 151, 237, 16, 251, 68, 221,
1922 100, 18, 212, 110, 59, 147, 113, 217, 152, 28, 83, 198, 211, 231, 35, 39,
1923 198, 19, 163, 67, 40, 24, 124, 52, 138, 161, 254, 233, 90, 24, 214, 222,
1924 121, 189, 95, 180, 77, 147, 21, 187, 111, 9, 184, 75, 209, 250, 81, 110,
1925 34, 97, 198, 132, 182, 229, 192, 208, 67, 98, 124, 108, 141, 89, 37, 124,
1926 11, 5, 128, 76, 13, 220, 167, 201, 182, 151, 45, 235, 37, 142, 35, 192,
1927 28, 209, 254, 40, 15, 22, 183, 181, 138, 144, 72, 21, 48, 9, 133, 127,
1928 74, 187, 19, 170, 88, 209, 119, 194, 230, 243, 237, 156, 184, 156, 46, 118,
1929 58, 7, 139, 163, 157, 167, 65, 249, 102, 228, 201, 27, 255, 189, 54, 151,
1930 168, 108, 129, 113, 106, 245, 244, 158, 176, 247, 193, 161, 94, 248, 190, 38,
1931 208, 177, 246, 108, 158, 199, 56, 37, 141, 101, 102, 44, 109, 144, 23, 214,
1932 235, 251, 210, 184, 103, 145, 248, 118, 162, 139, 84, 61, 146, 29, 70, 170,
1933 80, 30, 145, 156, 202, 185, 222, 87, 247, 137, 153, 98, 166, 61, 173, 200,
1934 164, 40, 2, 137, 226, 66, 162, 24, 172, 46, 203, 80, 176, 156, 93, 26,
1935 48, 69, 130, 192, 129, 84, 70, 15, 25, 224, 175, 31, 161, 110, 61, 220,
1936 214, 220, 152, 22, 41, 51, 57, 114, 182, 139, 129, 159, 194, 169, 133, 246,
1937 37, 23, 79, 90, 88, 231, 6, 252, 101, 241, 250, 168, 71, 149, 252, 196,
1938 126, 2, 29, 177, 70, 218, 120, 203, 72, 243, 46, 45, 149, 57, 108, 37,
1939 198, 38, 177, 210, 32, 252, 227, 160, 77, 174, 211, 207, 212, 82, 139, 189,
1940 79, 198, 116, 165, 185, 49, 188, 43, 116, 230, 182, 34, 224, 138, 216, 93,
1941 93, 94, 175, 10, 217, 41, 209, 177, 36, 142, 205, 241, 34, 129, 8, 91,
1942 78, 210, 231, 166, 188, 18, 77, 139, 201, 203, 3, 154, 131, 8, 193, 207,
1943 255, 98, 166, 192, 215, 206, 236, 217, 9, 19, 78, 227, 105, 146, 56, 50,
1944 60, 114, 20, 239, 186, 119, 113, 183, 79, 186, 126, 223, 131, 30, 217, 249,
1945 82, 10, 188, 238, 161, 46, 174, 96, 6, 187, 251, 234, 62, 163, 213, 55,
1946 71, 253, 25, 193, 26, 176, 111, 20, 167, 220, 240, 78, 243, 42, 104, 194,
1947 0, 62, 53, 119, 199, 9, 202, 20, 164, 55, 155, 204, 107, 120, 180, 6,
1948 20, 114, 122, 130, 143, 124, 89, 130, 66, 140, 43, 183, 203, 216, 78, 86,
1949 178, 16, 226, 159, 192, 205, 105, 113, 138, 165, 108, 18, 214, 100, 154, 71,
1950 150, 46, 70, 178, 181, 68, 68, 160, 253, 18, 19, 220, 253, 207, 87, 105,
1951 32, 239, 229, 137, 155, 176, 139, 168, 248, 143, 86, 67, 224, 146, 17, 80,
1952 147, 87, 30, 168, 125, 169, 91, 59, 55, 169, 142, 226, 71, 181, 114, 40,
1953 231, 229, 155, 27, 31, 144, 166, 96, 9, 85, 90, 152, 25, 83, 113, 15,
1954 65, 106, 162, 151, 74, 7, 27, 188, 221, 150, 108, 96, 102, 233, 174, 208,
1955 9, 170, 159, 239, 67, 230, 187, 93, 141, 102, 218, 191, 48, 22, 53, 124,
1956 84, 96, 110, 43, 28, 126, 26, 32, 104, 104, 65, 99, 112, 207, 167, 54,
1957 175, 165, 152, 105, 234, 18, 138, 148, 101, 9, 87, 32, 155, 192, 7, 100,
1958 101, 72, 133, 203, 170, 248, 222, 190, 243, 0, 75, 100, 38, 52, 98, 125,
1959 66, 185, 104, 255, 8, 184, 116, 195, 32, 239, 213, 54, 28, 185, 96, 177,
1960 233, 30, 210, 25, 155, 28, 128, 53, 88, 101, 146, 68, 52, 60, 55, 183,
1961 171, 157, 207, 128, 53, 60, 22, 100, 53, 121, 124, 205, 163, 55, 82, 162,
1962 96, 99, 71, 184, 243, 169, 137, 77, 191, 16, 55, 59, 220, 197, 20, 4,
1963 61, 89, 4, 157, 96, 171, 145, 91, 145, 19, 36, 195, 42, 132, 152, 83,
1964 255, 137, 64, 37, 72, 190, 82, 29, 181, 41, 175, 144, 46, 229, 236, 217,
1965 105, 194, 7, 118, 19, 47, 151, 238, 222, 255, 183, 236, 181, 175, 135, 91,
1966 55, 163, 4, 156, 190, 18, 153, 21, 178, 51, 102, 36, 62, 253, 228, 12,
1967 102, 230, 138, 183, 182, 253, 54, 170, 251, 50, 107, 223, 180, 177, 74, 169,
1968 231, 208, 76, 47, 146, 158, 251, 181, 9, 219, 240, 169, 72, 250, 241, 125,
1969 86, 200, 125, 166, 137, 65, 115, 18, 68, 241, 124, 51, 128, 223, 113, 239,
1970 201, 221, 152, 21, 114, 127, 79, 101, 44, 48, 241, 21, 221, 91, 240, 214,
1971 166, 119, 140, 21, 143, 155, 172, 26, 207, 233, 0, 128, 118, 45, 22, 6,
1972 222, 75, 90, 99, 173, 214, 121, 53, 71, 183, 253, 19, 95, 71, 66, 16,
1973 41, 35, 195, 9, 93, 247, 42, 150, 49, 46, 229, 73, 220, 12, 230, 51,
1974 109, 147, 108, 124, 102, 83, 78, 75, 67, 141, 55, 246, 155, 195, 190, 56,
1975 116, 59, 185, 237, 104, 78, 66, 173, 165, 178, 32, 93, 14, 10, 46, 30,
1976 229, 108, 50, 52, 188, 2, 244, 142, 201, 8, 245, 53, 210, 132, 15, 184,
1977 82, 85, 156, 142, 35, 49, 39, 183, 58, 61, 96, 143, 60, 190, 41, 152,
1978 9, 183, 127, 90, 157, 109, 196, 76, 36, 177, 244, 173, 63, 233, 1, 16,
1979 110, 216, 203, 94, 245, 195, 71, 55, 161, 149, 230, 122, 159, 133, 143, 180,
1980 129, 6, 111, 56, 211, 30, 13, 142, 216, 122, 87, 69, 91, 233, 254, 4,
1981 232, 207, 157, 32, 113, 50, 227, 233, 158, 171, 38, 228, 191, 121, 56, 165,
1982 222, 22, 180, 217, 111, 104, 112, 134, 12, 22, 244, 44, 234, 34, 253, 217,
1983 212, 140, 93, 235, 36, 54, 4, 129, 32, 91, 197, 163, 24, 71, 133, 161,
1984 111, 114, 29, 19, 45, 100, 10, 207, 139, 158, 219, 206, 160, 248, 94, 12,
1985 241, 58, 118, 141, 115, 166, 177, 78, 173, 59, 85, 81, 97, 240, 154, 231,
1986 79, 200, 199, 195, 205, 98, 245, 129, 246, 217, 97, 209, 249, 194, 28, 179,
1987 49, 248, 14, 6, 128, 61, 178, 15, 190, 32, 251, 111, 225, 148, 0, 11,
1988 227, 246, 146, 46, 41, 231, 24, 80, 43, 174, 228, 166, 171, 206, 72, 142,
1989 253, 96, 242, 181, 31, 207, 95, 66, 88, 152, 165, 67, 7, 238, 23, 114,
1990 50, 224, 212, 241, 202, 224, 247, 70, 215, 162, 8, 237, 121, 169, 254, 191,
1991 30, 19, 72, 252, 3, 109, 5, 206, 105, 130, 69, 250, 250, 232, 135, 203,
1992 253, 77, 102, 203, 40, 72, 128, 223, 60, 59, 83, 103, 162, 117, 47, 200,
1993 65, 88, 43, 168, 168, 255, 46, 166, 86, 193, 231, 227, 92, 222, 186, 44,
1994 20, 166, 136, 123, 193, 88, 155, 166, 185, 73, 85, 124, 253, 80, 43, 176,
1995 173, 191, 2, 10, 50, 101, 143, 17, 129, 56, 191, 83, 103, 183, 143, 247,
1996 253, 161, 1, 76, 161, 76, 127, 194, 108, 88, 138, 152, 147, 164, 65, 147,
1997 61, 160, 192, 44, 56, 103, 144, 51, 153, 224, 38, 97, 173, 128, 34, 85,
1998 89, 143, 17, 239, 200, 47, 160, 2, 151, 249, 219, 208, 116, 71, 205, 72,
1999 210, 178, 205, 184, 207, 19, 37, 127, 183, 21, 229, 176, 91, 196, 203, 225,
2000 67, 189, 94, 214, 180, 203, 140, 186, 39, 250, 66, 3, 128, 35, 206, 43,
2001 67, 244, 207, 157, 165, 188, 201, 173, 43, 47, 210, 139, 254, 144, 218, 62,
2002 55, 6, 187, 32, 128, 206, 56, 74, 66, 42, 159, 171, 108, 56, 220, 246,
2003 127, 127, 32, 221, 190, 33, 91, 93, 88, 36, 51, 115, 93, 47, 203, 133,
2004 155, 166, 13, 124, 118, 56, 182, 202, 55, 224, 226, 36, 233, 9, 200, 217,
2005 249, 22, 252, 209, 179, 66, 32, 30, 129, 48, 186, 232, 66, 248, 197, 120,
2006 168, 191, 124, 16, 232, 117, 44, 125, 188, 157, 71, 35, 245, 219, 17, 111,
2007 41, 159, 96, 44, 233, 3, 105, 109, 199, 182, 42, 34, 87, 218, 48, 142,
2008 196, 99, 37, 89, 44, 173, 184, 160, 104, 203, 224, 230, 58, 60, 213, 132,
2009 9, 9, 253, 251, 72, 75, 235, 224, 20, 198, 208, 178, 42, 253, 126, 105,
2010 227, 171, 89, 93, 42, 222, 185, 232, 8, 248, 83, 78, 132, 37, 38, 173,
2011 67, 116, 185, 216, 47, 192, 196, 221, 172, 26, 5, 191, 41, 33, 114, 40,
2012 139, 22, 147, 173, 234, 41, 252, 118, 244, 73, 73, 237, 42, 6, 123, 228,
2013 213, 210, 202, 65, 195, 253, 112, 57, 202, 85, 247, 15, 160, 237, 138, 76,
2014 70, 94, 230, 163, 112, 217, 134, 78, 213, 55, 68, 198, 29, 195, 16, 138,
2015 162, 19, 34, 158, 144, 131, 64, 244, 80, 85, 63, 175, 47, 63, 233, 175,
2016 168, 190, 39, 4, 47, 200, 9, 161, 248, 198, 182, 166, 56, 23, 5, 121,
2017 188, 46, 90, 56, 216, 72, 203, 107, 212, 171, 110, 134, 255, 24, 243, 30,
2018 188, 55, 111, 8, 238, 198, 201, 180, 150, 230, 191, 248, 10, 82, 178, 247,
2019 114, 216, 83, 183, 24, 188, 131, 26, 246, 210, 42, 30, 111, 181, 215, 129,
2020 41, 21, 207, 15, 83, 86, 252, 169, 220, 246, 117, 114, 254, 143, 193, 60,
2021 123, 226, 202, 18, 77, 221, 135, 84, 180, 229, 79, 143, 241, 219, 217, 85,
2022 158, 63, 5, 245, 134, 63, 102, 68, 145, 100, 35, 13, 127, 241, 76, 211,
2023 204, 45, 125, 175, 128, 142, 244, 189, 203, 138, 63, 249, 2, 174, 167, 171,
2024 32, 131, 12, 250, 248, 198, 245, 3, 98, 4, 111, 244, 226, 122, 136, 58,
2025 189, 234, 244, 106, 117, 92, 97, 191, 247, 95, 114, 20, 151, 51, 67, 174,
2026 236, 109, 252, 215, 107, 183, 174, 254, 59, 22, 158, 203, 152, 194, 135, 200,
2027 61, 193, 249, 199, 24, 167, 119, 223, 205, 135, 112, 51, 118, 120, 253, 75,
2028 61, 101, 172, 213, 36, 226, 135, 54, 229, 214, 151, 9, 2, 197, 84, 22,
2029 207, 55, 182, 191, 53, 243, 63, 53, 13, 93, 121, 44, 174, 237, 192, 138,
2030 116, 208, 200, 134, 94, 34, 122, 110, 157, 231, 169, 177, 180, 203, 167, 125,
2031 73, 44, 57, 104, 204, 174, 36, 172, 47, 21, 36, 220, 92, 62, 191, 77,
2032 113, 5, 32, 8, 115, 61, 235, 237, 27, 76, 69, 187, 117, 72, 26, 49,
2033 217, 249, 130, 134, 139, 27, 229, 183, 146, 80, 3, 154, 25, 26, 52, 175,
2034 157, 1, 91, 126, 165, 6, 168, 134, 60, 32, 227, 68, 161, 126, 207, 247,
2035 160, 103, 105, 156, 129, 211, 220, 155, 222, 60, 184, 255, 149, 9, 116, 201,
2036 151, 42, 126, 0, 36, 167, 178, 40, 160, 5, 115, 82, 176, 207, 38, 10,
2037 213, 132, 57, 255, 138, 4, 204, 32, 33, 128, 174, 99, 94, 161, 237, 0,
2038 230, 209, 198, 89, 167, 80, 193, 116, 195, 111, 204, 241, 169, 46, 117, 108,
2039 244, 247, 12, 216, 106, 50, 242, 209, 61, 42, 214, 33, 25, 38, 138, 217,
2040 225, 105, 76, 244, 126, 252, 253, 57, 238, 107, 166, 158, 250, 132, 105, 91,
2041 184, 209, 217, 5, 202, 84, 254, 51, 233, 58, 2, 141, 130, 47, 97, 125,
2042 244, 95, 177, 68, 9, 213, 115, 118, 215, 70, 9, 64, 113, 139, 19, 165,
2043 231, 204, 191, 129, 15, 235, 143, 225, 241, 75, 168, 227, 126, 58, 201, 98,
2044 16, 227, 27, 148, 166, 1, 34, 110, 84, 120, 11, 181, 150, 111, 167, 184,
2045 49, 244, 231, 192, 44, 59, 41, 122, 58, 12, 185, 180, 54, 122, 106, 201,
2046 2, 65, 118, 129, 149, 139, 31, 201, 205, 90, 96, 76, 23, 43, 218, 15,
2047 233, 202, 103, 84, 18, 122, 25, 218, 38, 252, 222, 104, 172, 96, 30, 57,
2048 205, 130, 106, 183, 189, 230, 67, 63, 162, 142, 46, 199, 45, 244, 3, 26,
2049 208, 119, 15, 16, 29, 196, 178, 90, 41, 94, 193, 64, 51, 205, 136, 157
2050};
2051
diff --git a/all_pairs/source/rijndael_dec/rijndael_dec.c b/all_pairs/source/rijndael_dec/rijndael_dec.c
new file mode 100644
index 0000000..4082eff
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/rijndael_dec.c
@@ -0,0 +1,195 @@
1/*
2
3 This program is part of the TACLeBench benchmark suite.
4 Version V 2.0
5
6 Name: rijndael_enc
7
8 Author: Dr Brian Gladman
9
10 Function: rijndael_dec is an implementation of the AES decryption
11 algorithm (Rijndael).
12
13 Source: security section of MiBench
14
15 Changes: Add computation of a checksum, refactoring
16
17 License: see below
18
19*/
20
21/*
22 -----------------------------------------------------------------------
23 Copyright (c) 2001 Dr Brian Gladman <brg@gladman.uk.net>, Worcester, UK
24
25 TERMS
26
27 Redistribution and use in source and binary forms, with or without
28 modification, are permitted provided that the following conditions
29 are met:
30 1. Redistributions of source code must retain the above copyright
31 notice, this list of conditions and the following disclaimer.
32 2. Redistributions in binary form must reproduce the above copyright
33 notice, this list of conditions and the following disclaimer in the
34 documentation and/or other materials provided with the distribution.
35
36 This software is provided 'as is' with no guarantees of correctness or
37 fitness for purpose.
38 -----------------------------------------------------------------------
39*/
40
41#include "../extra.h"
42#include "aes.h"
43#include "rijndael_dec_libc.h"
44
45/*
46 Global variable definitions
47*/
48unsigned char rijndael_dec_key[32];
49int rijndael_dec_key_len;
50
51extern unsigned char rijndael_dec_data[];
52struct rijndael_dec_FILE rijndael_dec_fin;
53
54int rijndael_dec_checksum = 0;
55
56/*
57 Forward declaration of functions
58*/
59void rijndael_dec_init( void );
60int rijndael_dec_return( void );
61void rijndael_dec_fillrand( unsigned char *buf, int len );
62void rijndael_dec_decfile( struct rijndael_dec_FILE *fin, struct aes *ctx );
63void rijndael_dec_main( void );
64
65void rijndael_dec_init( void )
66{
67 /* create a pseudo-file for the input*/
68 rijndael_dec_fin.data = rijndael_dec_data;
69 rijndael_dec_fin.size = 32768;
70 rijndael_dec_fin.cur_pos = 0;
71
72 unsigned i;
73 volatile int x = 0;
74 rijndael_dec_fin.size ^= x;
75 _Pragma( "loopbound min 32768 max 32768" )
76 for ( i = 0; i < rijndael_dec_fin.size; i++ )
77 rijndael_dec_fin.data[i] ^= x;
78
79 /* this is a pointer to the hexadecimal key digits */
80 const volatile char *cp =
81 "1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321";
82 char ch;
83 int by = 0;
84
85 i = 0; /* this is a count for the input digits processed */
86 _Pragma( "loopbound min 64 max 64" )
87 while ( i < 64 && *cp ) { /* the maximum key length is 32 bytes and */
88 /* hence at most 64 hexadecimal digits */
89 ch = rijndael_dec_toupper( *cp++ ); /* process a hexadecimal digit */
90 if ( ch >= '0' && ch <= '9' )
91 by = ( by << 4 ) + ch - '0';
92 else
93 if ( ch >= 'A' && ch <= 'F' )
94 by = ( by << 4 ) + ch - 'A' + 10;
95 else { /* error if not hexadecimal */
96 rijndael_dec_checksum = -2;
97 return;
98 }
99
100 /* store a key byte for each pair of hexadecimal digits */
101 if ( i++ & 1 )
102 rijndael_dec_key[i / 2 - 1] = by & 0xff;
103 }
104
105 if ( *cp ) {
106 rijndael_dec_checksum = -3;
107 return;
108 } else
109 if ( i < 32 || ( i & 15 ) ) {
110 rijndael_dec_checksum = -4;
111 return;
112 }
113
114 rijndael_dec_key_len = i / 2;
115}
116
117int rijndael_dec_return( void )
118{
119 return ( ( rijndael_dec_checksum == ( int )262180 ) ? 0 : -1 );
120}
121
122void rijndael_dec_decfile( struct rijndael_dec_FILE *fin, struct aes *ctx )
123{
124 unsigned char inbuf1[16], inbuf2[16], outbuf[16], *bp1, *bp2, *tp;
125 int i;
126
127
128 rijndael_dec_fread( inbuf1, 1, 16, fin );
129
130 i = rijndael_dec_fread( inbuf2, 1, 16,
131 fin ); /* read 1st encrypted file block */
132
133 if ( i && i != 16 ) {
134 rijndael_dec_checksum = -10;
135 return;
136 }
137
138 rijndael_dec_decrypt( inbuf2, outbuf,
139 ctx ); /* decrypt it */
140
141 rijndael_dec_checksum += outbuf[15];
142
143 _Pragma( "loopbound min 16 max 16" )
144 for ( i = 0; i < 16; ++i ) /* xor with previous input */
145 outbuf[i] ^= inbuf1[i];
146
147 bp1 = inbuf1; /* set up pointers to two input buffers */
148 bp2 = inbuf2;
149
150 /* TODO: this is necessarily an input-dependent loop bound */
151 _Pragma( "loopbound min 19491 max 91491" )
152 while ( 1 ) {
153 i = rijndael_dec_fread( bp1, 1, 16, fin ); /* read next encrypted block */
154 /* to first input buffer */
155 if ( i != 16 ) /* no more bytes in input - the decrypted */
156 break; /* partial final buffer needs to be output */
157
158 /* if a block has been read the previous block must have been */
159 /* full lnegth so we can now write it out */
160
161 rijndael_dec_decrypt( bp1, outbuf, ctx ); /* decrypt the new input block and */
162
163 rijndael_dec_checksum += outbuf[15];
164
165 _Pragma( "loopbound min 16 max 16" )
166 for ( i = 0; i < 16; ++i ) /* xor it with previous input block */
167 outbuf[i] ^= bp2[i];
168
169 /* swap buffer pointers */
170 tp = bp1, bp1 = bp2, bp2 = tp;
171 }
172}
173
174void _Pragma( "entrypoint" ) rijndael_dec_main( void )
175{
176 struct aes ctx[1];
177
178 /* decryption in Cipher Block Chaining mode */
179 rijndael_dec_set_key( rijndael_dec_key, rijndael_dec_key_len, dec, ctx );
180 rijndael_dec_decfile( &rijndael_dec_fin, ctx );
181}
182
183int main(int argc, char** argv)
184{
185 SET_UP
186 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){
187 START_LOOP
188 rijndael_dec_init();
189 rijndael_dec_main();
190 STOP_LOOP
191 }
192 WRITE_TO_FILE
193 return ( rijndael_dec_return() );
194}
195
diff --git a/all_pairs/source/rijndael_dec/rijndael_dec_libc.c b/all_pairs/source/rijndael_dec/rijndael_dec_libc.c
new file mode 100644
index 0000000..00390df
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/rijndael_dec_libc.c
@@ -0,0 +1,66 @@
1#include "rijndael_dec_libc.h"
2
3int rijndael_dec_toupper( int c )
4{
5 if ( ( c >= 'a' ) && ( c <= 'z' ) )
6 return c - 'a' + 'A';
7 return c;
8}
9
10unsigned long rijndael_dec_fread( void *ptr, unsigned long size,
11 unsigned long count, struct rijndael_dec_FILE *stream )
12{
13 unsigned i = stream->cur_pos, i2 = 0;
14 unsigned long number_of_chars_to_read =
15 stream->size - stream->cur_pos >= size * count ?
16 size * count : stream->size - stream->cur_pos;
17 _Pragma( "loopbound min 10 max 16" )
18 while ( i < stream->cur_pos + number_of_chars_to_read )
19 ( ( unsigned char * )ptr )[i2++] = stream->data[i++];
20 stream->cur_pos += number_of_chars_to_read;
21 return number_of_chars_to_read;
22}
23
24unsigned long rijndael_dec_fwrite( const void *ptr, unsigned long size,
25 unsigned long count, struct rijndael_dec_FILE *stream )
26{
27 unsigned i = stream->cur_pos, i2 = 0;
28 unsigned long number_of_chars_to_write =
29 stream->size - stream->cur_pos >= size * count ?
30 size * count : stream->size - stream->cur_pos;
31 _Pragma( "loopbound min 0 max 0" )
32 while ( i < stream->cur_pos + number_of_chars_to_write )
33 stream->data[i++] = ( ( unsigned char * )ptr )[i2++];
34 stream->cur_pos += number_of_chars_to_write;
35 return number_of_chars_to_write;
36}
37
38int rijndael_dec_fseek( struct rijndael_dec_FILE *stream, long int offset,
39 Origin origin )
40{
41 if ( origin == RIJNDAEL_DEC_SEEK_SET ) {
42 stream->cur_pos = offset;
43 return 0;
44 } else
45 if ( origin == RIJNDAEL_DEC_SEEK_CUR ) {
46 stream->cur_pos += offset;
47 return 0;
48 } else
49 if ( origin == RIJNDAEL_DEC_SEEK_END ) {
50 stream->cur_pos = stream->size + offset;
51 return 0;
52 }
53 return -1;
54}
55
56int rijndael_dec_fgetpos( struct rijndael_dec_FILE *stream,
57 unsigned *position )
58{
59 *position = stream->cur_pos;
60 return 0;
61}
62
63int rijndael_dec_feof( struct rijndael_dec_FILE *stream )
64{
65 return stream->cur_pos == stream->size ? 1 : 0;
66}
diff --git a/all_pairs/source/rijndael_dec/rijndael_dec_libc.h b/all_pairs/source/rijndael_dec/rijndael_dec_libc.h
new file mode 100644
index 0000000..eb7b8d6
--- /dev/null
+++ b/all_pairs/source/rijndael_dec/rijndael_dec_libc.h
@@ -0,0 +1,24 @@
1#ifndef RIJNDAEL_DEC_LIBC_H
2#define RIJNDAEL_DEC_LIBC_H
3
4int rijndael_dec_toupper ( int c );
5
6enum _Origin_ { RIJNDAEL_DEC_SEEK_SET, RIJNDAEL_DEC_SEEK_CUR, RIJNDAEL_DEC_SEEK_END };
7typedef enum _Origin_ Origin;
8struct rijndael_dec_FILE {
9 unsigned char *data;
10 unsigned long size;
11 unsigned cur_pos;
12};
13
14unsigned long rijndael_dec_fread ( void *ptr, unsigned long size,
15 unsigned long count, struct rijndael_dec_FILE *stream );
16unsigned long rijndael_dec_fwrite ( const void *ptr, unsigned long size,
17 unsigned long count, struct rijndael_dec_FILE *stream );
18int rijndael_dec_fseek ( struct rijndael_dec_FILE *stream, long int offset,
19 Origin origin );
20int rijndael_dec_fgetpos( struct rijndael_dec_FILE *stream,
21 unsigned *position );
22int rijndael_dec_feof ( struct rijndael_dec_FILE *stream );
23
24#endif // RIJNDAEL_DEC_LIBC_H