1 /******************************************************************************* 2 3 This module implements the Whirlpool algorithm by Paulo S.L.M. Barreto 4 and Vincent Rijmen. 5 6 See http://web.archive.org/web/20060621195406/http://www.cosic.esat.kuleuven.ac.be/nessie/workshop/submissions/whirlpool.zip 7 for more information. 8 9 Copyright: 10 Copyright (c) 2009 Tango contributors. 11 Some parts copyright (c) 2009-2016 dunnhumby Germany GmbH. 12 All rights reserved. 13 14 License: 15 Tango Dual License: 3-Clause BSD License / Academic Free License v3.0. 16 See LICENSE_TANGO.txt for details. 17 18 Version: Initial release: Jan 2010 19 20 Authors: Kai Nacke 21 22 *******************************************************************************/ 23 24 module ocean.util.digest.Whirlpool; 25 26 import ocean.meta.types.Qualifiers; 27 28 import ocean.util.digest.MerkleDamgard; 29 30 public import ocean.util.digest.Digest; 31 32 version (unittest) import ocean.core.Test; 33 34 /******************************************************************************* 35 36 *******************************************************************************/ 37 38 private static immutable int INTERNAL_ROUNDS = 10; 39 40 final class Whirlpool : MerkleDamgard 41 { 42 private ulong[8] hash; /* the hashing state */ 43 44 private static immutable uint padChar = 0x80; 45 46 /*********************************************************************** 47 48 Construct a Whirlpool 49 50 ***********************************************************************/ 51 52 this() { } 53 54 /*********************************************************************** 55 56 The size of a Whirlpool digest is 64 bytes 57 58 ***********************************************************************/ 59 60 override uint digestSize() {return 64;} 61 62 /*********************************************************************** 63 64 Initialize the cipher 65 66 Remarks: 67 Returns the cipher state to it's initial value 68 69 ***********************************************************************/ 70 71 override void reset() 72 { 73 super.reset(); 74 hash[] = 0L; 75 } 76 77 /*********************************************************************** 78 79 Obtain the digest 80 81 Returns: 82 the digest 83 84 Remarks: 85 Returns a digest of the current cipher state, this may be the 86 final digest, or a digest of the state between calls to update() 87 88 ***********************************************************************/ 89 90 override void createDigest(ubyte[] buf) 91 { 92 version (LittleEndian) 93 ByteSwap.swap64 (hash.ptr, hash.length * ulong.sizeof); 94 95 buf[] = cast(ubyte[]) hash; 96 } 97 98 /*********************************************************************** 99 100 block size 101 102 Returns: 103 the block size 104 105 Remarks: 106 Specifies the size (in bytes) of the block of data to pass to 107 each call to transform(). For Whirlpool the blockSize is 64. 108 109 ***********************************************************************/ 110 111 protected override uint blockSize() { return 64; } 112 113 /*********************************************************************** 114 115 Length padding size 116 117 Returns: 118 the length padding size 119 120 Remarks: 121 Specifies the size (in bytes) of the padding which uses the 122 length of the data which has been ciphered, this padding is 123 carried out by the padLength method. For Whirlpool the addSize is 8. 124 125 ***********************************************************************/ 126 127 protected override uint addSize() { return 32; } 128 129 /*********************************************************************** 130 131 Pads the cipher data 132 133 Params: 134 data = a slice of the cipher buffer to fill with padding 135 136 Remarks: 137 Fills the passed buffer slice with the appropriate padding for 138 the final call to transform(). This padding will fill the cipher 139 buffer up to blockSize()-addSize(). 140 141 ***********************************************************************/ 142 143 protected override void padMessage(ubyte[] at) 144 { 145 at[0] = padChar; 146 at[1..at.length] = 0; 147 } 148 149 /*********************************************************************** 150 151 Performs the length padding 152 153 Params: 154 data = the slice of the cipher buffer to fill with padding 155 length = the length of the data which has been ciphered 156 157 Remarks: 158 Fills the passed buffer slice with addSize() bytes of padding 159 based on the length in bytes of the input data which has been 160 ciphered. 161 162 ***********************************************************************/ 163 164 protected override void padLength(ubyte[] at, ulong length) 165 { 166 ulong[4] buffer; 167 buffer[0..2] = 0L; 168 buffer[3] = length << 3; 169 bigEndian64((cast(ubyte*)&buffer)[0..ulong.sizeof*4],cast(ulong[]) at); 170 } 171 172 /*********************************************************************** 173 174 Performs the cipher on a block of data 175 176 Params: 177 data = the block of data to cipher 178 179 Remarks: 180 The actual cipher algorithm is carried out by this method on 181 the passed block of data. This method is called for every 182 blockSize() bytes of input data and once more with the remaining 183 data padded to blockSize(). 184 185 ***********************************************************************/ 186 187 protected override void transform(ubyte[] input) 188 { 189 ulong[8] block; /* mu(buffer) */ 190 191 /* 192 * map the buffer to a block: 193 */ 194 bigEndian64(input,block); 195 196 /* 197 * compute and apply K^0 to the cipher state: 198 */ 199 ulong[8] K = hash[]; /* the round key */ 200 ulong[8] state = block[] ^ K[]; /* the cipher state */ 201 202 /* 203 * iterate over all rounds: 204 */ 205 for (auto r = 1; r <= INTERNAL_ROUNDS; r++) { 206 ulong[8] L; 207 /* 208 * compute K^r from K^{r-1}: 209 */ 210 L[0] = 211 C0[cast(ubyte)(K[0] >>> 56)] ^ 212 C1[cast(ubyte)(K[7] >>> 48)] ^ 213 C2[cast(ubyte)(K[6] >>> 40)] ^ 214 C3[cast(ubyte)(K[5] >>> 32)] ^ 215 C4[cast(ubyte)(K[4] >>> 24)] ^ 216 C5[cast(ubyte)(K[3] >>> 16)] ^ 217 C6[cast(ubyte)(K[2] >>> 8)] ^ 218 C7[cast(ubyte)(K[1] )] ^ 219 rc[r]; 220 L[1] = 221 C0[cast(ubyte)(K[1] >>> 56)] ^ 222 C1[cast(ubyte)(K[0] >>> 48)] ^ 223 C2[cast(ubyte)(K[7] >>> 40)] ^ 224 C3[cast(ubyte)(K[6] >>> 32)] ^ 225 C4[cast(ubyte)(K[5] >>> 24)] ^ 226 C5[cast(ubyte)(K[4] >>> 16)] ^ 227 C6[cast(ubyte)(K[3] >>> 8)] ^ 228 C7[cast(ubyte)(K[2] )]; 229 L[2] = 230 C0[cast(ubyte)(K[2] >>> 56)] ^ 231 C1[cast(ubyte)(K[1] >>> 48)] ^ 232 C2[cast(ubyte)(K[0] >>> 40)] ^ 233 C3[cast(ubyte)(K[7] >>> 32)] ^ 234 C4[cast(ubyte)(K[6] >>> 24)] ^ 235 C5[cast(ubyte)(K[5] >>> 16)] ^ 236 C6[cast(ubyte)(K[4] >>> 8)] ^ 237 C7[cast(ubyte)(K[3] )]; 238 L[3] = 239 C0[cast(ubyte)(K[3] >>> 56)] ^ 240 C1[cast(ubyte)(K[2] >>> 48)] ^ 241 C2[cast(ubyte)(K[1] >>> 40)] ^ 242 C3[cast(ubyte)(K[0] >>> 32)] ^ 243 C4[cast(ubyte)(K[7] >>> 24)] ^ 244 C5[cast(ubyte)(K[6] >>> 16)] ^ 245 C6[cast(ubyte)(K[5] >>> 8)] ^ 246 C7[cast(ubyte)(K[4] )]; 247 L[4] = 248 C0[cast(ubyte)(K[4] >>> 56)] ^ 249 C1[cast(ubyte)(K[3] >>> 48)] ^ 250 C2[cast(ubyte)(K[2] >>> 40)] ^ 251 C3[cast(ubyte)(K[1] >>> 32)] ^ 252 C4[cast(ubyte)(K[0] >>> 24)] ^ 253 C5[cast(ubyte)(K[7] >>> 16)] ^ 254 C6[cast(ubyte)(K[6] >>> 8)] ^ 255 C7[cast(ubyte)(K[5] )]; 256 L[5] = 257 C0[cast(ubyte)(K[5] >>> 56)] ^ 258 C1[cast(ubyte)(K[4] >>> 48)] ^ 259 C2[cast(ubyte)(K[3] >>> 40)] ^ 260 C3[cast(ubyte)(K[2] >>> 32)] ^ 261 C4[cast(ubyte)(K[1] >>> 24)] ^ 262 C5[cast(ubyte)(K[0] >>> 16)] ^ 263 C6[cast(ubyte)(K[7] >>> 8)] ^ 264 C7[cast(ubyte)(K[6] )]; 265 L[6] = 266 C0[cast(ubyte)(K[6] >>> 56)] ^ 267 C1[cast(ubyte)(K[5] >>> 48)] ^ 268 C2[cast(ubyte)(K[4] >>> 40)] ^ 269 C3[cast(ubyte)(K[3] >>> 32)] ^ 270 C4[cast(ubyte)(K[2] >>> 24)] ^ 271 C5[cast(ubyte)(K[1] >>> 16)] ^ 272 C6[cast(ubyte)(K[0] >>> 8)] ^ 273 C7[cast(ubyte)(K[7] )]; 274 L[7] = 275 C0[cast(ubyte)(K[7] >>> 56)] ^ 276 C1[cast(ubyte)(K[6] >>> 48)] ^ 277 C2[cast(ubyte)(K[5] >>> 40)] ^ 278 C3[cast(ubyte)(K[4] >>> 32)] ^ 279 C4[cast(ubyte)(K[3] >>> 24)] ^ 280 C5[cast(ubyte)(K[2] >>> 16)] ^ 281 C6[cast(ubyte)(K[1] >>> 8)] ^ 282 C7[cast(ubyte)(K[0] )]; 283 K[] = L[]; 284 285 /* 286 * apply the r-th round transformation: 287 */ 288 L[0] = 289 C0[cast(ubyte)(state[0] >>> 56)] ^ 290 C1[cast(ubyte)(state[7] >>> 48)] ^ 291 C2[cast(ubyte)(state[6] >>> 40)] ^ 292 C3[cast(ubyte)(state[5] >>> 32)] ^ 293 C4[cast(ubyte)(state[4] >>> 24)] ^ 294 C5[cast(ubyte)(state[3] >>> 16)] ^ 295 C6[cast(ubyte)(state[2] >>> 8)] ^ 296 C7[cast(ubyte)(state[1] )] ^ 297 K[0]; 298 L[1] = 299 C0[cast(ubyte)(state[1] >>> 56)] ^ 300 C1[cast(ubyte)(state[0] >>> 48)] ^ 301 C2[cast(ubyte)(state[7] >>> 40)] ^ 302 C3[cast(ubyte)(state[6] >>> 32)] ^ 303 C4[cast(ubyte)(state[5] >>> 24)] ^ 304 C5[cast(ubyte)(state[4] >>> 16)] ^ 305 C6[cast(ubyte)(state[3] >>> 8)] ^ 306 C7[cast(ubyte)(state[2] )] ^ 307 K[1]; 308 L[2] = 309 C0[cast(ubyte)(state[2] >>> 56)] ^ 310 C1[cast(ubyte)(state[1] >>> 48)] ^ 311 C2[cast(ubyte)(state[0] >>> 40)] ^ 312 C3[cast(ubyte)(state[7] >>> 32)] ^ 313 C4[cast(ubyte)(state[6] >>> 24)] ^ 314 C5[cast(ubyte)(state[5] >>> 16)] ^ 315 C6[cast(ubyte)(state[4] >>> 8)] ^ 316 C7[cast(ubyte)(state[3] )] ^ 317 K[2]; 318 L[3] = 319 C0[cast(ubyte)(state[3] >>> 56)] ^ 320 C1[cast(ubyte)(state[2] >>> 48)] ^ 321 C2[cast(ubyte)(state[1] >>> 40)] ^ 322 C3[cast(ubyte)(state[0] >>> 32)] ^ 323 C4[cast(ubyte)(state[7] >>> 24)] ^ 324 C5[cast(ubyte)(state[6] >>> 16)] ^ 325 C6[cast(ubyte)(state[5] >>> 8)] ^ 326 C7[cast(ubyte)(state[4] )] ^ 327 K[3]; 328 L[4] = 329 C0[cast(ubyte)(state[4] >>> 56)] ^ 330 C1[cast(ubyte)(state[3] >>> 48)] ^ 331 C2[cast(ubyte)(state[2] >>> 40)] ^ 332 C3[cast(ubyte)(state[1] >>> 32)] ^ 333 C4[cast(ubyte)(state[0] >>> 24)] ^ 334 C5[cast(ubyte)(state[7] >>> 16)] ^ 335 C6[cast(ubyte)(state[6] >>> 8)] ^ 336 C7[cast(ubyte)(state[5] )] ^ 337 K[4]; 338 L[5] = 339 C0[cast(ubyte)(state[5] >>> 56)] ^ 340 C1[cast(ubyte)(state[4] >>> 48)] ^ 341 C2[cast(ubyte)(state[3] >>> 40)] ^ 342 C3[cast(ubyte)(state[2] >>> 32)] ^ 343 C4[cast(ubyte)(state[1] >>> 24)] ^ 344 C5[cast(ubyte)(state[0] >>> 16)] ^ 345 C6[cast(ubyte)(state[7] >>> 8)] ^ 346 C7[cast(ubyte)(state[6] )] ^ 347 K[5]; 348 L[6] = 349 C0[cast(ubyte)(state[6] >>> 56)] ^ 350 C1[cast(ubyte)(state[5] >>> 48)] ^ 351 C2[cast(ubyte)(state[4] >>> 40)] ^ 352 C3[cast(ubyte)(state[3] >>> 32)] ^ 353 C4[cast(ubyte)(state[2] >>> 24)] ^ 354 C5[cast(ubyte)(state[1] >>> 16)] ^ 355 C6[cast(ubyte)(state[0] >>> 8)] ^ 356 C7[cast(ubyte)(state[7] )] ^ 357 K[6]; 358 L[7] = 359 C0[cast(ubyte)(state[7] >>> 56)] ^ 360 C1[cast(ubyte)(state[6] >>> 48)] ^ 361 C2[cast(ubyte)(state[5] >>> 40)] ^ 362 C3[cast(ubyte)(state[4] >>> 32)] ^ 363 C4[cast(ubyte)(state[3] >>> 24)] ^ 364 C5[cast(ubyte)(state[2] >>> 16)] ^ 365 C6[cast(ubyte)(state[1] >>> 8)] ^ 366 C7[cast(ubyte)(state[0] )] ^ 367 K[7]; 368 state[] = L[]; 369 } 370 371 /* 372 * apply the Miyaguchi-Preneel compression function: 373 */ 374 hash[] ^= state[] ^ block[]; 375 } 376 } 377 378 /******************************************************************************* 379 380 *******************************************************************************/ 381 382 private static const(ulong[256]) C0 = 383 [ 384 0x18186018c07830d8, 0x23238c2305af4626, 0xc6c63fc67ef991b8, 0xe8e887e8136fcdfb, 385 0x878726874ca113cb, 0xb8b8dab8a9626d11, 0x0101040108050209, 0x4f4f214f426e9e0d, 386 0x3636d836adee6c9b, 0xa6a6a2a6590451ff, 0xd2d26fd2debdb90c, 0xf5f5f3f5fb06f70e, 387 0x7979f979ef80f296, 0x6f6fa16f5fcede30, 0x91917e91fcef3f6d, 0x52525552aa07a4f8, 388 0x60609d6027fdc047, 0xbcbccabc89766535, 0x9b9b569baccd2b37, 0x8e8e028e048c018a, 389 0xa3a3b6a371155bd2, 0x0c0c300c603c186c, 0x7b7bf17bff8af684, 0x3535d435b5e16a80, 390 0x1d1d741de8693af5, 0xe0e0a7e05347ddb3, 0xd7d77bd7f6acb321, 0xc2c22fc25eed999c, 391 0x2e2eb82e6d965c43, 0x4b4b314b627a9629, 0xfefedffea321e15d, 0x575741578216aed5, 392 0x15155415a8412abd, 0x7777c1779fb6eee8, 0x3737dc37a5eb6e92, 0xe5e5b3e57b56d79e, 393 0x9f9f469f8cd92313, 0xf0f0e7f0d317fd23, 0x4a4a354a6a7f9420, 0xdada4fda9e95a944, 394 0x58587d58fa25b0a2, 0xc9c903c906ca8fcf, 0x2929a429558d527c, 0x0a0a280a5022145a, 395 0xb1b1feb1e14f7f50, 0xa0a0baa0691a5dc9, 0x6b6bb16b7fdad614, 0x85852e855cab17d9, 396 0xbdbdcebd8173673c, 0x5d5d695dd234ba8f, 0x1010401080502090, 0xf4f4f7f4f303f507, 397 0xcbcb0bcb16c08bdd, 0x3e3ef83eedc67cd3, 0x0505140528110a2d, 0x676781671fe6ce78, 398 0xe4e4b7e47353d597, 0x27279c2725bb4e02, 0x4141194132588273, 0x8b8b168b2c9d0ba7, 399 0xa7a7a6a7510153f6, 0x7d7de97dcf94fab2, 0x95956e95dcfb3749, 0xd8d847d88e9fad56, 400 0xfbfbcbfb8b30eb70, 0xeeee9fee2371c1cd, 0x7c7ced7cc791f8bb, 0x6666856617e3cc71, 401 0xdddd53dda68ea77b, 0x17175c17b84b2eaf, 0x4747014702468e45, 0x9e9e429e84dc211a, 402 0xcaca0fca1ec589d4, 0x2d2db42d75995a58, 0xbfbfc6bf9179632e, 0x07071c07381b0e3f, 403 0xadad8ead012347ac, 0x5a5a755aea2fb4b0, 0x838336836cb51bef, 0x3333cc3385ff66b6, 404 0x636391633ff2c65c, 0x02020802100a0412, 0xaaaa92aa39384993, 0x7171d971afa8e2de, 405 0xc8c807c80ecf8dc6, 0x19196419c87d32d1, 0x494939497270923b, 0xd9d943d9869aaf5f, 406 0xf2f2eff2c31df931, 0xe3e3abe34b48dba8, 0x5b5b715be22ab6b9, 0x88881a8834920dbc, 407 0x9a9a529aa4c8293e, 0x262698262dbe4c0b, 0x3232c8328dfa64bf, 0xb0b0fab0e94a7d59, 408 0xe9e983e91b6acff2, 0x0f0f3c0f78331e77, 0xd5d573d5e6a6b733, 0x80803a8074ba1df4, 409 0xbebec2be997c6127, 0xcdcd13cd26de87eb, 0x3434d034bde46889, 0x48483d487a759032, 410 0xffffdbffab24e354, 0x7a7af57af78ff48d, 0x90907a90f4ea3d64, 0x5f5f615fc23ebe9d, 411 0x202080201da0403d, 0x6868bd6867d5d00f, 0x1a1a681ad07234ca, 0xaeae82ae192c41b7, 412 0xb4b4eab4c95e757d, 0x54544d549a19a8ce, 0x93937693ece53b7f, 0x222288220daa442f, 413 0x64648d6407e9c863, 0xf1f1e3f1db12ff2a, 0x7373d173bfa2e6cc, 0x12124812905a2482, 414 0x40401d403a5d807a, 0x0808200840281048, 0xc3c32bc356e89b95, 0xecec97ec337bc5df, 415 0xdbdb4bdb9690ab4d, 0xa1a1bea1611f5fc0, 0x8d8d0e8d1c830791, 0x3d3df43df5c97ac8, 416 0x97976697ccf1335b, 0x0000000000000000, 0xcfcf1bcf36d483f9, 0x2b2bac2b4587566e, 417 0x7676c57697b3ece1, 0x8282328264b019e6, 0xd6d67fd6fea9b128, 0x1b1b6c1bd87736c3, 418 0xb5b5eeb5c15b7774, 0xafaf86af112943be, 0x6a6ab56a77dfd41d, 0x50505d50ba0da0ea, 419 0x45450945124c8a57, 0xf3f3ebf3cb18fb38, 0x3030c0309df060ad, 0xefef9bef2b74c3c4, 420 0x3f3ffc3fe5c37eda, 0x55554955921caac7, 0xa2a2b2a2791059db, 0xeaea8fea0365c9e9, 421 0x656589650fecca6a, 0xbabad2bab9686903, 0x2f2fbc2f65935e4a, 0xc0c027c04ee79d8e, 422 0xdede5fdebe81a160, 0x1c1c701ce06c38fc, 0xfdfdd3fdbb2ee746, 0x4d4d294d52649a1f, 423 0x92927292e4e03976, 0x7575c9758fbceafa, 0x06061806301e0c36, 0x8a8a128a249809ae, 424 0xb2b2f2b2f940794b, 0xe6e6bfe66359d185, 0x0e0e380e70361c7e, 0x1f1f7c1ff8633ee7, 425 0x6262956237f7c455, 0xd4d477d4eea3b53a, 0xa8a89aa829324d81, 0x96966296c4f43152, 426 0xf9f9c3f99b3aef62, 0xc5c533c566f697a3, 0x2525942535b14a10, 0x59597959f220b2ab, 427 0x84842a8454ae15d0, 0x7272d572b7a7e4c5, 0x3939e439d5dd72ec, 0x4c4c2d4c5a619816, 428 0x5e5e655eca3bbc94, 0x7878fd78e785f09f, 0x3838e038ddd870e5, 0x8c8c0a8c14860598, 429 0xd1d163d1c6b2bf17, 0xa5a5aea5410b57e4, 0xe2e2afe2434dd9a1, 0x616199612ff8c24e, 430 0xb3b3f6b3f1457b42, 0x2121842115a54234, 0x9c9c4a9c94d62508, 0x1e1e781ef0663cee, 431 0x4343114322528661, 0xc7c73bc776fc93b1, 0xfcfcd7fcb32be54f, 0x0404100420140824, 432 0x51515951b208a2e3, 0x99995e99bcc72f25, 0x6d6da96d4fc4da22, 0x0d0d340d68391a65, 433 0xfafacffa8335e979, 0xdfdf5bdfb684a369, 0x7e7ee57ed79bfca9, 0x242490243db44819, 434 0x3b3bec3bc5d776fe, 0xabab96ab313d4b9a, 0xcece1fce3ed181f0, 0x1111441188552299, 435 0x8f8f068f0c890383, 0x4e4e254e4a6b9c04, 0xb7b7e6b7d1517366, 0xebeb8beb0b60cbe0, 436 0x3c3cf03cfdcc78c1, 0x81813e817cbf1ffd, 0x94946a94d4fe3540, 0xf7f7fbf7eb0cf31c, 437 0xb9b9deb9a1676f18, 0x13134c13985f268b, 0x2c2cb02c7d9c5851, 0xd3d36bd3d6b8bb05, 438 0xe7e7bbe76b5cd38c, 0x6e6ea56e57cbdc39, 0xc4c437c46ef395aa, 0x03030c03180f061b, 439 0x565645568a13acdc, 0x44440d441a49885e, 0x7f7fe17fdf9efea0, 0xa9a99ea921374f88, 440 0x2a2aa82a4d825467, 0xbbbbd6bbb16d6b0a, 0xc1c123c146e29f87, 0x53535153a202a6f1, 441 0xdcdc57dcae8ba572, 0x0b0b2c0b58271653, 0x9d9d4e9d9cd32701, 0x6c6cad6c47c1d82b, 442 0x3131c43195f562a4, 0x7474cd7487b9e8f3, 0xf6f6fff6e309f115, 0x464605460a438c4c, 443 0xacac8aac092645a5, 0x89891e893c970fb5, 0x14145014a04428b4, 0xe1e1a3e15b42dfba, 444 0x16165816b04e2ca6, 0x3a3ae83acdd274f7, 0x6969b9696fd0d206, 0x09092409482d1241, 445 0x7070dd70a7ade0d7, 0xb6b6e2b6d954716f, 0xd0d067d0ceb7bd1e, 0xeded93ed3b7ec7d6, 446 0xcccc17cc2edb85e2, 0x424215422a578468, 0x98985a98b4c22d2c, 0xa4a4aaa4490e55ed, 447 0x2828a0285d885075, 0x5c5c6d5cda31b886, 0xf8f8c7f8933fed6b, 0x8686228644a411c2, 448 ]; 449 450 /******************************************************************************* 451 452 *******************************************************************************/ 453 454 private static const(ulong[256]) C1 = 455 [ 456 0xd818186018c07830, 0x2623238c2305af46, 0xb8c6c63fc67ef991, 0xfbe8e887e8136fcd, 457 0xcb878726874ca113, 0x11b8b8dab8a9626d, 0x0901010401080502, 0x0d4f4f214f426e9e, 458 0x9b3636d836adee6c, 0xffa6a6a2a6590451, 0x0cd2d26fd2debdb9, 0x0ef5f5f3f5fb06f7, 459 0x967979f979ef80f2, 0x306f6fa16f5fcede, 0x6d91917e91fcef3f, 0xf852525552aa07a4, 460 0x4760609d6027fdc0, 0x35bcbccabc897665, 0x379b9b569baccd2b, 0x8a8e8e028e048c01, 461 0xd2a3a3b6a371155b, 0x6c0c0c300c603c18, 0x847b7bf17bff8af6, 0x803535d435b5e16a, 462 0xf51d1d741de8693a, 0xb3e0e0a7e05347dd, 0x21d7d77bd7f6acb3, 0x9cc2c22fc25eed99, 463 0x432e2eb82e6d965c, 0x294b4b314b627a96, 0x5dfefedffea321e1, 0xd5575741578216ae, 464 0xbd15155415a8412a, 0xe87777c1779fb6ee, 0x923737dc37a5eb6e, 0x9ee5e5b3e57b56d7, 465 0x139f9f469f8cd923, 0x23f0f0e7f0d317fd, 0x204a4a354a6a7f94, 0x44dada4fda9e95a9, 466 0xa258587d58fa25b0, 0xcfc9c903c906ca8f, 0x7c2929a429558d52, 0x5a0a0a280a502214, 467 0x50b1b1feb1e14f7f, 0xc9a0a0baa0691a5d, 0x146b6bb16b7fdad6, 0xd985852e855cab17, 468 0x3cbdbdcebd817367, 0x8f5d5d695dd234ba, 0x9010104010805020, 0x07f4f4f7f4f303f5, 469 0xddcbcb0bcb16c08b, 0xd33e3ef83eedc67c, 0x2d0505140528110a, 0x78676781671fe6ce, 470 0x97e4e4b7e47353d5, 0x0227279c2725bb4e, 0x7341411941325882, 0xa78b8b168b2c9d0b, 471 0xf6a7a7a6a7510153, 0xb27d7de97dcf94fa, 0x4995956e95dcfb37, 0x56d8d847d88e9fad, 472 0x70fbfbcbfb8b30eb, 0xcdeeee9fee2371c1, 0xbb7c7ced7cc791f8, 0x716666856617e3cc, 473 0x7bdddd53dda68ea7, 0xaf17175c17b84b2e, 0x454747014702468e, 0x1a9e9e429e84dc21, 474 0xd4caca0fca1ec589, 0x582d2db42d75995a, 0x2ebfbfc6bf917963, 0x3f07071c07381b0e, 475 0xacadad8ead012347, 0xb05a5a755aea2fb4, 0xef838336836cb51b, 0xb63333cc3385ff66, 476 0x5c636391633ff2c6, 0x1202020802100a04, 0x93aaaa92aa393849, 0xde7171d971afa8e2, 477 0xc6c8c807c80ecf8d, 0xd119196419c87d32, 0x3b49493949727092, 0x5fd9d943d9869aaf, 478 0x31f2f2eff2c31df9, 0xa8e3e3abe34b48db, 0xb95b5b715be22ab6, 0xbc88881a8834920d, 479 0x3e9a9a529aa4c829, 0x0b262698262dbe4c, 0xbf3232c8328dfa64, 0x59b0b0fab0e94a7d, 480 0xf2e9e983e91b6acf, 0x770f0f3c0f78331e, 0x33d5d573d5e6a6b7, 0xf480803a8074ba1d, 481 0x27bebec2be997c61, 0xebcdcd13cd26de87, 0x893434d034bde468, 0x3248483d487a7590, 482 0x54ffffdbffab24e3, 0x8d7a7af57af78ff4, 0x6490907a90f4ea3d, 0x9d5f5f615fc23ebe, 483 0x3d202080201da040, 0x0f6868bd6867d5d0, 0xca1a1a681ad07234, 0xb7aeae82ae192c41, 484 0x7db4b4eab4c95e75, 0xce54544d549a19a8, 0x7f93937693ece53b, 0x2f222288220daa44, 485 0x6364648d6407e9c8, 0x2af1f1e3f1db12ff, 0xcc7373d173bfa2e6, 0x8212124812905a24, 486 0x7a40401d403a5d80, 0x4808082008402810, 0x95c3c32bc356e89b, 0xdfecec97ec337bc5, 487 0x4ddbdb4bdb9690ab, 0xc0a1a1bea1611f5f, 0x918d8d0e8d1c8307, 0xc83d3df43df5c97a, 488 0x5b97976697ccf133, 0x0000000000000000, 0xf9cfcf1bcf36d483, 0x6e2b2bac2b458756, 489 0xe17676c57697b3ec, 0xe68282328264b019, 0x28d6d67fd6fea9b1, 0xc31b1b6c1bd87736, 490 0x74b5b5eeb5c15b77, 0xbeafaf86af112943, 0x1d6a6ab56a77dfd4, 0xea50505d50ba0da0, 491 0x5745450945124c8a, 0x38f3f3ebf3cb18fb, 0xad3030c0309df060, 0xc4efef9bef2b74c3, 492 0xda3f3ffc3fe5c37e, 0xc755554955921caa, 0xdba2a2b2a2791059, 0xe9eaea8fea0365c9, 493 0x6a656589650fecca, 0x03babad2bab96869, 0x4a2f2fbc2f65935e, 0x8ec0c027c04ee79d, 494 0x60dede5fdebe81a1, 0xfc1c1c701ce06c38, 0x46fdfdd3fdbb2ee7, 0x1f4d4d294d52649a, 495 0x7692927292e4e039, 0xfa7575c9758fbcea, 0x3606061806301e0c, 0xae8a8a128a249809, 496 0x4bb2b2f2b2f94079, 0x85e6e6bfe66359d1, 0x7e0e0e380e70361c, 0xe71f1f7c1ff8633e, 497 0x556262956237f7c4, 0x3ad4d477d4eea3b5, 0x81a8a89aa829324d, 0x5296966296c4f431, 498 0x62f9f9c3f99b3aef, 0xa3c5c533c566f697, 0x102525942535b14a, 0xab59597959f220b2, 499 0xd084842a8454ae15, 0xc57272d572b7a7e4, 0xec3939e439d5dd72, 0x164c4c2d4c5a6198, 500 0x945e5e655eca3bbc, 0x9f7878fd78e785f0, 0xe53838e038ddd870, 0x988c8c0a8c148605, 501 0x17d1d163d1c6b2bf, 0xe4a5a5aea5410b57, 0xa1e2e2afe2434dd9, 0x4e616199612ff8c2, 502 0x42b3b3f6b3f1457b, 0x342121842115a542, 0x089c9c4a9c94d625, 0xee1e1e781ef0663c, 503 0x6143431143225286, 0xb1c7c73bc776fc93, 0x4ffcfcd7fcb32be5, 0x2404041004201408, 504 0xe351515951b208a2, 0x2599995e99bcc72f, 0x226d6da96d4fc4da, 0x650d0d340d68391a, 505 0x79fafacffa8335e9, 0x69dfdf5bdfb684a3, 0xa97e7ee57ed79bfc, 0x19242490243db448, 506 0xfe3b3bec3bc5d776, 0x9aabab96ab313d4b, 0xf0cece1fce3ed181, 0x9911114411885522, 507 0x838f8f068f0c8903, 0x044e4e254e4a6b9c, 0x66b7b7e6b7d15173, 0xe0ebeb8beb0b60cb, 508 0xc13c3cf03cfdcc78, 0xfd81813e817cbf1f, 0x4094946a94d4fe35, 0x1cf7f7fbf7eb0cf3, 509 0x18b9b9deb9a1676f, 0x8b13134c13985f26, 0x512c2cb02c7d9c58, 0x05d3d36bd3d6b8bb, 510 0x8ce7e7bbe76b5cd3, 0x396e6ea56e57cbdc, 0xaac4c437c46ef395, 0x1b03030c03180f06, 511 0xdc565645568a13ac, 0x5e44440d441a4988, 0xa07f7fe17fdf9efe, 0x88a9a99ea921374f, 512 0x672a2aa82a4d8254, 0x0abbbbd6bbb16d6b, 0x87c1c123c146e29f, 0xf153535153a202a6, 513 0x72dcdc57dcae8ba5, 0x530b0b2c0b582716, 0x019d9d4e9d9cd327, 0x2b6c6cad6c47c1d8, 514 0xa43131c43195f562, 0xf37474cd7487b9e8, 0x15f6f6fff6e309f1, 0x4c464605460a438c, 515 0xa5acac8aac092645, 0xb589891e893c970f, 0xb414145014a04428, 0xbae1e1a3e15b42df, 516 0xa616165816b04e2c, 0xf73a3ae83acdd274, 0x066969b9696fd0d2, 0x4109092409482d12, 517 0xd77070dd70a7ade0, 0x6fb6b6e2b6d95471, 0x1ed0d067d0ceb7bd, 0xd6eded93ed3b7ec7, 518 0xe2cccc17cc2edb85, 0x68424215422a5784, 0x2c98985a98b4c22d, 0xeda4a4aaa4490e55, 519 0x752828a0285d8850, 0x865c5c6d5cda31b8, 0x6bf8f8c7f8933fed, 0xc28686228644a411, 520 ]; 521 522 /******************************************************************************* 523 524 *******************************************************************************/ 525 526 private static const(ulong[256]) C2 = 527 [ 528 0x30d818186018c078, 0x462623238c2305af, 0x91b8c6c63fc67ef9, 0xcdfbe8e887e8136f, 529 0x13cb878726874ca1, 0x6d11b8b8dab8a962, 0x0209010104010805, 0x9e0d4f4f214f426e, 530 0x6c9b3636d836adee, 0x51ffa6a6a2a65904, 0xb90cd2d26fd2debd, 0xf70ef5f5f3f5fb06, 531 0xf2967979f979ef80, 0xde306f6fa16f5fce, 0x3f6d91917e91fcef, 0xa4f852525552aa07, 532 0xc04760609d6027fd, 0x6535bcbccabc8976, 0x2b379b9b569baccd, 0x018a8e8e028e048c, 533 0x5bd2a3a3b6a37115, 0x186c0c0c300c603c, 0xf6847b7bf17bff8a, 0x6a803535d435b5e1, 534 0x3af51d1d741de869, 0xddb3e0e0a7e05347, 0xb321d7d77bd7f6ac, 0x999cc2c22fc25eed, 535 0x5c432e2eb82e6d96, 0x96294b4b314b627a, 0xe15dfefedffea321, 0xaed5575741578216, 536 0x2abd15155415a841, 0xeee87777c1779fb6, 0x6e923737dc37a5eb, 0xd79ee5e5b3e57b56, 537 0x23139f9f469f8cd9, 0xfd23f0f0e7f0d317, 0x94204a4a354a6a7f, 0xa944dada4fda9e95, 538 0xb0a258587d58fa25, 0x8fcfc9c903c906ca, 0x527c2929a429558d, 0x145a0a0a280a5022, 539 0x7f50b1b1feb1e14f, 0x5dc9a0a0baa0691a, 0xd6146b6bb16b7fda, 0x17d985852e855cab, 540 0x673cbdbdcebd8173, 0xba8f5d5d695dd234, 0x2090101040108050, 0xf507f4f4f7f4f303, 541 0x8bddcbcb0bcb16c0, 0x7cd33e3ef83eedc6, 0x0a2d050514052811, 0xce78676781671fe6, 542 0xd597e4e4b7e47353, 0x4e0227279c2725bb, 0x8273414119413258, 0x0ba78b8b168b2c9d, 543 0x53f6a7a7a6a75101, 0xfab27d7de97dcf94, 0x374995956e95dcfb, 0xad56d8d847d88e9f, 544 0xeb70fbfbcbfb8b30, 0xc1cdeeee9fee2371, 0xf8bb7c7ced7cc791, 0xcc716666856617e3, 545 0xa77bdddd53dda68e, 0x2eaf17175c17b84b, 0x8e45474701470246, 0x211a9e9e429e84dc, 546 0x89d4caca0fca1ec5, 0x5a582d2db42d7599, 0x632ebfbfc6bf9179, 0x0e3f07071c07381b, 547 0x47acadad8ead0123, 0xb4b05a5a755aea2f, 0x1bef838336836cb5, 0x66b63333cc3385ff, 548 0xc65c636391633ff2, 0x041202020802100a, 0x4993aaaa92aa3938, 0xe2de7171d971afa8, 549 0x8dc6c8c807c80ecf, 0x32d119196419c87d, 0x923b494939497270, 0xaf5fd9d943d9869a, 550 0xf931f2f2eff2c31d, 0xdba8e3e3abe34b48, 0xb6b95b5b715be22a, 0x0dbc88881a883492, 551 0x293e9a9a529aa4c8, 0x4c0b262698262dbe, 0x64bf3232c8328dfa, 0x7d59b0b0fab0e94a, 552 0xcff2e9e983e91b6a, 0x1e770f0f3c0f7833, 0xb733d5d573d5e6a6, 0x1df480803a8074ba, 553 0x6127bebec2be997c, 0x87ebcdcd13cd26de, 0x68893434d034bde4, 0x903248483d487a75, 554 0xe354ffffdbffab24, 0xf48d7a7af57af78f, 0x3d6490907a90f4ea, 0xbe9d5f5f615fc23e, 555 0x403d202080201da0, 0xd00f6868bd6867d5, 0x34ca1a1a681ad072, 0x41b7aeae82ae192c, 556 0x757db4b4eab4c95e, 0xa8ce54544d549a19, 0x3b7f93937693ece5, 0x442f222288220daa, 557 0xc86364648d6407e9, 0xff2af1f1e3f1db12, 0xe6cc7373d173bfa2, 0x248212124812905a, 558 0x807a40401d403a5d, 0x1048080820084028, 0x9b95c3c32bc356e8, 0xc5dfecec97ec337b, 559 0xab4ddbdb4bdb9690, 0x5fc0a1a1bea1611f, 0x07918d8d0e8d1c83, 0x7ac83d3df43df5c9, 560 0x335b97976697ccf1, 0x0000000000000000, 0x83f9cfcf1bcf36d4, 0x566e2b2bac2b4587, 561 0xece17676c57697b3, 0x19e68282328264b0, 0xb128d6d67fd6fea9, 0x36c31b1b6c1bd877, 562 0x7774b5b5eeb5c15b, 0x43beafaf86af1129, 0xd41d6a6ab56a77df, 0xa0ea50505d50ba0d, 563 0x8a5745450945124c, 0xfb38f3f3ebf3cb18, 0x60ad3030c0309df0, 0xc3c4efef9bef2b74, 564 0x7eda3f3ffc3fe5c3, 0xaac755554955921c, 0x59dba2a2b2a27910, 0xc9e9eaea8fea0365, 565 0xca6a656589650fec, 0x6903babad2bab968, 0x5e4a2f2fbc2f6593, 0x9d8ec0c027c04ee7, 566 0xa160dede5fdebe81, 0x38fc1c1c701ce06c, 0xe746fdfdd3fdbb2e, 0x9a1f4d4d294d5264, 567 0x397692927292e4e0, 0xeafa7575c9758fbc, 0x0c3606061806301e, 0x09ae8a8a128a2498, 568 0x794bb2b2f2b2f940, 0xd185e6e6bfe66359, 0x1c7e0e0e380e7036, 0x3ee71f1f7c1ff863, 569 0xc4556262956237f7, 0xb53ad4d477d4eea3, 0x4d81a8a89aa82932, 0x315296966296c4f4, 570 0xef62f9f9c3f99b3a, 0x97a3c5c533c566f6, 0x4a102525942535b1, 0xb2ab59597959f220, 571 0x15d084842a8454ae, 0xe4c57272d572b7a7, 0x72ec3939e439d5dd, 0x98164c4c2d4c5a61, 572 0xbc945e5e655eca3b, 0xf09f7878fd78e785, 0x70e53838e038ddd8, 0x05988c8c0a8c1486, 573 0xbf17d1d163d1c6b2, 0x57e4a5a5aea5410b, 0xd9a1e2e2afe2434d, 0xc24e616199612ff8, 574 0x7b42b3b3f6b3f145, 0x42342121842115a5, 0x25089c9c4a9c94d6, 0x3cee1e1e781ef066, 575 0x8661434311432252, 0x93b1c7c73bc776fc, 0xe54ffcfcd7fcb32b, 0x0824040410042014, 576 0xa2e351515951b208, 0x2f2599995e99bcc7, 0xda226d6da96d4fc4, 0x1a650d0d340d6839, 577 0xe979fafacffa8335, 0xa369dfdf5bdfb684, 0xfca97e7ee57ed79b, 0x4819242490243db4, 578 0x76fe3b3bec3bc5d7, 0x4b9aabab96ab313d, 0x81f0cece1fce3ed1, 0x2299111144118855, 579 0x03838f8f068f0c89, 0x9c044e4e254e4a6b, 0x7366b7b7e6b7d151, 0xcbe0ebeb8beb0b60, 580 0x78c13c3cf03cfdcc, 0x1ffd81813e817cbf, 0x354094946a94d4fe, 0xf31cf7f7fbf7eb0c, 581 0x6f18b9b9deb9a167, 0x268b13134c13985f, 0x58512c2cb02c7d9c, 0xbb05d3d36bd3d6b8, 582 0xd38ce7e7bbe76b5c, 0xdc396e6ea56e57cb, 0x95aac4c437c46ef3, 0x061b03030c03180f, 583 0xacdc565645568a13, 0x885e44440d441a49, 0xfea07f7fe17fdf9e, 0x4f88a9a99ea92137, 584 0x54672a2aa82a4d82, 0x6b0abbbbd6bbb16d, 0x9f87c1c123c146e2, 0xa6f153535153a202, 585 0xa572dcdc57dcae8b, 0x16530b0b2c0b5827, 0x27019d9d4e9d9cd3, 0xd82b6c6cad6c47c1, 586 0x62a43131c43195f5, 0xe8f37474cd7487b9, 0xf115f6f6fff6e309, 0x8c4c464605460a43, 587 0x45a5acac8aac0926, 0x0fb589891e893c97, 0x28b414145014a044, 0xdfbae1e1a3e15b42, 588 0x2ca616165816b04e, 0x74f73a3ae83acdd2, 0xd2066969b9696fd0, 0x124109092409482d, 589 0xe0d77070dd70a7ad, 0x716fb6b6e2b6d954, 0xbd1ed0d067d0ceb7, 0xc7d6eded93ed3b7e, 590 0x85e2cccc17cc2edb, 0x8468424215422a57, 0x2d2c98985a98b4c2, 0x55eda4a4aaa4490e, 591 0x50752828a0285d88, 0xb8865c5c6d5cda31, 0xed6bf8f8c7f8933f, 0x11c28686228644a4, 592 ]; 593 594 /******************************************************************************* 595 596 *******************************************************************************/ 597 598 private static const(ulong[256]) C3 = 599 [ 600 0x7830d818186018c0, 0xaf462623238c2305, 0xf991b8c6c63fc67e, 0x6fcdfbe8e887e813, 601 0xa113cb878726874c, 0x626d11b8b8dab8a9, 0x0502090101040108, 0x6e9e0d4f4f214f42, 602 0xee6c9b3636d836ad, 0x0451ffa6a6a2a659, 0xbdb90cd2d26fd2de, 0x06f70ef5f5f3f5fb, 603 0x80f2967979f979ef, 0xcede306f6fa16f5f, 0xef3f6d91917e91fc, 0x07a4f852525552aa, 604 0xfdc04760609d6027, 0x766535bcbccabc89, 0xcd2b379b9b569bac, 0x8c018a8e8e028e04, 605 0x155bd2a3a3b6a371, 0x3c186c0c0c300c60, 0x8af6847b7bf17bff, 0xe16a803535d435b5, 606 0x693af51d1d741de8, 0x47ddb3e0e0a7e053, 0xacb321d7d77bd7f6, 0xed999cc2c22fc25e, 607 0x965c432e2eb82e6d, 0x7a96294b4b314b62, 0x21e15dfefedffea3, 0x16aed55757415782, 608 0x412abd15155415a8, 0xb6eee87777c1779f, 0xeb6e923737dc37a5, 0x56d79ee5e5b3e57b, 609 0xd923139f9f469f8c, 0x17fd23f0f0e7f0d3, 0x7f94204a4a354a6a, 0x95a944dada4fda9e, 610 0x25b0a258587d58fa, 0xca8fcfc9c903c906, 0x8d527c2929a42955, 0x22145a0a0a280a50, 611 0x4f7f50b1b1feb1e1, 0x1a5dc9a0a0baa069, 0xdad6146b6bb16b7f, 0xab17d985852e855c, 612 0x73673cbdbdcebd81, 0x34ba8f5d5d695dd2, 0x5020901010401080, 0x03f507f4f4f7f4f3, 613 0xc08bddcbcb0bcb16, 0xc67cd33e3ef83eed, 0x110a2d0505140528, 0xe6ce78676781671f, 614 0x53d597e4e4b7e473, 0xbb4e0227279c2725, 0x5882734141194132, 0x9d0ba78b8b168b2c, 615 0x0153f6a7a7a6a751, 0x94fab27d7de97dcf, 0xfb374995956e95dc, 0x9fad56d8d847d88e, 616 0x30eb70fbfbcbfb8b, 0x71c1cdeeee9fee23, 0x91f8bb7c7ced7cc7, 0xe3cc716666856617, 617 0x8ea77bdddd53dda6, 0x4b2eaf17175c17b8, 0x468e454747014702, 0xdc211a9e9e429e84, 618 0xc589d4caca0fca1e, 0x995a582d2db42d75, 0x79632ebfbfc6bf91, 0x1b0e3f07071c0738, 619 0x2347acadad8ead01, 0x2fb4b05a5a755aea, 0xb51bef838336836c, 0xff66b63333cc3385, 620 0xf2c65c636391633f, 0x0a04120202080210, 0x384993aaaa92aa39, 0xa8e2de7171d971af, 621 0xcf8dc6c8c807c80e, 0x7d32d119196419c8, 0x70923b4949394972, 0x9aaf5fd9d943d986, 622 0x1df931f2f2eff2c3, 0x48dba8e3e3abe34b, 0x2ab6b95b5b715be2, 0x920dbc88881a8834, 623 0xc8293e9a9a529aa4, 0xbe4c0b262698262d, 0xfa64bf3232c8328d, 0x4a7d59b0b0fab0e9, 624 0x6acff2e9e983e91b, 0x331e770f0f3c0f78, 0xa6b733d5d573d5e6, 0xba1df480803a8074, 625 0x7c6127bebec2be99, 0xde87ebcdcd13cd26, 0xe468893434d034bd, 0x75903248483d487a, 626 0x24e354ffffdbffab, 0x8ff48d7a7af57af7, 0xea3d6490907a90f4, 0x3ebe9d5f5f615fc2, 627 0xa0403d202080201d, 0xd5d00f6868bd6867, 0x7234ca1a1a681ad0, 0x2c41b7aeae82ae19, 628 0x5e757db4b4eab4c9, 0x19a8ce54544d549a, 0xe53b7f93937693ec, 0xaa442f222288220d, 629 0xe9c86364648d6407, 0x12ff2af1f1e3f1db, 0xa2e6cc7373d173bf, 0x5a24821212481290, 630 0x5d807a40401d403a, 0x2810480808200840, 0xe89b95c3c32bc356, 0x7bc5dfecec97ec33, 631 0x90ab4ddbdb4bdb96, 0x1f5fc0a1a1bea161, 0x8307918d8d0e8d1c, 0xc97ac83d3df43df5, 632 0xf1335b97976697cc, 0x0000000000000000, 0xd483f9cfcf1bcf36, 0x87566e2b2bac2b45, 633 0xb3ece17676c57697, 0xb019e68282328264, 0xa9b128d6d67fd6fe, 0x7736c31b1b6c1bd8, 634 0x5b7774b5b5eeb5c1, 0x2943beafaf86af11, 0xdfd41d6a6ab56a77, 0x0da0ea50505d50ba, 635 0x4c8a574545094512, 0x18fb38f3f3ebf3cb, 0xf060ad3030c0309d, 0x74c3c4efef9bef2b, 636 0xc37eda3f3ffc3fe5, 0x1caac75555495592, 0x1059dba2a2b2a279, 0x65c9e9eaea8fea03, 637 0xecca6a656589650f, 0x686903babad2bab9, 0x935e4a2f2fbc2f65, 0xe79d8ec0c027c04e, 638 0x81a160dede5fdebe, 0x6c38fc1c1c701ce0, 0x2ee746fdfdd3fdbb, 0x649a1f4d4d294d52, 639 0xe0397692927292e4, 0xbceafa7575c9758f, 0x1e0c360606180630, 0x9809ae8a8a128a24, 640 0x40794bb2b2f2b2f9, 0x59d185e6e6bfe663, 0x361c7e0e0e380e70, 0x633ee71f1f7c1ff8, 641 0xf7c4556262956237, 0xa3b53ad4d477d4ee, 0x324d81a8a89aa829, 0xf4315296966296c4, 642 0x3aef62f9f9c3f99b, 0xf697a3c5c533c566, 0xb14a102525942535, 0x20b2ab59597959f2, 643 0xae15d084842a8454, 0xa7e4c57272d572b7, 0xdd72ec3939e439d5, 0x6198164c4c2d4c5a, 644 0x3bbc945e5e655eca, 0x85f09f7878fd78e7, 0xd870e53838e038dd, 0x8605988c8c0a8c14, 645 0xb2bf17d1d163d1c6, 0x0b57e4a5a5aea541, 0x4dd9a1e2e2afe243, 0xf8c24e616199612f, 646 0x457b42b3b3f6b3f1, 0xa542342121842115, 0xd625089c9c4a9c94, 0x663cee1e1e781ef0, 647 0x5286614343114322, 0xfc93b1c7c73bc776, 0x2be54ffcfcd7fcb3, 0x1408240404100420, 648 0x08a2e351515951b2, 0xc72f2599995e99bc, 0xc4da226d6da96d4f, 0x391a650d0d340d68, 649 0x35e979fafacffa83, 0x84a369dfdf5bdfb6, 0x9bfca97e7ee57ed7, 0xb44819242490243d, 650 0xd776fe3b3bec3bc5, 0x3d4b9aabab96ab31, 0xd181f0cece1fce3e, 0x5522991111441188, 651 0x8903838f8f068f0c, 0x6b9c044e4e254e4a, 0x517366b7b7e6b7d1, 0x60cbe0ebeb8beb0b, 652 0xcc78c13c3cf03cfd, 0xbf1ffd81813e817c, 0xfe354094946a94d4, 0x0cf31cf7f7fbf7eb, 653 0x676f18b9b9deb9a1, 0x5f268b13134c1398, 0x9c58512c2cb02c7d, 0xb8bb05d3d36bd3d6, 654 0x5cd38ce7e7bbe76b, 0xcbdc396e6ea56e57, 0xf395aac4c437c46e, 0x0f061b03030c0318, 655 0x13acdc565645568a, 0x49885e44440d441a, 0x9efea07f7fe17fdf, 0x374f88a9a99ea921, 656 0x8254672a2aa82a4d, 0x6d6b0abbbbd6bbb1, 0xe29f87c1c123c146, 0x02a6f153535153a2, 657 0x8ba572dcdc57dcae, 0x2716530b0b2c0b58, 0xd327019d9d4e9d9c, 0xc1d82b6c6cad6c47, 658 0xf562a43131c43195, 0xb9e8f37474cd7487, 0x09f115f6f6fff6e3, 0x438c4c464605460a, 659 0x2645a5acac8aac09, 0x970fb589891e893c, 0x4428b414145014a0, 0x42dfbae1e1a3e15b, 660 0x4e2ca616165816b0, 0xd274f73a3ae83acd, 0xd0d2066969b9696f, 0x2d12410909240948, 661 0xade0d77070dd70a7, 0x54716fb6b6e2b6d9, 0xb7bd1ed0d067d0ce, 0x7ec7d6eded93ed3b, 662 0xdb85e2cccc17cc2e, 0x578468424215422a, 0xc22d2c98985a98b4, 0x0e55eda4a4aaa449, 663 0x8850752828a0285d, 0x31b8865c5c6d5cda, 0x3fed6bf8f8c7f893, 0xa411c28686228644, 664 ]; 665 666 /******************************************************************************* 667 668 *******************************************************************************/ 669 670 private static const(ulong[256]) C4 = 671 [ 672 0xc07830d818186018, 0x05af462623238c23, 0x7ef991b8c6c63fc6, 0x136fcdfbe8e887e8, 673 0x4ca113cb87872687, 0xa9626d11b8b8dab8, 0x0805020901010401, 0x426e9e0d4f4f214f, 674 0xadee6c9b3636d836, 0x590451ffa6a6a2a6, 0xdebdb90cd2d26fd2, 0xfb06f70ef5f5f3f5, 675 0xef80f2967979f979, 0x5fcede306f6fa16f, 0xfcef3f6d91917e91, 0xaa07a4f852525552, 676 0x27fdc04760609d60, 0x89766535bcbccabc, 0xaccd2b379b9b569b, 0x048c018a8e8e028e, 677 0x71155bd2a3a3b6a3, 0x603c186c0c0c300c, 0xff8af6847b7bf17b, 0xb5e16a803535d435, 678 0xe8693af51d1d741d, 0x5347ddb3e0e0a7e0, 0xf6acb321d7d77bd7, 0x5eed999cc2c22fc2, 679 0x6d965c432e2eb82e, 0x627a96294b4b314b, 0xa321e15dfefedffe, 0x8216aed557574157, 680 0xa8412abd15155415, 0x9fb6eee87777c177, 0xa5eb6e923737dc37, 0x7b56d79ee5e5b3e5, 681 0x8cd923139f9f469f, 0xd317fd23f0f0e7f0, 0x6a7f94204a4a354a, 0x9e95a944dada4fda, 682 0xfa25b0a258587d58, 0x06ca8fcfc9c903c9, 0x558d527c2929a429, 0x5022145a0a0a280a, 683 0xe14f7f50b1b1feb1, 0x691a5dc9a0a0baa0, 0x7fdad6146b6bb16b, 0x5cab17d985852e85, 684 0x8173673cbdbdcebd, 0xd234ba8f5d5d695d, 0x8050209010104010, 0xf303f507f4f4f7f4, 685 0x16c08bddcbcb0bcb, 0xedc67cd33e3ef83e, 0x28110a2d05051405, 0x1fe6ce7867678167, 686 0x7353d597e4e4b7e4, 0x25bb4e0227279c27, 0x3258827341411941, 0x2c9d0ba78b8b168b, 687 0x510153f6a7a7a6a7, 0xcf94fab27d7de97d, 0xdcfb374995956e95, 0x8e9fad56d8d847d8, 688 0x8b30eb70fbfbcbfb, 0x2371c1cdeeee9fee, 0xc791f8bb7c7ced7c, 0x17e3cc7166668566, 689 0xa68ea77bdddd53dd, 0xb84b2eaf17175c17, 0x02468e4547470147, 0x84dc211a9e9e429e, 690 0x1ec589d4caca0fca, 0x75995a582d2db42d, 0x9179632ebfbfc6bf, 0x381b0e3f07071c07, 691 0x012347acadad8ead, 0xea2fb4b05a5a755a, 0x6cb51bef83833683, 0x85ff66b63333cc33, 692 0x3ff2c65c63639163, 0x100a041202020802, 0x39384993aaaa92aa, 0xafa8e2de7171d971, 693 0x0ecf8dc6c8c807c8, 0xc87d32d119196419, 0x7270923b49493949, 0x869aaf5fd9d943d9, 694 0xc31df931f2f2eff2, 0x4b48dba8e3e3abe3, 0xe22ab6b95b5b715b, 0x34920dbc88881a88, 695 0xa4c8293e9a9a529a, 0x2dbe4c0b26269826, 0x8dfa64bf3232c832, 0xe94a7d59b0b0fab0, 696 0x1b6acff2e9e983e9, 0x78331e770f0f3c0f, 0xe6a6b733d5d573d5, 0x74ba1df480803a80, 697 0x997c6127bebec2be, 0x26de87ebcdcd13cd, 0xbde468893434d034, 0x7a75903248483d48, 698 0xab24e354ffffdbff, 0xf78ff48d7a7af57a, 0xf4ea3d6490907a90, 0xc23ebe9d5f5f615f, 699 0x1da0403d20208020, 0x67d5d00f6868bd68, 0xd07234ca1a1a681a, 0x192c41b7aeae82ae, 700 0xc95e757db4b4eab4, 0x9a19a8ce54544d54, 0xece53b7f93937693, 0x0daa442f22228822, 701 0x07e9c86364648d64, 0xdb12ff2af1f1e3f1, 0xbfa2e6cc7373d173, 0x905a248212124812, 702 0x3a5d807a40401d40, 0x4028104808082008, 0x56e89b95c3c32bc3, 0x337bc5dfecec97ec, 703 0x9690ab4ddbdb4bdb, 0x611f5fc0a1a1bea1, 0x1c8307918d8d0e8d, 0xf5c97ac83d3df43d, 704 0xccf1335b97976697, 0x0000000000000000, 0x36d483f9cfcf1bcf, 0x4587566e2b2bac2b, 705 0x97b3ece17676c576, 0x64b019e682823282, 0xfea9b128d6d67fd6, 0xd87736c31b1b6c1b, 706 0xc15b7774b5b5eeb5, 0x112943beafaf86af, 0x77dfd41d6a6ab56a, 0xba0da0ea50505d50, 707 0x124c8a5745450945, 0xcb18fb38f3f3ebf3, 0x9df060ad3030c030, 0x2b74c3c4efef9bef, 708 0xe5c37eda3f3ffc3f, 0x921caac755554955, 0x791059dba2a2b2a2, 0x0365c9e9eaea8fea, 709 0x0fecca6a65658965, 0xb9686903babad2ba, 0x65935e4a2f2fbc2f, 0x4ee79d8ec0c027c0, 710 0xbe81a160dede5fde, 0xe06c38fc1c1c701c, 0xbb2ee746fdfdd3fd, 0x52649a1f4d4d294d, 711 0xe4e0397692927292, 0x8fbceafa7575c975, 0x301e0c3606061806, 0x249809ae8a8a128a, 712 0xf940794bb2b2f2b2, 0x6359d185e6e6bfe6, 0x70361c7e0e0e380e, 0xf8633ee71f1f7c1f, 713 0x37f7c45562629562, 0xeea3b53ad4d477d4, 0x29324d81a8a89aa8, 0xc4f4315296966296, 714 0x9b3aef62f9f9c3f9, 0x66f697a3c5c533c5, 0x35b14a1025259425, 0xf220b2ab59597959, 715 0x54ae15d084842a84, 0xb7a7e4c57272d572, 0xd5dd72ec3939e439, 0x5a6198164c4c2d4c, 716 0xca3bbc945e5e655e, 0xe785f09f7878fd78, 0xddd870e53838e038, 0x148605988c8c0a8c, 717 0xc6b2bf17d1d163d1, 0x410b57e4a5a5aea5, 0x434dd9a1e2e2afe2, 0x2ff8c24e61619961, 718 0xf1457b42b3b3f6b3, 0x15a5423421218421, 0x94d625089c9c4a9c, 0xf0663cee1e1e781e, 719 0x2252866143431143, 0x76fc93b1c7c73bc7, 0xb32be54ffcfcd7fc, 0x2014082404041004, 720 0xb208a2e351515951, 0xbcc72f2599995e99, 0x4fc4da226d6da96d, 0x68391a650d0d340d, 721 0x8335e979fafacffa, 0xb684a369dfdf5bdf, 0xd79bfca97e7ee57e, 0x3db4481924249024, 722 0xc5d776fe3b3bec3b, 0x313d4b9aabab96ab, 0x3ed181f0cece1fce, 0x8855229911114411, 723 0x0c8903838f8f068f, 0x4a6b9c044e4e254e, 0xd1517366b7b7e6b7, 0x0b60cbe0ebeb8beb, 724 0xfdcc78c13c3cf03c, 0x7cbf1ffd81813e81, 0xd4fe354094946a94, 0xeb0cf31cf7f7fbf7, 725 0xa1676f18b9b9deb9, 0x985f268b13134c13, 0x7d9c58512c2cb02c, 0xd6b8bb05d3d36bd3, 726 0x6b5cd38ce7e7bbe7, 0x57cbdc396e6ea56e, 0x6ef395aac4c437c4, 0x180f061b03030c03, 727 0x8a13acdc56564556, 0x1a49885e44440d44, 0xdf9efea07f7fe17f, 0x21374f88a9a99ea9, 728 0x4d8254672a2aa82a, 0xb16d6b0abbbbd6bb, 0x46e29f87c1c123c1, 0xa202a6f153535153, 729 0xae8ba572dcdc57dc, 0x582716530b0b2c0b, 0x9cd327019d9d4e9d, 0x47c1d82b6c6cad6c, 730 0x95f562a43131c431, 0x87b9e8f37474cd74, 0xe309f115f6f6fff6, 0x0a438c4c46460546, 731 0x092645a5acac8aac, 0x3c970fb589891e89, 0xa04428b414145014, 0x5b42dfbae1e1a3e1, 732 0xb04e2ca616165816, 0xcdd274f73a3ae83a, 0x6fd0d2066969b969, 0x482d124109092409, 733 0xa7ade0d77070dd70, 0xd954716fb6b6e2b6, 0xceb7bd1ed0d067d0, 0x3b7ec7d6eded93ed, 734 0x2edb85e2cccc17cc, 0x2a57846842421542, 0xb4c22d2c98985a98, 0x490e55eda4a4aaa4, 735 0x5d8850752828a028, 0xda31b8865c5c6d5c, 0x933fed6bf8f8c7f8, 0x44a411c286862286, 736 ]; 737 738 /******************************************************************************* 739 740 *******************************************************************************/ 741 742 private static const(ulong[256]) C5 = 743 [ 744 0x18c07830d8181860, 0x2305af462623238c, 0xc67ef991b8c6c63f, 0xe8136fcdfbe8e887, 745 0x874ca113cb878726, 0xb8a9626d11b8b8da, 0x0108050209010104, 0x4f426e9e0d4f4f21, 746 0x36adee6c9b3636d8, 0xa6590451ffa6a6a2, 0xd2debdb90cd2d26f, 0xf5fb06f70ef5f5f3, 747 0x79ef80f2967979f9, 0x6f5fcede306f6fa1, 0x91fcef3f6d91917e, 0x52aa07a4f8525255, 748 0x6027fdc04760609d, 0xbc89766535bcbcca, 0x9baccd2b379b9b56, 0x8e048c018a8e8e02, 749 0xa371155bd2a3a3b6, 0x0c603c186c0c0c30, 0x7bff8af6847b7bf1, 0x35b5e16a803535d4, 750 0x1de8693af51d1d74, 0xe05347ddb3e0e0a7, 0xd7f6acb321d7d77b, 0xc25eed999cc2c22f, 751 0x2e6d965c432e2eb8, 0x4b627a96294b4b31, 0xfea321e15dfefedf, 0x578216aed5575741, 752 0x15a8412abd151554, 0x779fb6eee87777c1, 0x37a5eb6e923737dc, 0xe57b56d79ee5e5b3, 753 0x9f8cd923139f9f46, 0xf0d317fd23f0f0e7, 0x4a6a7f94204a4a35, 0xda9e95a944dada4f, 754 0x58fa25b0a258587d, 0xc906ca8fcfc9c903, 0x29558d527c2929a4, 0x0a5022145a0a0a28, 755 0xb1e14f7f50b1b1fe, 0xa0691a5dc9a0a0ba, 0x6b7fdad6146b6bb1, 0x855cab17d985852e, 756 0xbd8173673cbdbdce, 0x5dd234ba8f5d5d69, 0x1080502090101040, 0xf4f303f507f4f4f7, 757 0xcb16c08bddcbcb0b, 0x3eedc67cd33e3ef8, 0x0528110a2d050514, 0x671fe6ce78676781, 758 0xe47353d597e4e4b7, 0x2725bb4e0227279c, 0x4132588273414119, 0x8b2c9d0ba78b8b16, 759 0xa7510153f6a7a7a6, 0x7dcf94fab27d7de9, 0x95dcfb374995956e, 0xd88e9fad56d8d847, 760 0xfb8b30eb70fbfbcb, 0xee2371c1cdeeee9f, 0x7cc791f8bb7c7ced, 0x6617e3cc71666685, 761 0xdda68ea77bdddd53, 0x17b84b2eaf17175c, 0x4702468e45474701, 0x9e84dc211a9e9e42, 762 0xca1ec589d4caca0f, 0x2d75995a582d2db4, 0xbf9179632ebfbfc6, 0x07381b0e3f07071c, 763 0xad012347acadad8e, 0x5aea2fb4b05a5a75, 0x836cb51bef838336, 0x3385ff66b63333cc, 764 0x633ff2c65c636391, 0x02100a0412020208, 0xaa39384993aaaa92, 0x71afa8e2de7171d9, 765 0xc80ecf8dc6c8c807, 0x19c87d32d1191964, 0x497270923b494939, 0xd9869aaf5fd9d943, 766 0xf2c31df931f2f2ef, 0xe34b48dba8e3e3ab, 0x5be22ab6b95b5b71, 0x8834920dbc88881a, 767 0x9aa4c8293e9a9a52, 0x262dbe4c0b262698, 0x328dfa64bf3232c8, 0xb0e94a7d59b0b0fa, 768 0xe91b6acff2e9e983, 0x0f78331e770f0f3c, 0xd5e6a6b733d5d573, 0x8074ba1df480803a, 769 0xbe997c6127bebec2, 0xcd26de87ebcdcd13, 0x34bde468893434d0, 0x487a75903248483d, 770 0xffab24e354ffffdb, 0x7af78ff48d7a7af5, 0x90f4ea3d6490907a, 0x5fc23ebe9d5f5f61, 771 0x201da0403d202080, 0x6867d5d00f6868bd, 0x1ad07234ca1a1a68, 0xae192c41b7aeae82, 772 0xb4c95e757db4b4ea, 0x549a19a8ce54544d, 0x93ece53b7f939376, 0x220daa442f222288, 773 0x6407e9c86364648d, 0xf1db12ff2af1f1e3, 0x73bfa2e6cc7373d1, 0x12905a2482121248, 774 0x403a5d807a40401d, 0x0840281048080820, 0xc356e89b95c3c32b, 0xec337bc5dfecec97, 775 0xdb9690ab4ddbdb4b, 0xa1611f5fc0a1a1be, 0x8d1c8307918d8d0e, 0x3df5c97ac83d3df4, 776 0x97ccf1335b979766, 0x0000000000000000, 0xcf36d483f9cfcf1b, 0x2b4587566e2b2bac, 777 0x7697b3ece17676c5, 0x8264b019e6828232, 0xd6fea9b128d6d67f, 0x1bd87736c31b1b6c, 778 0xb5c15b7774b5b5ee, 0xaf112943beafaf86, 0x6a77dfd41d6a6ab5, 0x50ba0da0ea50505d, 779 0x45124c8a57454509, 0xf3cb18fb38f3f3eb, 0x309df060ad3030c0, 0xef2b74c3c4efef9b, 780 0x3fe5c37eda3f3ffc, 0x55921caac7555549, 0xa2791059dba2a2b2, 0xea0365c9e9eaea8f, 781 0x650fecca6a656589, 0xbab9686903babad2, 0x2f65935e4a2f2fbc, 0xc04ee79d8ec0c027, 782 0xdebe81a160dede5f, 0x1ce06c38fc1c1c70, 0xfdbb2ee746fdfdd3, 0x4d52649a1f4d4d29, 783 0x92e4e03976929272, 0x758fbceafa7575c9, 0x06301e0c36060618, 0x8a249809ae8a8a12, 784 0xb2f940794bb2b2f2, 0xe66359d185e6e6bf, 0x0e70361c7e0e0e38, 0x1ff8633ee71f1f7c, 785 0x6237f7c455626295, 0xd4eea3b53ad4d477, 0xa829324d81a8a89a, 0x96c4f43152969662, 786 0xf99b3aef62f9f9c3, 0xc566f697a3c5c533, 0x2535b14a10252594, 0x59f220b2ab595979, 787 0x8454ae15d084842a, 0x72b7a7e4c57272d5, 0x39d5dd72ec3939e4, 0x4c5a6198164c4c2d, 788 0x5eca3bbc945e5e65, 0x78e785f09f7878fd, 0x38ddd870e53838e0, 0x8c148605988c8c0a, 789 0xd1c6b2bf17d1d163, 0xa5410b57e4a5a5ae, 0xe2434dd9a1e2e2af, 0x612ff8c24e616199, 790 0xb3f1457b42b3b3f6, 0x2115a54234212184, 0x9c94d625089c9c4a, 0x1ef0663cee1e1e78, 791 0x4322528661434311, 0xc776fc93b1c7c73b, 0xfcb32be54ffcfcd7, 0x0420140824040410, 792 0x51b208a2e3515159, 0x99bcc72f2599995e, 0x6d4fc4da226d6da9, 0x0d68391a650d0d34, 793 0xfa8335e979fafacf, 0xdfb684a369dfdf5b, 0x7ed79bfca97e7ee5, 0x243db44819242490, 794 0x3bc5d776fe3b3bec, 0xab313d4b9aabab96, 0xce3ed181f0cece1f, 0x1188552299111144, 795 0x8f0c8903838f8f06, 0x4e4a6b9c044e4e25, 0xb7d1517366b7b7e6, 0xeb0b60cbe0ebeb8b, 796 0x3cfdcc78c13c3cf0, 0x817cbf1ffd81813e, 0x94d4fe354094946a, 0xf7eb0cf31cf7f7fb, 797 0xb9a1676f18b9b9de, 0x13985f268b13134c, 0x2c7d9c58512c2cb0, 0xd3d6b8bb05d3d36b, 798 0xe76b5cd38ce7e7bb, 0x6e57cbdc396e6ea5, 0xc46ef395aac4c437, 0x03180f061b03030c, 799 0x568a13acdc565645, 0x441a49885e44440d, 0x7fdf9efea07f7fe1, 0xa921374f88a9a99e, 800 0x2a4d8254672a2aa8, 0xbbb16d6b0abbbbd6, 0xc146e29f87c1c123, 0x53a202a6f1535351, 801 0xdcae8ba572dcdc57, 0x0b582716530b0b2c, 0x9d9cd327019d9d4e, 0x6c47c1d82b6c6cad, 802 0x3195f562a43131c4, 0x7487b9e8f37474cd, 0xf6e309f115f6f6ff, 0x460a438c4c464605, 803 0xac092645a5acac8a, 0x893c970fb589891e, 0x14a04428b4141450, 0xe15b42dfbae1e1a3, 804 0x16b04e2ca6161658, 0x3acdd274f73a3ae8, 0x696fd0d2066969b9, 0x09482d1241090924, 805 0x70a7ade0d77070dd, 0xb6d954716fb6b6e2, 0xd0ceb7bd1ed0d067, 0xed3b7ec7d6eded93, 806 0xcc2edb85e2cccc17, 0x422a578468424215, 0x98b4c22d2c98985a, 0xa4490e55eda4a4aa, 807 0x285d8850752828a0, 0x5cda31b8865c5c6d, 0xf8933fed6bf8f8c7, 0x8644a411c2868622, 808 ]; 809 810 /******************************************************************************* 811 812 *******************************************************************************/ 813 814 private static const(ulong[256]) C6 = 815 [ 816 0x6018c07830d81818, 0x8c2305af46262323, 0x3fc67ef991b8c6c6, 0x87e8136fcdfbe8e8, 817 0x26874ca113cb8787, 0xdab8a9626d11b8b8, 0x0401080502090101, 0x214f426e9e0d4f4f, 818 0xd836adee6c9b3636, 0xa2a6590451ffa6a6, 0x6fd2debdb90cd2d2, 0xf3f5fb06f70ef5f5, 819 0xf979ef80f2967979, 0xa16f5fcede306f6f, 0x7e91fcef3f6d9191, 0x5552aa07a4f85252, 820 0x9d6027fdc0476060, 0xcabc89766535bcbc, 0x569baccd2b379b9b, 0x028e048c018a8e8e, 821 0xb6a371155bd2a3a3, 0x300c603c186c0c0c, 0xf17bff8af6847b7b, 0xd435b5e16a803535, 822 0x741de8693af51d1d, 0xa7e05347ddb3e0e0, 0x7bd7f6acb321d7d7, 0x2fc25eed999cc2c2, 823 0xb82e6d965c432e2e, 0x314b627a96294b4b, 0xdffea321e15dfefe, 0x41578216aed55757, 824 0x5415a8412abd1515, 0xc1779fb6eee87777, 0xdc37a5eb6e923737, 0xb3e57b56d79ee5e5, 825 0x469f8cd923139f9f, 0xe7f0d317fd23f0f0, 0x354a6a7f94204a4a, 0x4fda9e95a944dada, 826 0x7d58fa25b0a25858, 0x03c906ca8fcfc9c9, 0xa429558d527c2929, 0x280a5022145a0a0a, 827 0xfeb1e14f7f50b1b1, 0xbaa0691a5dc9a0a0, 0xb16b7fdad6146b6b, 0x2e855cab17d98585, 828 0xcebd8173673cbdbd, 0x695dd234ba8f5d5d, 0x4010805020901010, 0xf7f4f303f507f4f4, 829 0x0bcb16c08bddcbcb, 0xf83eedc67cd33e3e, 0x140528110a2d0505, 0x81671fe6ce786767, 830 0xb7e47353d597e4e4, 0x9c2725bb4e022727, 0x1941325882734141, 0x168b2c9d0ba78b8b, 831 0xa6a7510153f6a7a7, 0xe97dcf94fab27d7d, 0x6e95dcfb37499595, 0x47d88e9fad56d8d8, 832 0xcbfb8b30eb70fbfb, 0x9fee2371c1cdeeee, 0xed7cc791f8bb7c7c, 0x856617e3cc716666, 833 0x53dda68ea77bdddd, 0x5c17b84b2eaf1717, 0x014702468e454747, 0x429e84dc211a9e9e, 834 0x0fca1ec589d4caca, 0xb42d75995a582d2d, 0xc6bf9179632ebfbf, 0x1c07381b0e3f0707, 835 0x8ead012347acadad, 0x755aea2fb4b05a5a, 0x36836cb51bef8383, 0xcc3385ff66b63333, 836 0x91633ff2c65c6363, 0x0802100a04120202, 0x92aa39384993aaaa, 0xd971afa8e2de7171, 837 0x07c80ecf8dc6c8c8, 0x6419c87d32d11919, 0x39497270923b4949, 0x43d9869aaf5fd9d9, 838 0xeff2c31df931f2f2, 0xabe34b48dba8e3e3, 0x715be22ab6b95b5b, 0x1a8834920dbc8888, 839 0x529aa4c8293e9a9a, 0x98262dbe4c0b2626, 0xc8328dfa64bf3232, 0xfab0e94a7d59b0b0, 840 0x83e91b6acff2e9e9, 0x3c0f78331e770f0f, 0x73d5e6a6b733d5d5, 0x3a8074ba1df48080, 841 0xc2be997c6127bebe, 0x13cd26de87ebcdcd, 0xd034bde468893434, 0x3d487a7590324848, 842 0xdbffab24e354ffff, 0xf57af78ff48d7a7a, 0x7a90f4ea3d649090, 0x615fc23ebe9d5f5f, 843 0x80201da0403d2020, 0xbd6867d5d00f6868, 0x681ad07234ca1a1a, 0x82ae192c41b7aeae, 844 0xeab4c95e757db4b4, 0x4d549a19a8ce5454, 0x7693ece53b7f9393, 0x88220daa442f2222, 845 0x8d6407e9c8636464, 0xe3f1db12ff2af1f1, 0xd173bfa2e6cc7373, 0x4812905a24821212, 846 0x1d403a5d807a4040, 0x2008402810480808, 0x2bc356e89b95c3c3, 0x97ec337bc5dfecec, 847 0x4bdb9690ab4ddbdb, 0xbea1611f5fc0a1a1, 0x0e8d1c8307918d8d, 0xf43df5c97ac83d3d, 848 0x6697ccf1335b9797, 0x0000000000000000, 0x1bcf36d483f9cfcf, 0xac2b4587566e2b2b, 849 0xc57697b3ece17676, 0x328264b019e68282, 0x7fd6fea9b128d6d6, 0x6c1bd87736c31b1b, 850 0xeeb5c15b7774b5b5, 0x86af112943beafaf, 0xb56a77dfd41d6a6a, 0x5d50ba0da0ea5050, 851 0x0945124c8a574545, 0xebf3cb18fb38f3f3, 0xc0309df060ad3030, 0x9bef2b74c3c4efef, 852 0xfc3fe5c37eda3f3f, 0x4955921caac75555, 0xb2a2791059dba2a2, 0x8fea0365c9e9eaea, 853 0x89650fecca6a6565, 0xd2bab9686903baba, 0xbc2f65935e4a2f2f, 0x27c04ee79d8ec0c0, 854 0x5fdebe81a160dede, 0x701ce06c38fc1c1c, 0xd3fdbb2ee746fdfd, 0x294d52649a1f4d4d, 855 0x7292e4e039769292, 0xc9758fbceafa7575, 0x1806301e0c360606, 0x128a249809ae8a8a, 856 0xf2b2f940794bb2b2, 0xbfe66359d185e6e6, 0x380e70361c7e0e0e, 0x7c1ff8633ee71f1f, 857 0x956237f7c4556262, 0x77d4eea3b53ad4d4, 0x9aa829324d81a8a8, 0x6296c4f431529696, 858 0xc3f99b3aef62f9f9, 0x33c566f697a3c5c5, 0x942535b14a102525, 0x7959f220b2ab5959, 859 0x2a8454ae15d08484, 0xd572b7a7e4c57272, 0xe439d5dd72ec3939, 0x2d4c5a6198164c4c, 860 0x655eca3bbc945e5e, 0xfd78e785f09f7878, 0xe038ddd870e53838, 0x0a8c148605988c8c, 861 0x63d1c6b2bf17d1d1, 0xaea5410b57e4a5a5, 0xafe2434dd9a1e2e2, 0x99612ff8c24e6161, 862 0xf6b3f1457b42b3b3, 0x842115a542342121, 0x4a9c94d625089c9c, 0x781ef0663cee1e1e, 863 0x1143225286614343, 0x3bc776fc93b1c7c7, 0xd7fcb32be54ffcfc, 0x1004201408240404, 864 0x5951b208a2e35151, 0x5e99bcc72f259999, 0xa96d4fc4da226d6d, 0x340d68391a650d0d, 865 0xcffa8335e979fafa, 0x5bdfb684a369dfdf, 0xe57ed79bfca97e7e, 0x90243db448192424, 866 0xec3bc5d776fe3b3b, 0x96ab313d4b9aabab, 0x1fce3ed181f0cece, 0x4411885522991111, 867 0x068f0c8903838f8f, 0x254e4a6b9c044e4e, 0xe6b7d1517366b7b7, 0x8beb0b60cbe0ebeb, 868 0xf03cfdcc78c13c3c, 0x3e817cbf1ffd8181, 0x6a94d4fe35409494, 0xfbf7eb0cf31cf7f7, 869 0xdeb9a1676f18b9b9, 0x4c13985f268b1313, 0xb02c7d9c58512c2c, 0x6bd3d6b8bb05d3d3, 870 0xbbe76b5cd38ce7e7, 0xa56e57cbdc396e6e, 0x37c46ef395aac4c4, 0x0c03180f061b0303, 871 0x45568a13acdc5656, 0x0d441a49885e4444, 0xe17fdf9efea07f7f, 0x9ea921374f88a9a9, 872 0xa82a4d8254672a2a, 0xd6bbb16d6b0abbbb, 0x23c146e29f87c1c1, 0x5153a202a6f15353, 873 0x57dcae8ba572dcdc, 0x2c0b582716530b0b, 0x4e9d9cd327019d9d, 0xad6c47c1d82b6c6c, 874 0xc43195f562a43131, 0xcd7487b9e8f37474, 0xfff6e309f115f6f6, 0x05460a438c4c4646, 875 0x8aac092645a5acac, 0x1e893c970fb58989, 0x5014a04428b41414, 0xa3e15b42dfbae1e1, 876 0x5816b04e2ca61616, 0xe83acdd274f73a3a, 0xb9696fd0d2066969, 0x2409482d12410909, 877 0xdd70a7ade0d77070, 0xe2b6d954716fb6b6, 0x67d0ceb7bd1ed0d0, 0x93ed3b7ec7d6eded, 878 0x17cc2edb85e2cccc, 0x15422a5784684242, 0x5a98b4c22d2c9898, 0xaaa4490e55eda4a4, 879 0xa0285d8850752828, 0x6d5cda31b8865c5c, 0xc7f8933fed6bf8f8, 0x228644a411c28686, 880 ]; 881 882 /******************************************************************************* 883 884 *******************************************************************************/ 885 886 private static const(ulong[256]) C7 = 887 [ 888 0x186018c07830d818, 0x238c2305af462623, 0xc63fc67ef991b8c6, 0xe887e8136fcdfbe8, 889 0x8726874ca113cb87, 0xb8dab8a9626d11b8, 0x0104010805020901, 0x4f214f426e9e0d4f, 890 0x36d836adee6c9b36, 0xa6a2a6590451ffa6, 0xd26fd2debdb90cd2, 0xf5f3f5fb06f70ef5, 891 0x79f979ef80f29679, 0x6fa16f5fcede306f, 0x917e91fcef3f6d91, 0x525552aa07a4f852, 892 0x609d6027fdc04760, 0xbccabc89766535bc, 0x9b569baccd2b379b, 0x8e028e048c018a8e, 893 0xa3b6a371155bd2a3, 0x0c300c603c186c0c, 0x7bf17bff8af6847b, 0x35d435b5e16a8035, 894 0x1d741de8693af51d, 0xe0a7e05347ddb3e0, 0xd77bd7f6acb321d7, 0xc22fc25eed999cc2, 895 0x2eb82e6d965c432e, 0x4b314b627a96294b, 0xfedffea321e15dfe, 0x5741578216aed557, 896 0x155415a8412abd15, 0x77c1779fb6eee877, 0x37dc37a5eb6e9237, 0xe5b3e57b56d79ee5, 897 0x9f469f8cd923139f, 0xf0e7f0d317fd23f0, 0x4a354a6a7f94204a, 0xda4fda9e95a944da, 898 0x587d58fa25b0a258, 0xc903c906ca8fcfc9, 0x29a429558d527c29, 0x0a280a5022145a0a, 899 0xb1feb1e14f7f50b1, 0xa0baa0691a5dc9a0, 0x6bb16b7fdad6146b, 0x852e855cab17d985, 900 0xbdcebd8173673cbd, 0x5d695dd234ba8f5d, 0x1040108050209010, 0xf4f7f4f303f507f4, 901 0xcb0bcb16c08bddcb, 0x3ef83eedc67cd33e, 0x05140528110a2d05, 0x6781671fe6ce7867, 902 0xe4b7e47353d597e4, 0x279c2725bb4e0227, 0x4119413258827341, 0x8b168b2c9d0ba78b, 903 0xa7a6a7510153f6a7, 0x7de97dcf94fab27d, 0x956e95dcfb374995, 0xd847d88e9fad56d8, 904 0xfbcbfb8b30eb70fb, 0xee9fee2371c1cdee, 0x7ced7cc791f8bb7c, 0x66856617e3cc7166, 905 0xdd53dda68ea77bdd, 0x175c17b84b2eaf17, 0x47014702468e4547, 0x9e429e84dc211a9e, 906 0xca0fca1ec589d4ca, 0x2db42d75995a582d, 0xbfc6bf9179632ebf, 0x071c07381b0e3f07, 907 0xad8ead012347acad, 0x5a755aea2fb4b05a, 0x8336836cb51bef83, 0x33cc3385ff66b633, 908 0x6391633ff2c65c63, 0x020802100a041202, 0xaa92aa39384993aa, 0x71d971afa8e2de71, 909 0xc807c80ecf8dc6c8, 0x196419c87d32d119, 0x4939497270923b49, 0xd943d9869aaf5fd9, 910 0xf2eff2c31df931f2, 0xe3abe34b48dba8e3, 0x5b715be22ab6b95b, 0x881a8834920dbc88, 911 0x9a529aa4c8293e9a, 0x2698262dbe4c0b26, 0x32c8328dfa64bf32, 0xb0fab0e94a7d59b0, 912 0xe983e91b6acff2e9, 0x0f3c0f78331e770f, 0xd573d5e6a6b733d5, 0x803a8074ba1df480, 913 0xbec2be997c6127be, 0xcd13cd26de87ebcd, 0x34d034bde4688934, 0x483d487a75903248, 914 0xffdbffab24e354ff, 0x7af57af78ff48d7a, 0x907a90f4ea3d6490, 0x5f615fc23ebe9d5f, 915 0x2080201da0403d20, 0x68bd6867d5d00f68, 0x1a681ad07234ca1a, 0xae82ae192c41b7ae, 916 0xb4eab4c95e757db4, 0x544d549a19a8ce54, 0x937693ece53b7f93, 0x2288220daa442f22, 917 0x648d6407e9c86364, 0xf1e3f1db12ff2af1, 0x73d173bfa2e6cc73, 0x124812905a248212, 918 0x401d403a5d807a40, 0x0820084028104808, 0xc32bc356e89b95c3, 0xec97ec337bc5dfec, 919 0xdb4bdb9690ab4ddb, 0xa1bea1611f5fc0a1, 0x8d0e8d1c8307918d, 0x3df43df5c97ac83d, 920 0x976697ccf1335b97, 0x0000000000000000, 0xcf1bcf36d483f9cf, 0x2bac2b4587566e2b, 921 0x76c57697b3ece176, 0x82328264b019e682, 0xd67fd6fea9b128d6, 0x1b6c1bd87736c31b, 922 0xb5eeb5c15b7774b5, 0xaf86af112943beaf, 0x6ab56a77dfd41d6a, 0x505d50ba0da0ea50, 923 0x450945124c8a5745, 0xf3ebf3cb18fb38f3, 0x30c0309df060ad30, 0xef9bef2b74c3c4ef, 924 0x3ffc3fe5c37eda3f, 0x554955921caac755, 0xa2b2a2791059dba2, 0xea8fea0365c9e9ea, 925 0x6589650fecca6a65, 0xbad2bab9686903ba, 0x2fbc2f65935e4a2f, 0xc027c04ee79d8ec0, 926 0xde5fdebe81a160de, 0x1c701ce06c38fc1c, 0xfdd3fdbb2ee746fd, 0x4d294d52649a1f4d, 927 0x927292e4e0397692, 0x75c9758fbceafa75, 0x061806301e0c3606, 0x8a128a249809ae8a, 928 0xb2f2b2f940794bb2, 0xe6bfe66359d185e6, 0x0e380e70361c7e0e, 0x1f7c1ff8633ee71f, 929 0x62956237f7c45562, 0xd477d4eea3b53ad4, 0xa89aa829324d81a8, 0x966296c4f4315296, 930 0xf9c3f99b3aef62f9, 0xc533c566f697a3c5, 0x25942535b14a1025, 0x597959f220b2ab59, 931 0x842a8454ae15d084, 0x72d572b7a7e4c572, 0x39e439d5dd72ec39, 0x4c2d4c5a6198164c, 932 0x5e655eca3bbc945e, 0x78fd78e785f09f78, 0x38e038ddd870e538, 0x8c0a8c148605988c, 933 0xd163d1c6b2bf17d1, 0xa5aea5410b57e4a5, 0xe2afe2434dd9a1e2, 0x6199612ff8c24e61, 934 0xb3f6b3f1457b42b3, 0x21842115a5423421, 0x9c4a9c94d625089c, 0x1e781ef0663cee1e, 935 0x4311432252866143, 0xc73bc776fc93b1c7, 0xfcd7fcb32be54ffc, 0x0410042014082404, 936 0x515951b208a2e351, 0x995e99bcc72f2599, 0x6da96d4fc4da226d, 0x0d340d68391a650d, 937 0xfacffa8335e979fa, 0xdf5bdfb684a369df, 0x7ee57ed79bfca97e, 0x2490243db4481924, 938 0x3bec3bc5d776fe3b, 0xab96ab313d4b9aab, 0xce1fce3ed181f0ce, 0x1144118855229911, 939 0x8f068f0c8903838f, 0x4e254e4a6b9c044e, 0xb7e6b7d1517366b7, 0xeb8beb0b60cbe0eb, 940 0x3cf03cfdcc78c13c, 0x813e817cbf1ffd81, 0x946a94d4fe354094, 0xf7fbf7eb0cf31cf7, 941 0xb9deb9a1676f18b9, 0x134c13985f268b13, 0x2cb02c7d9c58512c, 0xd36bd3d6b8bb05d3, 942 0xe7bbe76b5cd38ce7, 0x6ea56e57cbdc396e, 0xc437c46ef395aac4, 0x030c03180f061b03, 943 0x5645568a13acdc56, 0x440d441a49885e44, 0x7fe17fdf9efea07f, 0xa99ea921374f88a9, 944 0x2aa82a4d8254672a, 0xbbd6bbb16d6b0abb, 0xc123c146e29f87c1, 0x535153a202a6f153, 945 0xdc57dcae8ba572dc, 0x0b2c0b582716530b, 0x9d4e9d9cd327019d, 0x6cad6c47c1d82b6c, 946 0x31c43195f562a431, 0x74cd7487b9e8f374, 0xf6fff6e309f115f6, 0x4605460a438c4c46, 947 0xac8aac092645a5ac, 0x891e893c970fb589, 0x145014a04428b414, 0xe1a3e15b42dfbae1, 948 0x165816b04e2ca616, 0x3ae83acdd274f73a, 0x69b9696fd0d20669, 0x092409482d124109, 949 0x70dd70a7ade0d770, 0xb6e2b6d954716fb6, 0xd067d0ceb7bd1ed0, 0xed93ed3b7ec7d6ed, 950 0xcc17cc2edb85e2cc, 0x4215422a57846842, 0x985a98b4c22d2c98, 0xa4aaa4490e55eda4, 951 0x28a0285d88507528, 0x5c6d5cda31b8865c, 0xf8c7f8933fed6bf8, 0x86228644a411c286, 952 ]; 953 954 /******************************************************************************* 955 956 *******************************************************************************/ 957 958 private static const(ulong[INTERNAL_ROUNDS + 1]) rc = 959 [ 960 0x0000000000000000, 961 0x1823c6e887b8014f, 962 0x36a6d2f5796f9152, 963 0x60bc9b8ea30c7b35, 964 0x1de0d7c22e4bfe57, 965 0x157737e59ff04ada, 966 0x58c9290ab1a06b85, 967 0xbd5d10f4cb3e0567, 968 0xe427418ba77d95d8, 969 0xfbee7c66dd17479e, 970 0xca2dbf07ad5a8333, 971 ]; 972 973 /******************************************************************************* 974 975 *******************************************************************************/ 976 977 unittest 978 { 979 void testISOVectors() 980 { 981 // The ISO test vectors and results 982 static istring[] strings = 983 [ 984 "", 985 "a", 986 "abc", 987 "message digest", 988 "abcdefghijklmnopqrstuvwxyz", 989 "abcdbcdecdefdefgefghfghighijhijk", 990 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 991 "12345678901234567890123456789012345678901234567890123456789012345678901234567890", 992 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" // Not an ISO vector, but from FIPS 993 ]; 994 995 static istring[] results = 996 [ 997 "19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3", 998 "8aca2602792aec6f11a67206531fb7d7f0dff59413145e6973c45001d0087b42d11bc645413aeff63a42391a39145a591a92200d560195e53b478584fdae231a", 999 "4e2448a4c6f486bb16b6562c73b4020bf3043e3a731bce721ae1b303d97e6d4c7181eebdb6c57e277d0e34957114cbd6c797fc9d95d8b582d225292076d4eef5", 1000 "378c84a4126e2dc6e56dcc7458377aac838d00032230f53ce1f5700c0ffb4d3b8421557659ef55c106b4b52ac5a4aaa692ed920052838f3362e86dbd37a8903e", 1001 "f1d754662636ffe92c82ebb9212a484a8d38631ead4238f5442ee13b8054e41b08bf2a9251c30b6a0b8aae86177ab4a6f68f673e7207865d5d9819a3dba4eb3b", 1002 "2a987ea40f917061f5d6f0a0e4644f488a7a5a52deee656207c562f988e95c6916bdc8031bc5be1b7b947639fe050b56939baaa0adff9ae6745b7b181c3be3fd", 1003 "dc37e008cf9ee69bf11f00ed9aba26901dd7c28cdec066cc6af42e40f82f3a1e08eba26629129d8fb7cb57211b9281a65517cc879d7b962142c65f5a7af01467", 1004 "466ef18babb0154d25b9d38a6414f5c08784372bccb204d6549c4afadb6014294d5bd8df2a6c44e538cd047b2681a51a2c60481e88c5a20b2c2a80cf3a9a083b", 1005 "526b2394d85683e24b29acd0fd37f7d5027f61366a1407262dc2a6a345d9e240c017c1833db1e6db6a46bd444b0c69520c856e7c6e9c366d150a7da3aeb160d1", 1006 ]; 1007 1008 Whirlpool h = new Whirlpool(); 1009 1010 foreach (i, s; strings) 1011 { 1012 h.update(cast(ubyte[]) s); 1013 char[] d = h.hexDigest; 1014 1015 test(d == results[i],":("~s~")("~d~")!=("~results[i]~")"); 1016 } 1017 1018 { 1019 char[] s = new char[1000000]; 1020 for (auto i = 0; i < s.length; i++) s[i] = 'a'; 1021 auto result = "0c99005beb57eff50a7cf005560ddf5d29057fd86b20bfd62deca0f1ccea4af51fc15490eddc47af32bb2b66c34ff9ad8c6008ad677f77126953b226e4ed8b01"; 1022 h.update(cast(ubyte[]) s); 1023 auto d = h.hexDigest; 1024 1025 test(d == result,":(1 million times \"a\")("~d~")!=("~result~")"); 1026 } 1027 } 1028 1029 void testNESSIE0bitVectors() { 1030 // Part of the NESSIE test vectors and results: strings of 0 bits 1031 ubyte[128] data = 0; 1032 static istring[] results = 1033 [ 1034 "19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3", 1035 "4d9444c212955963d425a410176fccfb74161e6839692b4c11fde2ed6eb559efe0560c39a7b61d5a8bcabd6817a3135af80f342a4942ccaae745abddfb6afed0", 1036 "8bdc9d4471d0dabd8812098b8cbdf5090beddb3d582917a61e176e3d22529d753fed9a37990ca18583855efbc4f26e88f62002f67722eb05f74c7ea5e07013f5", 1037 "86aabfd4a83c3551cc0a63185616acb41cdfa96118f1ffb28376b41067efa25fb6c889662435bfc11a4f0936be6bcc2c3e905c4686db06159c40e4dd67dd983f", 1038 "4ed6b52e915f09a803677c3131f7b34655d32817505d89a8cc07ed073ca3fedddd4a57cc53696027e824ab9822630087657c6fc6a28836cf1f252ed204bca576", 1039 "4a1d1d8380f38896b6fc5788c559f92727acfd4dfa7081c72302b17e1ed437b30a24cfd75a16fd71b6bf5aa7ae5c7084594e3003a0b71584dc993681f902df6f", 1040 "a2a379b0900a3c51809f4216aa3347fec486d50ec7376553349c5cf2a767049a87bf1ac4642185144924259ecf6b5c3b48b55a20565de289361e8ae5eafc5802", 1041 "23eb3e26a1543558672f29e196304cd778ea459cc8e38d199de0cc748bd32d58090fadb39e7c7b6954322de990556d001ba457061c4367c6fa5d6961f1046e2f", 1042 "7207be34fee657189af2748358f46c23175c1dcdd6741a9bdb139aeb255b618b711775fc258ac0fa53c350305862415ea121c65bf9e2fae06cbd81355d928ad7", 1043 "fef7d0be035d1860e95644864b199c3a94eb23ab7920134b73239a320eb7cae450092bc4ba8b9809e20c33937c37c52b52ca90241657ffd0816420c01f4fada8", 1044 "caafb557aef0fae9f20bcccda7f3dc769c478a70508f4f2d180303598276934c410bd3d17627159a9c55b5265b516ba7f3eef67fbb08d9f22e585bc45964c4d1", 1045 "8fe2b488ca099db8e421768e1e7e0193ffaa3000e8281403795575fe7d03bd87298c4f64b1c4311093e43de4d80049645782ee268c3653c7a5c13da3773d5564", 1046 "2e065509d50d6135e4c4bd238b0e4138391c98082a596e76bdf1fb925b5069adca9548f833296da968573b965f79cd806624fb8c7e06f728aa04f24185878933", 1047 "51fdcea18fdb55a7497e06f33c74194daf0138411075749ed5f00eba59e7f850da6d36b7ee851beabcb449537910a73b8878c88a868a7168c677ac4601ac71d8", 1048 "2e19c1695b708d20f9b2e4e3cc2df40b9ca4dc8c709a148b1f0da5934116050d12c4ab44d0cc6cc82e86c0f140ddd4a7a1152b2c42d150965224fdd3fe2c5a94", 1049 "b501bc7a16fc812eda69ad0f8453ddc57278478cb1a704b1977e22090e82e7a280c1bf20bf130b98e7b3b2f4eda87ef03a4900dc7c0427da4e28e422186beecc", 1050 "a1f020a9b16c1318660d573d7e5203c14438196f247a55f09a6bf67211bcfdae71077cdf5b0e243a61ce10ffc561da4c0462600e11f176c2537da22bfc9386b9", 1051 "a4e587d1bdf7c7a9897dc2a002e0c3240aac073dabd4b04b2cec2ae8a5751d3059b12d78efcb1b9b7f18bb69ab7f7c9f89f6a1c5e59325bc5e827a1cdcf990f5", 1052 "9a7e6b5e34a4ff26b990a3bd844e059b39b7a58eefe37ef96c595cf6a52eb697f8263cdb34566ffa3387cc7895cab74196ef0e42162fde8e2b3aaf435aa1d07b", 1053 "a979eefd43c26fe934399d26e18714b59d53572f9dc265937c1a24b48480ccd7c409f8a0322156cc602afa2a3df8ba5e1c86fc00de2a420b9412aa48af7f10d0", 1054 "212d82efab4a9c99b4559ed090830db4e70f469d98927453d8ca2956afb4f92fa79174a552e7a17c1c87e640117d67b0ed377548ec64df6e534593c218369ef0", 1055 "fce5e68f1e2ae9aea93514e4cb2b29eddb4c6a3955244d554f99aea42c61db3e761f9bead5c05470c20cfbf605c1ea4b0f3877487cac9b8177bd3df3aa67cc3a", 1056 "c8f99a4fc37587d3cf36c65fc0249648866fe4c2a99ae47f0ee0f3d3270c3134a487182847afd3d056a15a9e35c5a2fd76947ac1627514a8d1f2ecc057cfcd5e", 1057 "98b42ee3e98849bf1f6d8589f129ab12f055883c520e6001f536e67ea6bd34db4bd610b415f455867b6ab1c31a9ddc37330a57fb6b0f1f20efba12ff560a2e16", 1058 "4b8e81860b0035eb2189eae73e23c9f34b3d993c3387ab276c2f47aada04391d609c70611b3420a72af1af12d4733f40457c0f75ac656c4e798e8b29556a8497", 1059 "3c0863d6bd033ff0ea6801d7c11a7f4f89c3f0678ebc1981d0e98ef9f435429dd25e1238aacfb47bfd6bdd4016981a2832c8b5687c654c12dba0c40c806d6a79", 1060 "1243171d17b72affa1beb5fa7a57cbd6432447476da2e785dd85946ba7d1836d81fa7048d7870d10072c56970d65ba2b759181f6115693deb2cf88ddf13878dd", 1061 "09b029e928fe1ebda47fd79e32e3201ded573890305fa7193c185d741c1dede443e55ee21c1ea5d608d03bf04e1f29832e70c22bc4962ff56d24b333f272dbc4", 1062 "97d10c6aa678886e186551df174bd9bfda299c1cfa0a926eda92290f99fc05d9e23ec4897686ea7eb576686a5c27b10c23c76e303410bbaed0e165e2a8d362dd", 1063 "799324597820515a94d854031e00312b91ac8f0aeb7ec79cc87503e2fbec48ddc1179f0f4d25326a59ec82a84057c04534b032b66924b925520a8ce0e4449649", 1064 "b5dadbdd162118d69ca21825c05d4fa4ee9195cbac15d1f649c235043c9bc1e3ff8920920b2843503d70deb087d9698dd6436698e1dc1f54216bdc6188f13acf", 1065 "3e3f188f8febbeb17a933feaf7fe53a4858d80c915ad6a1418f0318e68d49b4e459223cd414e0fbc8a57578fd755d86e827abef4070fc1503e25d99e382f72ba", 1066 "961b5f299f750f880fca004bdf2882e2fe1b491b0c0ee7e2b514c5dfdd53292dbdbee17e6d3bb5824cdec1867cc7090963be8fff0c1d8ed5864e07cacb50d68a", 1067 "54a9c8784dbf6c2618ca32057b76b9d6733c19f4a377cb7e892d057bf73e83fbaf6ac147a65fef0991dc296955440ad0b793f81c5cf71e29669ce3f19195aaf7", 1068 "7fd61031451a6635f4a8bf56f9e3b6c699c77d573bbe2f1f4938a0630b7d6fb64f202f5e8c4dafb23d5b4481089bc198d0324178a3c9a625e101744ac517b681", 1069 "bb00019c930b4f8b3c035861174b2e8cdb94cdfa4f5b08082944f86505cd6eb18f7c95f1e031ab42c510187927f9fedae3085a8e1918fb1acde7a0fc6cf3c62f", 1070 "9e74ee84973257cd3507387da7f4388ba46c55fa55ec0b991ec0ef01c8ed629eabd003f585c62d46d70a760b51ffba48f4aa1d10519ddb09ad95e536f5d9faac", 1071 "012cd71c3d938304bd65dcc705f1ea511ff1981aaf6b641f9e3714b1fec010ae8bedd39fb497cc1affcde1dd33569eb970c3dd7bb073ecd130028bb0f76b356c", 1072 "f7c0484614245f5cf54dc03d14e00ac30a86de8fe9e3de1741c75d3c7202570f2a5b70618fbb1c851285ec2c4cb961254ddade9ba7639993b12efa1d66e7c61d", 1073 "25f7cf0ceef2a61a657d852140daf9f19567534b34e1928c26fc6499a29e896c8c7a5c2bb2393fcca4c1ef811ef530954b758fbe2120303be63394fa340ae544", 1074 "4a9ce34ecdcfb9a5082ded6f56c24ae155ab3225dfd6ad39fa79df6dc9b58fbe346c40b1aa58af7b836e0e6346bcd0b0e686eba4ee86c4cc77eb7de1d16d43f0", 1075 "eeabdb9655fa9d652cce83fc697b8534a3d92cfa0c2cfabcf3393be1ad9d6589fd6eeebceac9bf3ef3251a7811b793fd03f17d2fa00edb17c423394dc6bedda1", 1076 "9ce6a4a20a719186c8946d824fb2be78260fed469a0a9946a44cfe3a43d5e11c642407b473fe72ef087c45edaeb2c137ff379a7f60747895ae03f6fc337cacd0", 1077 "af2d773502eef6e86448d5b465d056b9530877ffa1a97bbedc17c119e48bb3be0c79df54940d10163436c8841fbbd565ddb7a8de850445ef93ab5d2e8c19d4c1", 1078 "e67ab8b825252076477d3282e69b006f10d76a841318dcba82de290928f46ebbcc5a6e3ebfb8aefc8f997928f2adf351376c214eae23cd8e1632b7acae102959", 1079 "cf1476329ec7be76c0808249e39a9c0d05b0010eda8d9f21ce4a0794698d3016f28830fe1628061a9c2db8e0155092b3c5c606e2c3900f8112cf2f03cca96edd", 1080 "b0d5b4e4caa9f3360d016ed86fdb2b8ba579ae7df45c63231774cbd369aedb065cd32cac6914b629a76242d8bae5ddcec8decad1ccc3cf2fff044d1f84415975", 1081 "894e242d8ac2bffe0bb2f5be206796dd7666bf8c113547c064e6b7755e0b27af4126ec1301e8ddab0fd1ca202ffcd71287bb7fdbcba73f87fcfb90fea846129b", 1082 "2de58b719aaf6c07d8d4c3d2f61a3950ed877a8619328177b2a3f1deae6122797bfeb0ad190845805a129eacd11be90d63367d34f19734909a1af19a951e8359", 1083 "dc40979db11829c0e8513c23e92de628fd53d03a35c281393f35f5952c3f2e062100e1bf077f4ca0c24f26d250829daaaad9f33b5caa9c081ba2b4910648810a", 1084 "3cf2523477a56d6e8c8d2de34f574ce2ca1d13104bc209df6e0b2f587680ef038713216b4b869bb92e8d13293b8861b75a1fba392793f0b58dd21f65c06fb8b4", 1085 "4ce343439d4f8a3af5b2027fad0764d28ba561c7ff02ed53fe1d1de47a6b7e89f3f3f259c7c46968fe0c065e25ac91f0ad493b28f662792f1d561fce029bfb5b", 1086 "e1c06f1951ee384bea3a2ee974b81fd4674e65e89d09e42c0309d2df9e2aa004ccecd3dba2ae5e31d56f83cf7d84036b081713dd70e36881f2acf7312e6119b0", 1087 "586b6f60d778cd32d7fd4f6166d6c06e2f730477787f8f0259264d121b9aeb3963b38a9250adbcb6ac7029051acfaa141406efc19560b3ed33e86fab7ac1fea2", 1088 "edc165f52b5e493fa4b39ad06339be79b1afdb204bfc792011200ac951468eedfe6a73da03331ee95beccf01e2260a30d2d36679e184d6e6417fc01647731076", 1089 "d64ab30797e2d5e986b7b6fe99fc5aa79918d4423a5808d64f8042a9489485e6619f57d2865091b363a3b9b788b16690fba45e8be352fc9517b58a05937383e7", 1090 "0b3f5378ebed2bf4d7be3cfd818c1b03b6bb03d346948b04f4f40c726f0758702a0f1e225880e38dd5f6ed6de9b1e961e49fc1318d7cb74822f3d0e2e9a7e7b0", 1091 "8e2f3c36f961d08f0ee389412b434595914821829f21a213366f898516ec97bda3d13814fcd8c5fa9ab9ed92246c73824d54a36cb19a9c986f4b7e41ebe12ed3", 1092 "a516c5c831f4e56bf8ed0b7c193c967536f1063f23085fb3ff7098dd3070dc7fa6f9b26c5c26942cd4ff8189f777b66bff9385e6136df6a2b0d5bcd3c8ad2878", 1093 "30e347272c63d340ed0781cca5270894db39e7a97fb5f5e9ee2ad988a127eea4c7eee0f1c8a33dd5ed8d01f91e18cb433434a35d82bc4fde5f2fcd91a657d84e", 1094 "9417f6af2a8325268a0998adb4196189d7140797fb757d6f081defc5b5e4d37d8f45830eec029e2e45bb6b9e019fac97bd3ee79db9a8a4fdede69d66d63fa009", 1095 "d059f4847864c24d11511e5589005c1d5d550111e30c557be0b1f02ab7f2495e44799253724e19026bfa6b0e544d35747af75044237a25ee9a2315cc9e3e18d1", 1096 "6119c33347ad30067e75d33f5990b4ecdae1fc4e42aaf17888d2526ace673223a483875e1854f9f60aef51678be2d52b6b4880b7e07395431845b6736881ec45", 1097 "0fac8ef35b4f7be6e1ac1580eef1a8a90f81e3043cc45e918eda3543d9d4e9e3aa16c8e5e71bf792f81ca67f625ff98f9ca1eab8fa9b78c9d2e771cf249768dd", 1098 "15cfa7c1df8e0d6753d9a9aed0642867e26bb3cf11df7dac96f60c274e060fda941ec41eaff5f7375f3839632516ae9a831d9f2fbe2bd0ff02e9cf16e99ebd03", 1099 "85e124c4415bcf4319543e3a63ff571d09354ceebee1e325308c9069f43e2ae4d0e51d4eb1e8642870194e9530d8d8af6589d1bf6949ddf90a7f1208623795b9", 1100 "fce5e522e77e3f85b81565c43beb03b63231db8ea7940251bb5b33484353be66c8d6c314a661a89cfd9088b4e54762a21c246b7c662903ad2de5ab7c12a1e842", 1101 "75e11b045a3ea2af6b5cb47a602836ad1e3c8b72d242acca4be83cfc48826b4554c2f3f804b29181e71bed658ff366f66879f2fea08bda0c224f41db6b144871", 1102 "70b34639476a82db9086fad0810a0610cd778d1432e58a173f60d0480992ed1f04ae4dbffd8471efce2cc39576b6367c79863e844d198763c2e1a5f63a1747aa", 1103 "d2d92a49569825acec8a67abc1f71adaba3d1bef1137660e23e8950bc9f42ab571bdef48835e488c02d2a8a80bf94fd175f99e0b27db4bdf9596d64b39b1cf8d", 1104 "edf51be6cf0ae98337dd78747f7d0809585be1ee3c7b09dc439b513c7b2a0387d1950294ec73ba68308e30e2d4bdb679849a054a16b05333036da3cd59b76329", 1105 "e3ba063cb8efcdf32b0b38d929b88f28dd64a9a88df9958db2fd8074c24597c981b358882ff09a501b1b7037047fb96b716e5047f3630ddb4e5a39aa862c23f8", 1106 "a75bd3d61e3a0820fdb151a65fbe42bfb2e247fdba142a516374ce8305e4830049a69f37048b4c098a4415745e753bdd679b019b40cf93bbead892045bd6fa3d", 1107 "d45072f92f621082b1c5775f25e8cf8c93dd853219c7039355d308e9cc981794f2a593a71aea900487858e93860dea4898510e4ea48053404a9075b677e64531", 1108 "6a9d999c3cb074e3ea1605f68c01fa5b402b382f6953a5c973da9e888e0354c815d26fd72448aeb9aaab0a24685dbf8c096841f8d89606eabd58cd14ca6fbe74", 1109 "05b9648219a7e9d839084aaa64c4b2b74db42f8bd435a5b69079df2335ec24547b867ef9b567c43acd70fa0d010c48e4695833da57fe0c60ad9111958a3b4116", 1110 "6c243e768b3f7c4fc5c4dcb3bf6fa4fb44767615ebaeda0a572cd12624c29e508e4c814bea8f21f0f2eb69d0045297960e1ef5d3bee86858590f55d303cf1d87", 1111 "c98ebbaae2df1fcbb406b6dd831bb68ca317924a7563152a2ce61dd101bfef277a0f7be5fa040c9f41952052c58c3e32e2b07d7c0d39fbd20950a149595c82f8", 1112 "f739c74b2aea5c89781c5de3b9ee9cae1ccb71e6a8824b1c42e4ba0f35efb0a479ade849196af1a5ea74d3ba6ab1e05d330da469a96bfcbce7f9097fbfd3ed08", 1113 "cc5c707f98cfb307084d2202e8183f43014fc73b54d04592ae7ef6a3d95fc25ca04c8004f4d9fc4975cb5fb5921ee9e812c720474b5e4ba3dfdac77b9bd62872", 1114 "036b2bf483d53db440673faa192985c305b5f35c6c4f14d2bea22be44a843eaf81f620f47493d29d47a99292b26706e3d82db753ff1eff72e5912e904c652b01", 1115 "005f1d907c6be7a0063dc782426103d4bc64b12fa12addb2fe3129738349adb31dd92eb5fbf76538d1e16b4d7e0dea61863218231907e280d0ca9ab8b1264444", 1116 "b61902fc169b85a006698fbf8798ba6af1bf8ddbdb4300a70e5de4bfa35fb083e9a19387731c288215ce2bd7e4bd6548957c4e09a14afed1d5f91020fead2401", 1117 "6bc92cd769704e459dcee1b0a37a04ca79babfb5a6aa75ac16eb63ddb1f6207886942715c46daf871a6cb64357f19c7726ef7ed1fc36b15a95c05e4c4f221d43", 1118 "f61a9fc5ee251e87ea50a0031f132a2a8ec40755e0cb5b440e92c71869556b62fe91d6867dbc170a7a89b28c316c6930d7351f0269647205746a8ab0a65c79b8", 1119 "8fe667be1ae384ef73f1c12bb95b1e4378e54a70f8d0d329633d59ce6c24fe1c46807d94f44b3348d362f1b64ad811914fec30dbac19aeaa34468cc7e2888517", 1120 "95948460b4f1b29b463aa07b7be6e43af59e41dfd95b1bd93696c5094420715fcab72288a4d573d76349f0a97e67058828906db4ecf61d8210f5ff4a0a1df8f1", 1121 "a16153c7051b55e7926e75cbff374bec74f2e92d745b485809aa3d11b40cb367d1da142918bced6e015ca04293417116b688fda90b08a5c3170f9dd1fa9ac161", 1122 "c9b020a35ef82512f8adf2f3d839646c43e47cc385beefa1c553f4d153f1c9f98ff6658c19ff0ef30d02b255f0134701e1b8a9d5012047b1597182f2bcedd860", 1123 "a570fa22948572ea4e18a1c86550a5dab7c12259b65ee9fe5d32de799d7249e356fad35bd694435aef45a2483fe26ff15b83d5468ef34bcb932a26a3d801b658", 1124 "83c9bef94a2041a920df5b4665004202e4b3cc9373c881ee61ca402e765ebca6d9c6c4d9a521115ef427430a56ec4c1d007e56f170891ace1a672ed369a86a4f", 1125 "3cdb51acb9f8e1578de697cc0930450f31c20f92e719b6ec4a6ba9bc4b6ac8bb9d848f35d00a69090b3a7261a5314157596c737a88509a29e0881407ce5e3bcf", 1126 "dcc2cad3a902af3b3e6d5cf383b0181d9132f39a754961f3b3f670f4b196728de2fb4b595d18f74337911633ac1624a3aa3a33199e95e0cf7815f9b6d656c685", 1127 "e6ddf6e43856374276aaee041dbbe63655f52cd176363ee956c98202e0eb3fbee8f2fb9989a4a72cc494fa9f6f9759a3e4b0d33be24a9dc37e02ec1fbeebec04", 1128 "1c17c03ac300744c417447afe4fc8db2b814836dc7450c4b621cb147b5f96e2172b133ef62db323bdd8ad9b45d25932ad5feafbdb36ebd38c8d711b706bbf283", 1129 "3392d35211e8e70f2f10426e8b53e900a1d463d21970c0e82aff0d8e41b1abbd672d4d5650cb2c24d347f25f4a07242a2f2d5522f9215c09dfe01502f80e91e9", 1130 "84c17bd37a65ecac894c644bb7f1141d40352569dbd03b774a119d0d27e663db243108e1834225f1b37d573ee36dabdb9b015729800a2fcd6fdfcaa0e0ef519d", 1131 "ca3e0545fa1445d2c92f1efb0c7e3b094984b81a9f08f2c27b572531151dce8556caa8d532061794b3c58a2dde54ad43eaed1c2a04503cb985227a93f954ca57", 1132 "a7d14d84e4fdf8514f27a16a2d91af7044e2c1782971e9f790a06058659389ca333cd3f4e6de8845d3875ed478ae33b9392999ada377483e1adfaeebd4b33a58", 1133 "541e0b0add60b7af7fe95130f9e21a871397f13d206d76924b16e912afbd699243507e325c05431604514723bed8b9ca39491c6a9074a130f7629efc2b9056b3", 1134 "e4e08244a13e99f363fdcc35e6a90ff7dabc13be436b7fca2409fd1a8465e0607a9b160413a46ab7d8daade1b8527c3c15e66235dd868ec927fdc9c159203959", 1135 "3ebb7109dd79e67fef25bc0a21bb40a12eb37224f27319609c73dca5c3dad25879a97e5aabc6bdb55d9e521615de4d4a814185eb49e51133c59bb3dffc655162", 1136 "84cbd41d122c7df738ca360362d99152bf7239f74282fb7192c7d6d7e68f2560583163f7f68ea8fe8733607d4dd67934ffc5723b6525be04496498e82ba92221", 1137 "9a571a2982af27a6c11ca7015935bf58192e09cb15f725389709e8844083319e501bf32bff52dff8e5ec1e8c27bad05c143699eb19db1a514a5e127dc3c03379", 1138 "7af60a5d97c40d4f83eafa97c598c57964b4a25fa43784ffd0b4a8c76e76d97549facba985d1319987f3819fa7249f399eb2047844c9a5e008abfc292aead796", 1139 "311e6fe802eef5a6dc36a26f5cc831afa5a8874e9df044d5dd57ad721d00d8a3616a12f3767e5580a8653af82f14265d734d83e160be24b35d03d32eba14a902", 1140 "44f9aceeb3816d0e6c4f36a27a3989aa3e937e0d75720029832683999e87d8773f0fa8c29a71b62ddb744216c8e7e43993fedc32ce2902c0ac1f53f47a7dfa61", 1141 "a752bd35b98a170c04ae436354074b91c6f0ec0b42f20934bc3bc3c9ab117f8b1f7169b4c471a8c87a9236253645a25f2084ca002b584c7c12fb06633eb8c6db", 1142 "9c0c2d06c86ca051af80f32ee17ec2ea0756f83ec27660a38b85e1783422e07d4d331322fdbf7671849bda1b9b63c293c52bca566abe1e1d264bb8e48f76ca22", 1143 "7140bc6850b4ceda301e6fa9ece5a0f9e56cedc52720a3a80a6e8688abbc8fc633154672da0db25f95a252014f8a60cd1f3803a5d1d29686cf2d8d2cef096522", 1144 "84bbeb1d94f26cbcedfbc2e88b2db243f9c9609f541d2318af4d87c9045ac76e86743e000ac2aadbebf85d48a1135652e908c2bfa16cdbd1ef4caae26afe65a2", 1145 "58058d5811cb118fa2480b0e76c00cb217c6f7b40dc786f884194ad2ce2e4620862ebacf758afe3e304a16f6dd57503890d8c6609fb5b26df2f19a461ef2e4b1", 1146 "e7a337a2189f07031e4b68e6114df7e1f0979970e90a999390b6a374bbdeb37d5842c6c2a691d6d9f600626c57c73f4b70082ca6770daec1ede1dd28c984964e", 1147 "fab9052917bf1feaa1989d0bd79a6d4bbeae2bd4ecfdcd61607815d6c6857aaa38be4b27fc9ea6520cc0f0935ebb61012d1d580c5b04f6dca1ec973ebad2254e", 1148 "9855fe16ff0349c62e7d582ac20045f338d37fd70f62c860b83fcccea80b48c614e1ee443466f4e5ceffb7f27f40b749db5d6391d84981ed85c82c9c45b4cdf1", 1149 "c8079a4221f11ead657c380953ef46c87336604630266add73afb30f3010a1d7f3250fcb7e83f467bdbb1ddc11ea27f61364af0b7d334fc48525740cae208de7", 1150 "9e7d24de7b1f616085056466268d30cc306c618c775d4550570a0c51d6840627fd784c79141a9a4f77d9f938bfdcd8c69db2ce4f8733924e646113344407e1cf", 1151 "5e72bbed520a7b8ed4168157cd16d673742f2aef38be106a8a461b878af563d2f78fa6ca55ccbef568ff3cc735ab4d1c48d8169783910bf52488cd9ffd9f8cd4", 1152 "7aa748a47b62072cf213afce5f8212c7b2c2c7d90ac9a4ff3e964350a76eabe400379036c33474e1a2fa0d128f3cfb59249cf01fda102b5db8519f0b9a2b4f52", 1153 "4003434d77081d59ef43f826de060d4776d94ce8c9b7e0d11d3c7a159addcaaed691843793ff0a6482c1f9eb5740765bd47720cbd7660ea0e310a76e09bc38cd", 1154 "2adee7400ca8b2d5ee3cc614b7de1a94d70246ca6b29b7ecd7b01a59cea0592730aad9fee593c9d3d809d47d74b901f897e8c7901ddfc68ca5a1971c41853415", 1155 "b2bd8fb6dac755aee5cb7e834a697ef606b45652537961e587a11529995d588f11c28f7728999e19edcb07cedb18b98f843d240e537ed64b60c3f5497fe4d661", 1156 "d2cfec1e66e0ae55e01e17bdbc35e00c4f18588385433da3c9e823ea17fef5d17970dcbdb6108cc0dfea4dd39a30f23646473426d03566c622eb1da0b8b3a4dc", 1157 "065f8a62b8ec8d3f3172015e32a5714c30627b53533daae508ec85fb90048de708a2199d9ea4efa6949139f7526cbd8bab6402cbda92de82fad802409ca2e772", 1158 "a11ea682ea8b07efe7c1290988a8deffe453aaffae4f3dd6619d96e496f28f5fe3556c3999fe9fcdb5a19f0631580e9b1bcb74f5003f512b92bc068508cb279c", 1159 "4648c011888388ec85f19bd3a5247dc69ef1883d4472d6f7bfd5fdcaef3e35770c65ec0c32cadebb91471301225c21d4d64a520071b5ecc3bee8e0d21d6f6d3b", 1160 "f62d5b8a06576ede68c5d8454d448202ce0b1c85ce20a139739ce78e3cbb4810679ba2b4e211a2b0c03d064e3164b96ffb94f04bfd4d504657a9866b0eed1d5b", 1161 "cf73ab693e86e45fc33f9dc174443e7ea4e8acb131257f5ceac4503d9c7a1138342e2b80e6c4fddb3b47b00c990283903039cb5622ac905b3b9c1ed7c9982194", 1162 ]; 1163 1164 Whirlpool h = new Whirlpool(); 1165 for (int i = 0; i < data.length; i++) 1166 { 1167 h.update(data[0..i]); 1168 auto d = h.hexDigest; 1169 1170 test(d == results[i],":( 0-bytes)("~d~")!=("~results[i]~")"); 1171 } 1172 1173 } 1174 1175 void testNESSIE1bitVectors() { 1176 // Part of the NESSIE test vectors and results: 512-bit strings containing a single 1-bit 1177 ubyte[64] data = 0; 1178 static istring[] results = 1179 [ 1180 "103e0055a9b090e11c8fddebba06c05ace8b64b896128f6eed3071fcf3dc16946778e07223233fd180fc40ccdb8430a640e37634271e655ca1674ebff507f8cb", 1181 "a892e8125f792ee5997d175257633bf889f947759ad6f19dd233f467a3261643f815ded3eed7892a315402cb341fe713c109c0c217a9f4c53bb9920af88136e7", 1182 "3732a6b86410ddbe043e4685c2ff369dc2c51b05a4331b427fa83e8020cab052bcb928c89d4777f91e3a131bdbba2698fd32ea80037e8eeb823e13fb3e81f9d3", 1183 "4de6388058d0c7eafffaa2ca63c92a39763fea45ea4b200baa5c50b70338d66da002fac469dc6dc8a8494b0addc6d85071a038f0f2536b582d8b77ac02fd0057", 1184 "6feb101327cd6781c8453433ff9e8b9dbe232ffcb127c4001a252226068b07cc4113e318fb7b67805284d519a2d516745f41b3ce876f4b2d6c1c059c025290d5", 1185 "2d8b6102bb3379d8413a2b51306b3e54a3d3094a3c821b1dfd1540b6d3e6debad6df400f2be4cc6cd37a1d7607d4181cd2bb81afb549caf8660f9549be0f2338", 1186 "866cffb7be9300f3978a3dfe4d7993995b7489262a817f851482edfea9f3705a851bdca07a60d02a523c418263cfd41c3961fd75748706c008ccde5be886d47b", 1187 "11afb4234aa6d723be6a8270ffbd1800478fef76eee17cf62e645bd62fb1c702dd32b2d8e9c2fbdedf3be1efd4c8101f768127f0e7391f6600dbe27f0252a024", 1188 "357b42ea79bc9786975a3c4470aab23e6229797badbd54365b5496e55d9dd79fe9624fb42266930a628ed4db08f9dd35ef1be10453fc18f42c7f5e1f9bae55e0", 1189 "b9baf407866e278066c22bffa247a94f2507b03f4bccbd2a0138f96d6bea35d051c10f7f7c2f3d696087d1d2bcf3759acc32ae5cb52fb894b46d27a85e0095a4", 1190 "5448d2a1d97128d1a558f6cea0c0874cf56aea7d41bdda8b2b6e78f97e4e22c69a70cd4a07e63f1e808d1c4dd9e8b8ceafef9b0898740c7db40e16da3b5bbbe1", 1191 "1c6c58ce9882e23ba4362f31c643d4697546589fa95067cc791772bc90601992986529aeba8619d47290e8035febb5c064b23cd3c83bdeeba113e9b31385097d", 1192 "c59bab69a6f2fe1d366ff10c4c22613c7b97c05209c165459528092e5856ff097d731403be8fd91454a1106eff25a3232c79c0622389b096820c2e2304beddad", 1193 "964b17ed636c288ae69c2f7de33f1714a54e66d5b7c3775710f5371006f1a394e9152bb42e18e150fbc700f306848c2eeadc35a5158cc2fdab49ff79f35ce99e", 1194 "c8156e3dee775762f07ef1b1a4405d032e1a7603847b7ad4c63ce77a4dabade65f528140ebd7839469558675cc5d14181c56a6b202e61e9ac81247f5dbce3648", 1195 "6a4ab5336689e2732ae8f0eb7c823989d62aaf693e717d00e4f05aa0c86c796afe435e195fc285d96335c2804f68c2814ac0eb5fc04d10ef53ab152611b2e06e", 1196 "14114eebda5d9704d3c881764e9aed5606fe7202e966390308335424c5ea93099b9c035c26a2673ce5c2f464407728ef630e48137529114ed0dc6c00bcec3ce7", 1197 "d3697a1d13c7dc690423ec26eb57e81c28f00e7d7167e04aa927df7c0462ee2df53416183dfee9a2521262326c7b318388053bf857d0b324b44583790adb934d", 1198 "b39d47be99521f88e6b2bae034df0f9f6b240b42b5f42809ba0304a3f411d2bdd54ab21db1124308a12b0b0cd6c895294038cf38bb3961f9a816f44743c9f645", 1199 "6ed819463a6fd3392fa1842cde65d87e086d63282f6a6854907c143d7d8c63a7eaa8ac7d63133e094b039976969acd38544107bbe33fbc4a2d3463817e48ec65", 1200 "e84dfc6ea219042c7c919e03869099bdb97ea1aa71c416a5a4f2049248396b3db4d85011bea66d0ece011cbd16a0b8ab6457b89398fed7ddb9a667ecfd23fb3e", 1201 "934913b921ccfe13aceb83975bf6e28576d8e998154812068a486059f75250369e71bd9bdae1071724f3b92333f48fd284dcf61d38be62c84ac0b4450b165e22", 1202 "fc6f10931f74c49fcfb8bac7b68a5c16378edecd9b7043bf80a6c2707451a30c8a1c12e29f773632552d5d214f8f2e11a53f6b475a2add7864d5b6cbc51074bd", 1203 "c9c4d7c298875beb1374d822804227d49288b36dae94e70a58bc208d1a28cefe056310f678585a119869efe687da79ecc540bbd33e2ba30155560cc9a04c3e75", 1204 "64f8095e01eb8f4b942adae314d42899379cbd23c381cf8d7aeb919df6c242d509c5c0d82d975ddfa356dba18cdf0f831c7eeb04a67bc04aa28a97d099e768c7", 1205 "b7d9f7bded13f925442131d63742ebfb66b84ed67ce00b0e483cb25ef81dc8cec74d77eefeeb9232956139863b30afb6180dde52a7b3335bd15a5aa04d295ea7", 1206 "8803a0fac2788f7c5068c1ac763b72dcb561fdf2459264307b7e95e07abc2cbd5f683978e305c194d72ead88e999fece82359575333db94c56aca09f8fe34efe", 1207 "8debdbef830c747d09252e4e83cff63fc8b8f98a85a9b4a9ac8d9e3c525ff22dbfbd8dfc6d1784bf031586c51b316a2aae3e8785244c7c1122f36ee7a57dd733", 1208 "eb1b743bd44c83119fe4423add4a8d5504a299f2ac6dbdfef18d90249e17401503d06b02d7535bcd18598f7b14a8427fcafbf0e8dcbab27535a69e8c1ac20610", 1209 "d67a6c6743a69e27a0a95eeb36f6cc93643697d61adf191306e1476ed5e6872be7c35f5679ba7f96c76ec505ca32dd4c3905488a745474898402b7733bf6ccb5", 1210 "bf1122db3e37bd96d87380f552f315a0dcaff494d8c31de7b91dec4a318f44afe5f74740d417f61baa1ee250c2def272c8e2ee7603e008ba2d5000bea8197ed5", 1211 "d691960b1e93ca5d3811989ba6ae466001c5a13b8fc34d691b4321fa7e9ba6353828959183b11e0e6085261fe4459dca02225a8c9f1394ac01e2d481aca8ec49", 1212 "403d2c5e40fbc43c2510d7680c1f7a4da75b201fae5640f0de53e3402240b8982cddaa10b018bde1f687e1a1d5eaf550b63e73579e9de212ed50f30d2b73f13e", 1213 "1bbb4c044da78969e15d85233e816be172355ca39d22fb0a5afc644a38d7cfbe094bfcdde4548a957f7cba130132ce259af1840beee88391c03cd69e23f1537a", 1214 "178791199c4ef1e59cc24e2664479715ad0ad8552dd08b9a5ec64653cd0498e00cd110927dfa64ed14f550a1aaaefa1848d27ef7da1b28cf39727f9ea367e369", 1215 "abfc4d9c1eacacfb38eb0b0849706460613b58a5ee6b3e4d603c1fcd082db5df26cc3b7dbbe0bfa7fe8dbfb7e0b3f6218fb5b6da89cbcacc7ce5dacf2d369477", 1216 "4fe2b665feed423dba73cdcb66b3107c35b3f7d7f66f70f1a468d23c855e4905f9c828101fd8d21a82ae98ea5cd05d1a453b27449b2b8d103a7db68d057ca9c9", 1217 "224ae6eaf9d09f89161ad7eb8aa3c5ee599da2d7612ad6864ea11f899c745defd67df7476bf9b97a377558b743ebd5271733b0cdead59ef98c0a26f1ddad4e60", 1218 "53ded6bd9ba59f2233c82e64a063c984c7ac6a40c1c4d235b7c8bc42ced76c37cab88be04ca1508acb47a6e37b128ff97e4ae58768aaad4ce7b5613a43c3107c", 1219 "0b9e1f3b1a181c966cfdd6535703fa850ce903a8eec30b145956a807173856a2722514e1ce6d9e6a651a6805dbab0b1747a96c742c279d575aeebeaa9a89c45a", 1220 "6595b49da5180d65d75ed9e0295bb4370d955211244d8eb693c486eb495e2df9aa5f6e9283b7bf3f28f573b592fef545ed9abb80699108b18c9c78fa0d362391", 1221 "f9507807e8cae00ca6e45272ca59ae11149d2ae47e5e47796429fc55f7808865e319a745d0c8b7138d45238a9933eadc8aa99c67eca18fc63bd5b6a59e3dedbb", 1222 "07e7fae6aced1af64aecda4a4a1af80ede9a3b8e0f414f28d33a9dc1145ef17abbfd87de2389e7f25573ee543c00535e800d0b3608389d88b74d11bbe417118b", 1223 "98dcc619ebababc5c2cc80161ce41f268ac9c1bf740385e1e5553428d6030bdd1836333ce7b9001fa014693d08feeffdc242f490beff64ad7e2b1aed7afa73b3", 1224 "d091be5664b8ae1920cb92524a372c527b9dba8d09ee038bd9f28f25afc672bb68eec5dc275b33fb39129f07963e53f93f6b5dc6ffaea1a1ebb03910232bb403", 1225 "e101d7b6536bd4efbc8fd2d775dc35fefcfafb9172f7e0ee0ffb544f6e65ee3d6ba8a39042af2a7c331af415f85f925b7186bf0d9857eab14c6744cf9890de1f", 1226 "1657fbedbaeece58d98ed8cfb436e0efcbb88f62d285496102af74736840d004e13307e7297037256a0325591e9614d04407796d6820028712ab9b472d6ad4c1", 1227 "f87c810ca5e4ca9b9a7ca2a21cd86380aa806fd94736b7f884e2542fb1e523d9e9e50838a5fed03874c9b275e27f732e92a19fc4b0de3fa10ffe7621ab1a723a", 1228 "1024c03e7b2f27b826131468e1893f9ff4710d65c1070a6e437f6661d715ac0e6677df09b074e28a4e8910b6b0cfc9a7769a22873e42e47c6da186464e9603d1", 1229 "c1c7133d10616d74b80ec351192f188f224d1ee4e8fb3ab2bc8784b06aae0f117b704cf6186de6169ff36d164c9a7fb67cad483b0aa5218bd58cc0e705e37a7d", 1230 "e6960d7b1709ea7aca83d25b0507cfa0ccf626619487bb6197ea1b514d7321bb5fb1ebb47821ab036ef927cf9c9c85f949245640f209c202d1f31a732544f3fa", 1231 "e8529c7d4c1ccdefd6b442777465795d1af4f4c3e20e3acbd7107c9021a4b95b49c4f140a4a70461e90a290609d54defe372327f757e16d0b44afb09b527f79a", 1232 "b009af954c683a3fa8710e4c4fbf8ec25c69a38dfb104c3b0874a588647154f37cfc02fa80caf5971a14f9dc5a1231d350952e9db4b0227b400d6e4ce05f9fc5", 1233 "07cda6dc272b317e898d87a2e13cac99e06039b1635b48d5b0797d4af128ec391ffb2480bc80aebd94c3dbd5736d33a3f76e00e0fb900352b2e88f3e3c69fae6", 1234 "e1443aa0d1a2f1a3094d898363bc5a1a5548fb4feb547dd828db53463fc0b48f2bb1bb03cbcb86898cf85f3384f9d9d46c34d337ff8d5e57f5c8679b0b96fa69", 1235 "1bb3238689a0407d0041ad96ebcc12cf6c02c29cdf0a79479caba0507110df41f12f234bec0c2e25894ee3f1205d575803deb895dee791a65d341856af1c200d", 1236 "97cf4e8b30162cb60314ba37c799a52a1eea7385b1f5530e9ea3a6c30e07c673e4898498e16246de9e48381b16ee990b3f14d83bbb607bad0b9728723d8073d7", 1237 "b075f46cdf3c57b1c3f01e7dd6ad79edf2dc6354696271c4777805a45a1e5432f70954e500a1e2e6f8e5e9781474ddd82247a50c7893d7054ee1d511ceddcd67", 1238 "5d2d5394f8b72861172bb232200c0f6e1a12c02c778555351d0f944a2796e5a4b69e9ae6336f9a3ba432965544c807208ff1221eaf17db338048745cde3bedbd", 1239 "97f355899d4dd07b0f1ae4bfa4ad6f4819f68c4ca72f9ad8e266236f9141dc12c2af84863f34d3afcbc9991f94700f14a96f3f27c4e46b96944091d6a134ba29", 1240 "2156b2f9689c4a271720a39829360ae88aa25d73eccc1292efca7efd690f3c53f026f591e84f0831b6c5313418912672480591668e4eb568bdc27cc838b0cc7b", 1241 "71f0570ff6d21a636040946916608e626ac31f4c511a4faa4ba0cfe76fa01dcb9d1903f3de918797e1070132496b80d60227748393295a407f08f1d1f0141f34", 1242 "2c80049fd1a19a87628c8da17a996a44351de966fbf6d84fdeb4d8e11891e058019e26bde1121397b32ca3b65c9a8d06e7b92526291403df9922b4e432330e9a", 1243 "12321b915b6a89a62bf35ecfcdcfd947b6a1de3dcdc912b9196c9abe638fba7f1930f1040665d008fe8046a4c7a830253b941ec9b357335ff79090f2ce59440f", 1244 "eff941d48b9eeb733dc91e0de2579fc664adb7882d66a60091435988c1590ecd92a372256b58f3a6848c7bc106c7c7e66870e47288f0f5233dacac69a55f7b31", 1245 "d7d2eff2d8342f71902ac2abc6173126a2665921d1d81c2df4bfd84eb96839ac6e036a23c57f9b6f45777a68133316df6d759efc21ad66038d0f16b7b7c8b8f7", 1246 "5d627ce22176699c9fbf21f5e3b219934830854a8022839d08624a0b8c2d890bce8f718413a9f3d203268ef43c6441c12480c994cff4862c5f210d0db42bf7a4", 1247 "880bbc267653ed47306d41a702541d08f4d5aeae949dc1012e9b069c8fc81ffcea9c21031fb3a4fc39e86139c3b36294f2987d8232ee8e847a9135b3d444b849", 1248 "0faf0e9b5781fbee09b1f4d3c5b8fe1e120749e84722a749052d5622b621add620d4f99019305a0e141bd72c9b29d708f54b4d53f92fc416ce87066d6a710ac4", 1249 "331095fcae9e3153b65c52630d4baff016d6b34200e31e081bc8e85ec324e56e6be719976a442148a046e734fd657b28868b47f787fe7eb1eb49e3c82499e8b0", 1250 "f92a406a1354623d0820683b0e14091e81c5f202feb314b2773de246d6994353e131fbdb07a953240eafba124fe9d970ff953613127f6768fcde59f6c5fe2b40", 1251 "c81606ee059bdc3426b21c6285defdeb2ad8191e351cf33fe6b75b605cc6769cc9409b081ae31c3c4fc21e7c9ed1ef3f973e69de11005dff5b457cb3bdde1408", 1252 "2198b86bd6fd3d0b3d5dcc42d58c7bad3c8eeba02ba25984ddebc92c7f1ea8d69b76dc8b4ff98ea3e084dfb54c1bd1660b5b292ecbaa9507b453a8e31dd35a3b", 1253 "76d00bc2f0652db1296865e10a10de79fdf5a9a7b26ec86ba277cf2d26293780af1f58ba2eb39c0257b38464a4f39f6235e1159d64bbd640870cf3dac39b1999", 1254 "6601997bf4a1d78a27de3080c4dc92180a2d648170617ff3d934441da3ad0ad3fb53041d0c6d6efea15ffb446e3f7ea0023ed2c423813b6df19e7b14f5060fe6", 1255 "0b4bdf9210b0fd2f98378a0bf51ffe7a5dc0f7a36007ab463bc8d8875fdd54115f8335a87abfb8c3ed7a76efeeb3c50e74fdbc3c0b8c32847a3e63e957f8eb92", 1256 "2b24c142aaa7f30dad11686dc5e6dc22a47c65ed6afef2e09b2bf51d48a0675fc940457065ba9b2df7b4b75163b74a2ceefa63e78f655c828d4a9e6bbf5b013f", 1257 "75afe719227366682c8ba7693e0b4804c68d5e0554e9fb930f977d565ff2832a037d49cb8868825dbc7d4478de419122f2915cc572d7dc4397ed7059eef70f3e", 1258 "f81f99006e902387f3ae9b738948b0b746224233ace8a4c08ec98e5580bd039343741b733820a79c377828663a162945977aeb8a296b450662e172ef191ef58f", 1259 "b4b3b9b7f0c3500230b571bbc66be846c63a8df77c69db7993ec441470433c475fb4238c153db1a5a4bff08ef34f39ad34364df8e0743717765ba8bd004b352d", 1260 "341e6104dd8c1fa56a39734ffe132628e20f1e793430f7e6fe130b2fdba198bf87246dcd3ad06ae487cce3b48085b20021b12aeadb91965b8d183a4e77692277", 1261 "db59b6522835804d82ba273be37631e2e6d43aaf68153f3f17b267191c8e96547bed0e40b41c60f95d665a165574b0891dfbaf3161a23edd4d9f9bdf357e76af", 1262 "f6d1821cb119c08388f1dffb8f2130e263cc8789a5d94534bebb8d2baa3e0d890e9d9e38df5dbd3d743f9da176f831731041693cdf4c24e8666f64994bf9242d", 1263 "fedf882ca077bb513431fcbe6ed2de3a042519f049bfedc2ebda4499b6c7d398e2eec9357aeaa0644fbceb620cb48375dd53f821b38835f7cbc0588344d062c1", 1264 "17f78508687ac4a08209daed389bfa781daf913304b0e42e0a8113ae1574f3d1a01ae87e7cfcf3ce774f5ef5d6405392f1d33699279b36e9e9ac29df4c92a556", 1265 "19d8a87ee39e399f8d997e252534744cfcd7dabe9b95742b6c6859e52a30b12597fb5aea9043979e17e3ccf1b4560b7541d131558e3397abfb426d8caab791e3", 1266 "075003a8742342a140b18c5030a9458bb57023c90f0cfcc1fcdc040c62aa350d0b3a9124f40a4539ead802909da114e121906b06b49b8857eea9b1061a787e28", 1267 "e0caadd68471de9a76a8023b42b5b802dacbf3feba4ad5bf4ea3773e5c4f6ddaf225de3a770babae9e06006fab4063f8c2cef0e15943ebb9505c309073a2a27e", 1268 "b7bf3b25c3c06212296ef3387fe09866aa9ba3b071383a7851ece5bb1efab81f22f1048b7ca26388e483c6adf63e25f984b9b644f78f5e0cd69f5baf9ab5abf6", 1269 "492251fe48cda38f9109e0626e018b6b43aac7acf90415b32bafc66435fd05aae93fe15d7a08be29d6f8398eb9942918b72720f521845eec41bad7bedd86790d", 1270 "26ff3c6d6c15a15cbbfa8ebb2b96f92518e4bb1690dcf73cb66eb6d89fdf14f148c52605f41008df7a9e3812645040b052be15374cc42f4cc15c05be7256a729", 1271 "21ad90784e7b38f399347ea35d716c871ec81be2c9dac152015127da5a12d174103a8dff2e8454b4175fe17ca6970eb7427a7ee1b37acc94d00a84fac5510c19", 1272 "d82fa12ae18aa4f8d8e1fb9afea749ac59f21723ba81735da6c4d585fd187a3045dc52e3b90f57b143c356199cf5361c7cf614a5ae1c871cfa61a176521f30a9", 1273 "2179e4e9e7a6db1d5b365054846d31a9662ac4209f7c9902c806132ab4f113642fdb2d5f0e77b902dc743643d20bfc8fb045fbd7ec57f4d95dd80bb55f800343", 1274 "c7a1fda64284ff73d2e88d49e6fca674916a47d885baa0e5b979674b703a0219b4f571a1a6df36345ec5b8335ec9ecea0953e1c8fe6e1375cca0833287af9fc7", 1275 "b0600a74da6f95b5c118e976e927e4e1c5955576c97c4af7bd64385521c2c0eb14feaf0e9ffe5d476d57361f828fb4d001785de3b8fbfc8f095e49addcee7b8e", 1276 "ab2e066882ba33a7522f4bd3430d2e64adab6479c32a4fd38778d53e0d25cabd077bda7542b20a58fc19ba90f723ebe8690cbc90513acf900d439bb602f8f404", 1277 "c456dcb2c50a4c10dbf5be639da33e7ae7979726be9e3b44d3f051b989ea3e4094d0f450f97336a5a1eed74343defe52ce2fd61ca9da8ed3cfe553d837f001f4", 1278 "9a7c7152fc7e9b639ec3b7475c676c22c2e03151d91349a3c2b2f88e6344f3d775138466a4cebdc43ee8f21c33f1fee7b3b57f828302276c61ae4f709fdcdc47", 1279 "dde6a3cefa1f451ee013b44c573b7172f711afdc3e85277275f7aa13962132b7b902dfcb9b260fb089fdf006623c0dda6040cdd0279a30dc58ef7a59ec0f44d4", 1280 "cb6c253bb4746fdce0c3c215f904ea1465ac5b25e101eb61aade30cc3dfdf00fbfeee970012dc932a96c76b7f420e393068e104d781d4edf833934911053cdda", 1281 "191af857ff2685399a8f360ea07b5b0cb015bf45170ad8ce5c793cf9f3c1b48b5090f00e0b0124028254306c43e4d3e314feb5cce29fbeaaa9aa06a28b56ca12", 1282 "700cc30f802a5542f338d7624dfc932931465314791f11f13b3ace81b5bd5794ae96281077b22536518cf7cf298334949d0f265221dffd049a25b1d5f37670a1", 1283 "467345c507333de5bccd014652f06e7a838acaa67b3f77b96e2d8246c7aac7447cc806f317e8e92406b3c5be08cecd3dab95f71a8a7fe31899ad3ac5b598a3c8", 1284 "99ecbac3f490f944a17dce59a63210a916f713b1a5e2c7e5c7b39b00d64dde8e588577f2a574a74ad782e1f9a3e4b14fabdb4730421864cea73288cc4b654a2a", 1285 "16edffc937268e20d77425e0be980c7c9d94ee1144e5e46264adf0104685d10007297cdfd14ab4ce50b7e71043f41661e29553cab101b911836f6c41d9066bb4", 1286 "d49ce7b8aefb3e5a96820a7a0ca6658a71289e96a1583b520c8058044621a4168810e177c8c55e6fdd92cb0090971414c7705a5ac58df66cd7860623c01ad709", 1287 "750d86b2af430265645182c15edae95656f2ee8bf16a0b3bced54a30297134c6e7459f0a9f2d92d101337764e38fcfec8eb6f251d5518a138fdfaa895a59fe2b", 1288 "9799ec3595efe5426a0fd98829c26227c791360664cd72775b5ec0a1e291a1f078d5735c865f2a72aea82980629e02e383734a10bfbabdd2658810026bed4659", 1289 "f9ac0cd55d8fa16da7f22182a460691944375e3730420ed5731d52e2e715e87193864a8f2363b1fb8127aa711bfa82e63a184bbede099cdf91bf7d46c033d947", 1290 "da040899e1980415defcb86908a04329d3fb295f9d83e47fa343e829af989751ef029e77e38ecb4d27194af6359a3b1fe39f1131022b4043db932775fe80a58b", 1291 "edbc92235f59612838338e0fc5eff3c377476f5a51e4cdd58aaf00fa191f4c4df10ff9ae8970aa49ea032e55054b930b0f2149b673d8d9d85ffb0b5eb266633d", 1292 "91f934dd273b2c5ca4f3155a10bb271857d563e0b503c954fe1df528fef44ab5932e1713b39119fc415768beafa3d0a3d3ba3a45912b0e0e9c26fd03b7ba48b9", 1293 "7d606f4cf0aa403db41b5c522bb9cacb909d565a0cf8578974614a5e46f418556eae21dd1abbaeadc71f376d25982e16fe5371cacf2104c416a97befc028193b", 1294 "d5f8e005cc6ac288123ccddab8ae4c7d3bb30dd56b0191d15d8d633acc42d485184ee42c93b50127f16341d337e2664282ff479e0f2b29d1c29b4367a46039b8", 1295 "c03b95e073edabe35f3a5af4fbe3dd9a179e57572c8da147f03afdd7fe420fb155cf156eb5ed09ab85a23229ed9b13b1552c3212d7ca75adb1f7a1d0e0ac028e", 1296 "bd29cb59e97e4274c5277e57b4f4fcc46ed64cb017afdf3267450e3ba633cb475b52325c2e114bedfb9f19ea2a919b0518f87b707ab5b01c45496eb0257a426b", 1297 "b70531d56f611d32e2eb8a91c6274c2b554b2d3eca3ce5b211fcc86b77906da604943dad5f445faa563fea582a81a226f12cb10eb607207f9d9190b4667b707f", 1298 "839e6b2fd4c5be65b0e9673dc7339508c29fac7d155ee9120dca5fa94768d8cb1ecd8ad11b023e02137850ea036e95ed26f985c4b350ca6b6c33af6c423bc34c", 1299 "6402f05d0c2c09c346249d2f96cec8455af15804e599412b80c976d23caf49ce5246ae8693fd3416b0c7be9feb9e6351eaff67ad699a311d099523a90f8ee93c", 1300 "2fd6309b424e415e30981986a7ef1c230145a422886697a7c09680591f1d9d6708c1722a1c94b9cb8651abc1cf13c7abff5a9c1485a4ee1223e3a00b6dbfe224", 1301 "f956e9a34f103628b7a7289108e5c1967a5e65bf7797900f5a447394152722bc6d89402b8d07ce85ba9da1b7f05c2c25267fa72647924046ac2fd3906bfe5e2a", 1302 "f8776a17eff7f015a6df41b0af68832802f66e0ce61d1bcd043249cba7f8f91b6b720695bd3dcc93970de2bc58215f22f123aba716d0c5f2215dd4fcab3d4b58", 1303 "9d73687f851fd1864153f481caaef96a38da54e6c067d4af3e5335342291136205cb320f48389eea36799c2d064eee1eaf2ccf3a60b2ed8a70fb261ae497b231", 1304 "9f58d7e9a4dc32b3265ed18894157b02c4cbb3ccdf4b23f03ca76f5fa16522f714542aa9265a1ea346cd130074b2966987f9c8934730b2216a17ae3c19883c24", 1305 "5d478ea37ec162f06ac78117c20ba53311eb31d829e661f6ebad7fe08d274009e85474fdea902f9916379c0c5b7050d4c884cc7ae21cecb1326cf13062483e37", 1306 "226b391899ebbb30eb5d051ab3e1ad0dd35fa7cfa5004cfc5f78f219df975f37f9b00a3c9585712ee5eaf3534f25969b6221065399778fe114c99e88655268da", 1307 "9c8537ddf52599e884d52f85538f2b39d0c6e509323e271a675b98ebc81215a5ba3e90fae4ddb6981cbeed8a6c0ed0229948765aa00ba7823678823e19b469c6", 1308 "1bf1701a9fe92dfbc335bab1db49a141ae908068c96d56511b2b8c4688acceb2ae1459f1bc726923e5fceda99b976fa473b4f1bc35d6e9a37f0a9b3915dba775", 1309 "c5d30e94e5720491acbdabc43223805b093805f8a779b85ca5da3d57e9bc7010a0392006e6ccd1f5d172ee83f8820b7ce50830b1f6b0fa4f4255ea0e5ea99e30", 1310 "daf2c7a5ca742dc687db97059525bda214a9717619ba63c8bdd4374b266ca9a8575f61c678378a41712b37a13aeb368b1c8b82cb735caf9ad12018825e657c02", 1311 "a3ef1ab0bfa36895a53c8e9796341aab5b2bc71804e77c6942f417d4be98e52ca8bc9ae1c2129ba3467cf4345965495e0a4a7f2df7bac7c9f5dccde2e35cc0f1", 1312 "a312050a4582f54f81b6026bd29ade0d15bea69abf709229f6f2e38b5f5915eb629a2b20369da9ebeb2c3ca8c1fd672810405e17c8e34e8f610482dfcbbb92e3", 1313 "e82b4459973244a04566bd6e0378a6cd9b88d0bc824a2588931b04e3ba7b16370e588b27dba2afe2ca6d84991571fb4d9e9b51356ec2ecb5e3379e48d154f927", 1314 "d996c62722bfcdf1393300c7d4d01704e5bb0e56272de75ad5d199bac02b211d334470500c836b1914ba1de06f1bffea4db8cef29597a702725c6a0e3fa80ab1", 1315 "255c15b9227c07addce709bfeba38d660e90a69d43efa2998a9ddca681ff271382727173610f6e9ac98339288a3f8dee507845a98df7ed30d47ed088c0e020d8", 1316 "32452860b1c8010c95c4b2d94369fd9925675d5edf6d7393d6a2d1ac93075fb22f13b215296fcb9eeefdebf23eddc6cd21c368e31fd7b70e03e25f416447b1bb", 1317 "6b39619985f349bf9cdc0d0c39c50d1f98daf5fd33ea731ced81b2c75ef46879cfa4a93f16c43ef289cc9fafc2a0290f51dbe9e9ae9488c67828cc2b9be5b241", 1318 "d3f2e49ec1e3d5100dffb95bad98e88ee8e147333216e0be408bb2bbf6cc5d8e94b062f32d3c9e190ea23caa4d556c03e8bc1254f147ca8cdec8ad7d37c42d78", 1319 "a5a56b183085366dd216bfbedc790ea591824e84463e4b6125a9e19d722e884b2aa8c07dc66ffbd429d49689193012b0c5ac4e79f7d3e4ce7cc031f915aa7d4f", 1320 "dd9dbbcbf1f2ae29dd19248321da914f8dbb41caaa2ffa2a6aee399c057735fdf7af46c21749d8b2edd46e18bd09bf8312016ad0f5ea2e2c989c2dd9d623baf5", 1321 "dbd0e585ddb3fa6ce4a13216bc0f3f10242ab794a2cf19c8efe8f1a573a08c7d5d23be3b1a00c5a9fd8e8bdeeb20672e29470a26799c7238b89a4521310b7d8f", 1322 "7050572b79aef7320307b1a6c29683f050fe46929226a4974cc7b4c382f230823ddb9cea8121364bdbb54d42e12e88334bffc9685b0ef9c3cef3c6f3b0e4a259", 1323 "d84b177ee3f19af8e70719239704d331c400e9272324798ef7e23350151ff4b46a92dc4ffd69849377e21757b9a0249b25cfe5b28bf764581c983f78e8ce0418", 1324 "b55c7dc96bdb9774fee73c8d057056abca001a19e89aace7af9d9d00bba50604cf40d789e36e4b76a2c599b94ef50c0a0d015598cf5559f17c98750711142ad0", 1325 "3e27bfc768fbd93185a1cce8c7161e48ffc9001232eaeb4f5fd15f792755632bb2459f4eedef8cb8d9a65230b858848d7a9ad8c0dd8915e0dac651aa5faea849", 1326 "82c88d6a5a5fe508a5712ecf8076fe9c7d7b583b2ed9f433ee0b959d9d81cdac46e7d10991ebd050d4e3989fac89b4fc6b2a1d1c92f3bff5a51456e9dec64a59", 1327 "44e9b97a336e1ddd4aca21c956dc84c9082dbbdfdff86d9454c9a0e962152b481c27b95c7ef182b59477a580b86feefd8fa7c94311680a1e90c83ab6379952f9", 1328 "eddbf847c6bb535a805cc08de8e519e97087c3cacdc272e9eec7add6dcd41cb2cf136e9eae003ca62b76697cdb38f1e44cbbc51b3653b99cd24aca97bfcd62ef", 1329 "7c47e5477761f4323d9730b5af5af70906ca3cfc3b899a3a279ab4d1c3a38d372d9f0df89d826b8cfa0177dd715f11d45f02f7c0404f1c801157a58e6c056284", 1330 "a87536663948f75cadea1bcd92b6ac3d189671180eb6164e59dcdd1b4de8a549c831a8391e58d28184768efc8db7a52b28c3402a0bb276b434449754a87d9609", 1331 "73166a966407dd2df4fb6ebcc300b5f53c4a3af2d120c4bc5d10e7149b8eb020dadccc882fee71916ed8c0f9cfe4a777f26627eb159409ca7da17e0c9b09d335", 1332 "1a9dc334c7ecff98053343a2fe9265e235b14bceb7a54f289fb7a2699446043e81824194ae170499b3bdd4a4af062b0f3b0d1c74ed9aca911dcc7ebf8f123d4f", 1333 "82e1e65019c35d483f19f5c4ff3f8c4c23b85ab708b9186dc48198acb124b17c1543890eda5b7b1f90a70f9525925271a5551db56b04dfc3e7e0ad1bf4873a26", 1334 "3f5b6e6b1cf707007b3de6e4dbc852cc127534d7b6ac932c46158bbbf76381e64e1ca8c8511730b542ab5a63a6e6350dbb511f5d0788c8c8294be5bf36c252a7", 1335 "8f27c74ac3d616d76f828b5ec2ab4d12412c8e97cedbca5c3cfb750710c44334be5253a35e19dda6e42b516606c0d1dffb6787175a2015d4d4f8e260781f9d8b", 1336 "b6bbc8af06fe3d7483aefe2debc7f0d87aae87ea1c8e5085651f4926759e5260dd42d450cd62725ac1b2e97143690e51194c1b47f2537b750bb956d476c17d73", 1337 "8d33b1ab7de1fa265be9a270e40cf9a56e5ef230cba517d5138e03cbbf964fab41bf3e61096b5c2cdfa8d70675adb54269721be0ea50e0e897a55e726a76a6af", 1338 "aaaf566554b615867e051dd0093a43fa53f5e301f690eddafbd9cfd5080fa7ab3136858fbd8e1b272d7f80cc4fc89c512b37c601fe47707e297cc3f6bb3ce4a8", 1339 "8b5460c5124b72bd2b74f9b07a9f27e18b06fb84f1952f83c024cc685cddbaca40cbbdb520353faa8b7b826c3b5451deb2e9353beba61d3e8875a2754b86643b", 1340 "e41b56e74fa0168f72f48faf65ddddfcac39c71c8b347d4a0842611ef636a6ea3e3ee32c2608fb40e18128638cc5365a072ae386c923e776bd29cbb5fac8eac5", 1341 "a5fea58f916dc06e07dc4c17d0e99fea94b39bce0ae961b531c2b84bf08f7553f806cfcbd165b4eed1de314880d6975120fbf19ad237ded125c7909fd14a48a7", 1342 "c77d064ca2fff6a75d8dfcf5a5e05301022c5eaa5b488e405189f120c13664998814eae9d646214fc782a0d7ebabee9c9e743177b0fa359301b3ade3dd8718da", 1343 "1a3f04d23814f7a639bcaecffee688916a8e3015c6f8702e9ac0a04c44bdfc3fc5cade53ea304e8e316a2824d052db0e3bb962e051bfe761824d7c83c60d7b70", 1344 "59e7c2f6abbcad4eaa0eafd77ddb76a5c88e35edba5c7cfe64619f9a2cf28380c366f2ec65b3b4f4a2644c0a17d05d870191b8ffbfe989cad4255aa7cff4a4a2", 1345 "84b2629ca28513cbe404894eb9e0d38974bbc5897e17a90654c6adf5645cc32c96992f86a353ced5a28672ae588aa5ddd9c40c5310567e67eb6ae94e363de319", 1346 "dcf01572bd9e858bcd3e541222bd944e1b18795fa0baa342374170f4fd082c4b506c33c307ee8e08e5e364ec74124110e0259db43357d840778528ff2a23b366", 1347 "9bc5c5e2b91aa2e447462edec240781e553258299c709d319fe4e1f3f6ab909f94e53f4e61d840b5a05c5551ac3604c7005f6f3d18d511564dcc51b4da501868", 1348 "4971d15d188ae2bb9d6b26a17cf834c62cf93f8b6b9687e3cadc94d8bcb1eb092fb9a6059af3fcee421cb889f770114ccdd4f42ea6e9dfec835251c4f2f8a6ac", 1349 "cd0a6537663eb2588cbef1175d8f9c1adcd73c94b9ef4d0d5e2a9fcb462f706d52c6c05a0530fc2c5b008a634f1b617a0797a601b49127432d431b5265ed5f40", 1350 "ee0df9fece977a92a579219681af597684008e0f4a01dbe1a99c746fa044610e213798dfdc33c1d4b140be66ec47668315117160ddc065c068980fdf071ff912", 1351 "6078b1283620bfa58e83be2ed909e2db0d72e435872269bd42e4526f8a35c6c5cee9371656e2e3411cd5109959f3e2842b6c38f4038f3c84ea9246f230a4b021", 1352 "fef5b389eabc7e5ca7efbf8a396ef5bddad9fcae35af432fd6a9edca18db855df4d37da0ed6dae4820d442c6a194d65818806cba5c285bc9ce7a5696de516d36", 1353 "a1c292d99fae7f9567c0a91a46089ff1f33c8af773d25a98b22c884914fa24eeebc9b8ea2c028c81b3731d50756c0617021ab88ef96001b37a04adbb088dc7a4", 1354 "9367bb62c840f9240c3284329b273eb368d882bff527b12f7b9983023eb3a1b200aa751fd464addc6f48595db402d9d006a9abcec6534949ce86510fff135501", 1355 "95a08a421794580e9f7ab4949a4e4e5e722db17929c0823137d6642ceb13ef4d59019e05a7df6f16e2ea94bf0f785a989721e71717b29aa3c393e39304937476", 1356 "09a7b1c781763ea340bed2fdf4b01b5ad672382c90f36a09c1edffbcc7b0bab5e0cbb7a07ed070b1533c070cdae7c652d70f6f694d62d3f9e41b4b097f7adc15", 1357 "4f3df33cc7c9bbac58ef814c2fc8f817eae07caac61a80fc38b25fe45411940ce66c4c1efb6c4d2361a398e95a6625b24fecc2b748ab64fc431e4eee55a85a44", 1358 "328efcba1f3465624efa493eb66db48d35c736a939d4478904b9d2d54999d5d2910947d8d00cd8696cb08fea8020e792fdc8ae67cd482243f582951f33af3c0b", 1359 "f873b613171f37cf8d7b177d2593bac8d6e8d7ab1cd27f4abdaa187bb05201e4c3aacc49e01193919ac482bbb39bf76ce1b206311a2ead80ebcfda459ae49156", 1360 "2b205223a289fb15c267fdf4fb1247d02bfca1ecb5ea4ac83a2f0e4c26034bcc77c7b28ebc10b77409f39ed9aed790df1689c6d39eaf019199ac36c6abb644d0", 1361 "3f3b11dc0eb3f210ea2d5477cc026d1622aa45811d7e2fb4fdd0e48abd0503e431e6879a503af844074faf1824e31d224aea752c00343e4c264e8e634d277cde", 1362 "eaa22359cb1fa05028f85fc36317d22465b80d265257513153cf85b2cd2599ba0741fca491246e32e52505fb2febf3482ce4132aa047f5256c4545233c82efd3", 1363 "da194ce937a6f2a981f84280dc4c480e7f54957ca40aee792da5304de67d904f9b68cc22272e41255e5cbb763b3dacd106467d9c6053882d33bfebe309c33e34", 1364 "157d9e657c3c824c117ba1f30d05b784457ca83725d620e9c6eb3192aa7f209b8aa445ef488b105cea1b2eebe38ec7f77d47d4e475434a15b7f40b84335e2f7a", 1365 "6e588a470747fed57453e816735b98fcf54a1cba4ffc1eb78f23f4046deeec8f2a81a7fa16906c39aa74eea5416884b49e5cda46122c0569fc438bfc1ad3106c", 1366 "c37c768c516eefce8f77f3026eac5f66c237fe0da822c212ca127cfaf0b50e83417d8aee04a08dd462f7e541942f5b41ad850ceea4193334fc9e4014c6837287", 1367 "55c15edf6bbbc1c621ad1543b0119295e49c456965e9c9af2819b53a75614a03179c7462ee36c50c54adbf9d1c49b1fa8dd3edc11ca8cdbce5dcd27bfb96784e", 1368 "37667341d3459e65d4b71f5038521c5f39ec2b35c1374cb20bf80997e3c25860204ec9c4a0331605751652b5f2458ce918b0ef5dc2fc4e00bd8f892e4bfa198d", 1369 "2b36b15a9535238a4b7fb1d98aec0b0cc0646f1b2d8fccc2a2e86703d19855151f2c3a6ef3fe264346341908e83c85a6cb0035ac2a483f738e7d9f72925f9544", 1370 "4b702247cf5813e83a63a701a82f9be4616c25ac3d18ca2201faa4be96627eb004249654eb324e9eddc11e11d227e32a00a3952aa188188237a35c0fc19877c3", 1371 "cc55ed8a1ceea542b7497b514a603ed9aa166b7d3c4abdcde40360ac03f093924f75d095601e053f1d862b42886aff8005e46cc3bf40b0eba811d5595f2b6b38", 1372 "fe6b940730302b87b5b998cced56048e0faecaf8abf64a3c97ddf63ddaabc13aa411819b84fd034aac68c28026fa8b3005432da78dea8bb491f03533dd9ac9dd", 1373 "35f1dcf603cfa77610f9310a77b2f6b9a5005ca926c64148ae3cb8aea3ae6ecc2a3711b22944405be01814788b776a02e74b8cd1b81827f0cdb2f73dd9460311", 1374 "38ef259316c0d7495901973274f4667abbf52d940adb67642becd659bb7741043d0d022cbc6cc54c2e9aaff6695edf0cf14bbbc306ab867cecfda28ac6752689", 1375 "9f1c7808668002a6e265aeac130ffb18458e18cff1c83921d2d4f4325fae5c01df7599745047b6393260a1cef42f654337ca7b69f2a8f4d815cc1ce370637c5a", 1376 "b84634703dba8385945a195ea1b36703dbff5eec16658d0197c00faf8c485f19c1dad0489beeac65eeb5434129604af3236b819d38e1e06832a944bfbbd2d6ce", 1377 "8604705635c3411ce38fa517fbf0f6579d286316f551591e3821eca5c6f0f42779dbc9955a8a860511fbd2daa0a0c59dcec1bd0526c5d1d83d1806df3f56593c", 1378 "ea6821c426e09e7a9dc337c566a9d219d643dd7d3b74641d78c6b662e84a10b678254f52bf5f8ee0586eceac431a232fc1d3e8174c89663d089a62ef4d5f5f3b", 1379 "0e9ad78babeb26369f5b61bafc2be9ff4a12c72bcccf6ec9bfcc659563ee1f271330b6a0a637aa4a8d196e898995984d359bfb8feb992d898b45be29ae5d84a3", 1380 "3af9574787cc8ca6a0d1707533d49455ae45b0c2231b3cd8e6d60d02af2703894df7c454c0a4728c46f63f8f7bec6b05a6b343cc6291817a011284aa78a490db", 1381 "b51b4ea12d9daa6d44b31502c11c52f1ab3e21bf5c5bc25e7621980c676fd4a43115877d72c019b04121a667b226c140073a1430fb4d63b1b8792d9fbf32b979", 1382 "67107eb372ad44bd2899ce1e26cd4ba7ea30c4711eabf0aafabb335c56d7a70c3568eb7582dbae201fb435c37f90409bfa450789315d75be3356ad849a6ecc4b", 1383 "069cbaec93d08675082c4f5b9bc3d4f6fe10cb7a9bd4f5632f3ad2b9d8ccbe519455b94dab51ff3f06ee73a74b6e54c255c9eb8a990018e1b347ed4ba37da792", 1384 "381cb8bb4782fa0058604f24e1134451ff559118233156a61869a295b2a7de0d86ca6af4d2e2904f2ec025431364f06f79d094ffda82fc89e960271ed5d732f9", 1385 "f0a00756416c21cb770a6dbbe5be75e4dc348d0a3d53566c0b7c768350d171418799e675f10cd481a71366d4837e795af407f2ec2663477114752423f879f5e3", 1386 "2f16287210f9146d1fc42084dd50321a210b4b3af9f4ec132e73c0d8905d0b0277be6fa0a7e52d9e95522969605cb7c24b70504d37677c637ad1ef6b8985030b", 1387 "22dd95208f94837b0891c9249f38905244bcde39f2abe137683eb4db81866fd7385100ec09ef768d14beeae18d618dce4d0087e00f8a6a6c9c6990ecc3aa4d31", 1388 "9d9d97907c0c18a28be229ed21e9d270c9673ce0d2742f2a4031575df9f3c9e5fd182e49cbadb95dfc5e27f3de498986aa495f6fba7df8148f0fb3249a6cc612", 1389 "b8a289159edde1d5e75efd9ea2838564d19a814a39e4c304fa0ca0fa717550a9d71dda5633d8403fe275dda0ac44be67cd4611fe0633be90a575ec1c7c524805", 1390 "94ea422e85365b87ca258756d51c2001762e6403570357f032f893b9e246231b3d8ad777385f9aa85040bf30c457bf4fce559baa174bf1e957385362b87161a5", 1391 "77d3aed93d97ed9db206885f5c259ad3387f5b76252a90e8e92925034fb857b28d8a187bfb282005f929f0aeba0354a0f6b83386d51fb8538ed5cca83ce7c7d7", 1392 "ca9f6735fed8fdfb39103684a2f52ce819a3a41757dd2e461338fed4884e59b9062d13157f659efb563352c31ab3808cdf22b32ce92acd471d25820383d81ba7", 1393 "35d86b7b4a33ca2fa401e622fab7fb4a930f6399d2f1e7f94d88813f4147fdf7a1dab58d788e33a85a102da5dff47b8a435e0299f1a61cb50d46cf95be52ceed", 1394 "35d5f4f3700156ac8b7261eca7be258f261aee8a99df44b76a34568ca4c4b98bd1d5805a74672836a6f9f4c7a454d07e02c763025dc957cae3c196455892e10e", 1395 "471746c2b108a1a3d93a202cbb750f118d199a81fed18e71f65343855ce2b6afee9bd470e33386f8bac0fb9abc3e436cece2cf89ba91ab9c3a1e96c9d5ab1a92", 1396 "72f8508410b5f64e8f29973dc121398e77389d25eed496b00d5e92c91d748345605027b190b9edd22a73d2f75bd6258a668337312f4c5fbf3c22e39fd392abff", 1397 "619f56083177250c5fcde33f796f2f07a75b0fd0a2a41cfdf7382fa8bae07bbe4538c6f8f8ee6809cf7a00b79c07615280c9cb48cd2f0a05398996cfd04e488e", 1398 "e8d10497f2bfa9e50f84648ab666669c37907a8fb444066c31346a2e561e283f83dc1883655bc7b29e09bc7c6a907dd2662751a1009685630ebaa6af9baf184a", 1399 "6faf7b68b9256f58bfa535dd6cea7536a62accb91f9fa02f0fedbf937b4c109f4f1719d32b72fd00f0e7dda05f58eb402581ec4ef301aaf0836b823a2aaefec7", 1400 "941e4e07d88ee6e67fabf340116d20cd9b394ded475a4f78b030c5c9a32d2d055a7b94f92cd30e99d6140deef4c0d65d45b35a4af20ee0d19cc610fd4128d11e", 1401 "5a2ca65fc82a899d9b05ea6052a7107e4565c9d0385fe326227e19d8cb12c557d98ef9933e13fc615c32129a9f3e12ef269c19c5eee6bd942cc9b30991c1b357", 1402 "de8727e21dafafd004dd5917b303a3b22cd32d57dfd97c681488b18daf8c9a51c1ad0541a725de795793464b41a9748a9ae7cf3e059db638962ba344e0a4b72e", 1403 "816728cd234c1fa252981a51a0a08a0c5f0351acf462a0187b1e734517f60be816e9b775234f118ee1d194cd79cc7a0463150b7fe523c07305a20ab5b10378d2", 1404 "9cbc588fbd6b2e2c7143c247f959a7b7e070b7f810b770ab94519bf18f3a7430d29ba647f47d7d715b91d86638f4c019627ca45d4f2d7579d7c08eb44dc05a2f", 1405 "8b5f59fe443e95b4c8c21491448d44ff3a451433c5a25ff21bb3b9aab427901cca978288dd7a7ee455ecc5228854f8830808e1baed293674a08e422a5db4b4bb", 1406 "4f7942ade9278b6a7548514d6bbe66505a75c62c5b26ded6374524b8371867f0cfb8b7fdef4b476413505ae45072712edece9db511dcde8f62b9c792baa2db4c", 1407 "47988fb122829315816e0ff8d7b9cad6b73d738d4f2c564801f6ffa9d06190b4490d3854d7e49b396fe90931d98386a2fcf79f2616f1356a16ebf4c68c271dc5", 1408 "dd909baff99233d5927af323b15a57ce0a2e9edc55ffc91e0a48621c081358e7a48e38b549671af49f571264feb55fb06c033dd564b31fa3a8e08b71f07e9f17", 1409 "5b8f378c454b7bc05b84bff70d7948053e0d03bfd9e6d14d38fa3d1bc71074436ab3bf20d0e28502bfc4d5e213706cf527049763a943bc0d7e495a784811e2f3", 1410 "1551116a356eda6db6563844fd192497d53cfb02bce10f9c4b0f7239fc2a7f14a5c8ede94a8b86d5dc7f4e994d9e2d89a025ab5068ccd1f05d629f0b3507d86f", 1411 "2fdc1c73b09c7a103d2957e867beec1b53d27e216c7f7000819982b216a6b933f8921a159f208fc75b7acfa2e1b8d3fcc332e80341a3f9540b71005ab93bf88c", 1412 "ee810fb3ed7d8cfcadd4580a1715591c2d6db836cf441cbbf25ff1933f4c4fb931a0e0ed61740568fa2c747156fe9e61d4112c6e70758afe3e7255118c0abdb4", 1413 "cb527830b2d420f3df608bd00dc9b834b9e2cd927b2fd6a28dbd4379f5d35af13ada82f9cded5a17174159153d22b6dac0387ade029d86773f4026d96269a25a", 1414 "122ba299f43c36147ac01bf0b0076627097727013dd7e7f7d9da6436926cb72b0326beb4cd005e98a992bfbd4f64ca27f0e7be6692acf6cec53dc16bd26cffba", 1415 "9bc7e2518705723b905ca15aeab42c6a75733b865631b18670c9d4080e373975a1c3adafbaffcda80d6984313f5fe21d689c5f5fee76b89310236d575b5cfb2b", 1416 "0c8f33005268f527bce9f23700112519f44abee554445672433e9c161d139a1c5bb82ed64f1dabe335b395102dd2c169e8c91f881ad0117e2968b168b059f0c7", 1417 "2e90bbc24d0d0121b223793ba512f15d2b3c82925ce502be49af3ffb1619397476f63ddf2f6054d6179ffa17074719a3d5dab1bbdad98609563b98524da6f19a", 1418 "c06b7a6ac732c746c1ea754c66cd17f5e7f86af5b8340bfaf8f613fb6352dfd534211b29fbccea737f82e2df01922656fcb02c06821b70ed1abcd56c6e8aee9f", 1419 "bc0ac2b1be66ad421e72d8e883037ae42f433b8d83c66d8c5dfde9fce2302f697344f308d3060aca00042a9fa288f5abf33c146b2f97686eff4d84f73bdf290e", 1420 "aebc7847b6edac9ece9980c4da03dd59083f276d771598ed65f5847d87eedf7621e6a95e71d15c21f95c0035dd05ccf8732464c9724c98190ee1ecb5d6981da6", 1421 "3e17abcd1e9cd1add036aab092018c8d8771c27cc0f716cdf656e573ad2476fd6a0e011022446fd63d93cd161734ca89a59335feb65a0197abbde4482b900884", 1422 "0c7892ecf2983f79967b7d439081e6501ddc1f18353e8bd71b3b9a85ec397d03410ec108db7c424c9e87b21004dde305da2829bce96939bbfb5820f6cbc6997b", 1423 "f3dca2936d73b4e605739d59b598cd990ac8bc9b5f23b450d121969a433634eeae95e3655ca918a47fea82f38872b328cf23fccf441ec23a188aeb1559717b43", 1424 "9ec7b6bf16f4e0f0cc38f91be8532a87f83bb8b6da9651851345f85b40555e6e7969af403fb0848a2e9265702a47f9b001f3f6834e42415604b73fc5f8552311", 1425 "3ea1f7ae4e9409a5d59824fbb1808771d3183d9b112fd84a0c64de72fc736346e6740e66c170feaebf5702aff694dff02f575ca581241ec2fa9f409fe5f2b2c3", 1426 "89939dc9f195f4247dab952d69d43d30dd982c0a3d4ce16a6e3926e6fca810b328d31980043ad7589e1cfe0ba827dfaa58c84826bdeef3f1b6fb8decde89fe00", 1427 "d31f69cbd97c69dbb97c782a926f49333f1c3ec0b0c977c074367102887dfd733924fdc557756047610cf37e8e6f8f6e2db56ac3e421566c96d527a35c32bdfb", 1428 "9c7a211b2d9efa709b7295aff37665eb75257b920522431917fa207c7fb0109b9503c49fe345f9c36a68b90ab2bcd6a40d26b49290c44af60fe72b3efb4afa8e", 1429 "afcece9431670ca402b42c42db78c9f992e3128112fc4cc394f950d41bda5d751ecc7e39dc5c6b7535631f73590a547d69b418304602c310df1549123dc6e29e", 1430 "5a6f4137a3cdd640e709978bab194f0ecc2dd0f4359b11c60ad02f3a3c0c37e546a47849fd13da45320b4e9142e1a641ecacba8a6077b73b273c755f6ee08cfe", 1431 "df098818a55d9c43b0aa0d38900fc5e1586d135b045ce51819ba9ef35cc34d455fce68a75e5a193116d9c478ca22baba19b4623ca4cc5812905fb9fbee2bdfda", 1432 "2f13af98de766a4f53c8fb7bd9d42b09b8fe99419868a72d6d65cff5dfe12688ce8858bd78937e53ea4768af09381d8e104c4053f99d258923f46db2610af6bb", 1433 "c71d6e10d6d2b1047ac133ec57180332506456ec419e0542735e34d96eead9ca28e6994b0ff8cea908e68296a131d9ab95c4ac1c67c05b77e4d756cef29d9cef", 1434 "7b50d9f44eb41a200deae1d00be67b4f711d1735c44c2c840afb0c90ba661ad9a7cefcfaa4c5fd0c951bbc6fe462a53600bb906d9ad089067742aa59e9c5ad0b", 1435 "f3707937699425b7e5baf51d2d0ae2492bf0f4976e1433c136fedf2dacb9c66fd3beae0548868bd068a00b079e25430087a0c7e159ccd78c2abe8360681aee61", 1436 "db4179db0ff8c0a9a4083c48625c5074e516aaff19a259e00ed6e0b042ef094adbe619514c1aab5f2bf5f0e5248a2450e491438b338854195dab9c10861896cd", 1437 "9b920847bea6c8f618d5eb325ec0df83ebde16b3a4aca5d5dc2bb44e486669eb87bb6629c297c3d08284b3749ad6ccb755f00e0edff64abb25f1daa28b8f5305", 1438 "bb3fd17e1a6ab86541ed7b5418cd8a21de89af92fdbd63c5196e0acb81968115e8300d8cae6dd43f61d637973c1fc6c4390e58847463e66e5cfa0f65fc373e41", 1439 "8c8387809f03309c20974f2cc3e97151ccf77653f98760af04dff21fff9a472c73438253bef16888ec1d7e7c2dba841d96a265a54eefbdae48e861932aeb0e40", 1440 "8c51bd91d04d05f1b89381c21967c4302bec21f9fe60d8eab74c0b885a08d6e88e829b446ac1d787c5865152f8e586423d5d8192b34ac533be23684db7bae7b0", 1441 "e1ea22457c276a45d837f93a7ad6df4a6ce358dca04ae61fc90103a6b18aba8c553998464225706f8b8d755a25ff65dc6b79f770645d5c2ebbaa309a41bbc50f", 1442 "994fd41fd14bc6a5ec89dc48e5732c6ecc39f74454f36a0c03aa171adf2e7a3eb01ae2959d9996d2ce416a86a1f6e3f1fda3a8234162f153d76bfc3a9f6a1e7c", 1443 "fd03fa2750dd17603d137dc0c36870dee2ea0089301715fb1527839ce71b3f82bb09cf32c1ca9eaf5712cc4ed43c54aa92155a77811340b5042898212848b61b", 1444 "c990afc80f67c757ebe25e25d91abc71b42ce5e20782195e3442a5ee46635ee35219af964a507bd701bae1893c91b0a0f1a28ad1c83d9f144004913b224bb59e", 1445 "109a71c192ede3b7fcd9c65c1c8c98d5f8528bf30f383bfc679d869666ea756d98f591571c63c7dd431333e1e3a2df5850c998c5da1758f436da722ecfbb56ef", 1446 "c6aa8714fe9e381753fbf0216f9192b62b5abe37e28d0293add06817f3c33090cf3ede043c8b06e5c02625d49835a64d43f23e8a7d46ebbf3d65fd87a2ad93b0", 1447 "ebe6700e953432e82cd984f399c8614a5eaaec14908c5fc0b42473ebd71172bfa4171ee0e893671c8179832478daf5cc294487de535d9e8f8e48685d572cffd1", 1448 "c16341cd61975170671937e1e1a94450866d785a40d225f67f64eefbb60a302e5980a9313aebc2b270634d628c3bb5a23811b42937cae41aa4bdbaa8a512e477", 1449 "75a43905b285bc106b075affd4943ec2d5ce77209fdb94541973bd38a37b6ae536eaa8de3bad45beb72742cdfead7052f7a7f1ae92031eb16da8e6da79529f9b", 1450 "f36a40ebee79d18e18b8aeef850f0f022165c25011d5c421729105c028934a7a66d944296f8d066f9a90eb4a6044e54712223595edfcec7f128fab2d920b0892", 1451 "eb89314f6c3498da8d2c1d04bb8092cd691787d23a5fda2785830da40e4a599268109df8192f928b453ea65ab4b9e013e3972a18e63a9d48b82b6de4e2e92e04", 1452 "71ffa7954ec0596019f33448ae5a1841e94bead7735ef8dd59e6f034cccbe3c6afc909ed9741fdb7bf6b34aea359d1cb29e5cc9a3467482125a20c65d39b1620", 1453 "1b3e524a53c3628afa5ba9e8f5bb0602afc66c274f97944ac9b047ab4bbac05cb6b8622e3f4c356d916227dcaa062c6b2d7356d1b3a30a3751d024fe4c74e7aa", 1454 "54c32c7a1fa25537f75985dd980f1de2508dee428992f28fe969f492ad95f227790ad0c5521151c4895a66b2638a8d61c143a990e0af458c4be2fef322d5d7d0", 1455 "51232f76d5e4b56ba5d46c16f835bb65cc3827903289d52b784c163d597c0befaa398bd1ab6245b779a3d34057d1072b18388bffe36cb13ddff577b6f246a63b", 1456 "9986709942110e94c1bf5857331f8a709095b8ab50492a79765cb29e1cfec7e13ca033af6b9eb8636caff7f9fb0787df63e78113802507986dd0c2e67b8a6a57", 1457 "bd139d18c05f113a151b5406bfdfd5ad75be68cbd05baaabee495bbe60e50141c9bb5e89d77e8c28a0cbae29889b4ae2111fed3447fd7761be89eb62f35d540b", 1458 "4659bd5e6cdeed74e368b7277d512f5787461c4d0c12d40b5c5a0d6e68f5e931eb1884d97ea56cac5bc581eebdbe967a0eed00df27a18bed73e9ba446d9f4796", 1459 "8a1f483f43e83ba61ef26d267ab43b85a62c60baf8f6585ba9bc5e40809033839aa8731f8888aea3385027848ee5be601da96ee356fa8d511512b2d3d2b875b0", 1460 "4f2c6da791cc87daeed228fae0c9ec64a4afba089e824e78fa491d6b3812a5b9f6feb4b3cb85bfa8ff8497f440dd04323fbe3ee12ae253654fb4d35c6eec5b97", 1461 "e7172516bbfaba2a616a05ff476a4aee6db3e38d1884c3d15e478294b64146acb9935666b1e3428154a0884b4b1fb64d8d6e17997ddfa9e84d4c599253399e45", 1462 "4cf90873d8774c8c38d2222ac298c2bed343152ebf863c2f8adca2a6b459e3280377e473a7458120f78e54804dbca0d430d75efad191aeb5242d03f397e86cd4", 1463 "d3c6d3372d55d777ae8015b2251ba7d834a8d3bd7bd03ce5c2112491f7704631bcc9ac085ec7566aa95f76a18dc46b05563f66db751398e0d5471acc3c7dbdb4", 1464 "c677f4c817b083fa0b2ad423dc87d4aba2e8c9b740c252f45e8d4472309a8602a3a8531d4fb402a18cbb8ae03ac8a36abc404e9496f992eeda8a9279d3fefd07", 1465 "a5d0f7a525363853561d7588bc99bcc17d61c098c6396c879a6e5f36ff47c0138e96cd31ea6d1e18eb17d9023516b7fe9b1cc887b5431de41049e6f1615f4c73", 1466 "2491d1316a0fa4a12c1902a6934d4fce70f82c7d05508a21362a7d12b6cb698479da37184fa73eaa1e6397ef5ed88a2ccbbe5a342e5484fd30577e14d766bc9c", 1467 "7eacfc489a50242a317e13c161a21a2eef5f42fefbcbc122ce67c48c1057683f2a9915d9abe21e658d05d08f97bf180feb08b3d3527bd76897ece2f4caf5a697", 1468 "3a6b9552f952a7cf5a34c6e155af3bbc2b46cdf51383cb0dbab22e1d8c4ecdecd00954eb2770ad551e7508ea8228e8ef70fabce7ed258a1b55c1ccd896b9d453", 1469 "7f45a8d3451ac0ed423167ea49b546cf50204fa838e7746f454a01c145a1d335e1462d27a30232b5f8b9ba6d0b9bea043b9ac8c56a3b490272b121b6604fa107", 1470 "68ac662a5a013a250d7e2f96618e11606cf675866ef683509039bcaf0b6d2d067d603e1239005368c4f34ab93131cfb9dc7199fcc3e72e93e933e57afbc41aa4", 1471 "257ef7d74271ffdcd61db9de60a21b295484b7a01aa35e98a255ffcb046052a5bd70e2fc12fbcb93a5a0eb1a840f981012a7fe726f1dfafd87c7f4031c6e9964", 1472 "6df89b0e95e03d6e6f17a1391e5c8f14336abae142c855101e1733e52007f837b5ca60971c3d04ce1be3ea947f40eb67622c7b61f0d7e96a4360fe3843b5198d", 1473 "4dceb4214d2660f015929b36a6e1047b2f3b99534e6114bf0df15125d95bbfc0a17b715b14b5cdfa68cc9f07eb7af30d9eb89293b56a5660ff7eb87fbf90c987", 1474 "d64fbb9ecb3053d39a148f22f085fe085eb713c4ed1c2ea6bda353c23a45a390aee9ce5c1226693baf2b88a58981b0ec69a681f39cb0bb6d83f05957364e4a5b", 1475 "45d76897a558f2a451b1e2c98ed7815cb83bc0c694301a0ddaf2d945eb85cd2b6931bb399d12bdbeb4e2fdcd8fec6f88c20f51434f4dafe2da416e0e806830b0", 1476 "562c949829c04fbe68574111f2b4316dc9691883f6ecdf2de25c467f85c4920da6b8dde9e3861ab39bf9855b644134f9d7c4d1d4d627f6bc43b95cc0aa622ffd", 1477 "4276ab922866c3c7f84e1a2807f23bab757c4f78dd8594e023ba93a74f66b79bee54d0e836a7cd666dbf0265b0431a0901ed290770e2f29121a6db0053d80732", 1478 "eafe662c7f81f4a6c019fff7a7ff565eab15a9941b89c550e87289406699e28a9240190602c49fb943dd01bff5606b6341bc60c9dcfbe0d3db3d676840613ce8", 1479 "f16e7510bfb5f91d24df0e680b8c4e0395474c1133ad08928580dc70a99acbc569544a2b1565acbd2ecc9245bc692f5600bcd5446868a233ea4a9a919f8121dd", 1480 "0df6f1017aee20affda45be25634028d9f13e75ed64af5f68f635919bdd34a8a7516fa7f44323d4391edc959176807f770cd77a9f73615dd08c65de729256401", 1481 "491a90370bd082f309b49bff4586d6adeb7032c48f23117357e0be0be69a3c9918e3b1e29edd9b7bb43c047c3f73a065254aa0564b14da20d5f934da08c3e66d", 1482 "e1be33ef90df6e7d36f33480990f5b0182246626cd300a77eb2786ed5888cb93eef4bcc1571517a03296b3ef8c41e02f98005d04155adb51d95e3241caabffbd", 1483 "1a1f5600980bbc9bdfb45c45697a87e8ff41f4cbfa5534d743d566713c3cc264e636064693a3abe35ad7c98326774c3dc577f50517f66f5630f02ea0b87fb720", 1484 "d3d413650c89866ce4717136d37b57f68ad7bf89ef8200605af26fc670213fd1fc2af1d5b6ac3c5389cdd16b461b1c12d311b6a64480721035be8ad50b10acec", 1485 "449a31dca8801191a30282d1c044a32865ee511416a49f7b17dbdd101e8e0c0eb15748c9a01cc8cd4020aa17e8bd55f2958d905ee8b512a18fee248ee6790a55", 1486 "a38075dbfb12b474ee2788074ca1769ee021bc97ef762cb2c9e263411731737d4f4bc89b27222563d76c8935775e8d1e1442a4f86c1678b06817fd0b93a4db02", 1487 "db36a8ed0249f4071175091fc434c94f7327e2582844aea52fee88a48e057b32e2e1727f312f794567580ab85a79eb2fa5423d7939ca7aec77cc688a046d7a49", 1488 "45bc46939a33daaee6b1e867172e699505bac99fb029f0405c74fb0905ccfe400fa023a1c38f288a379a76ba47d94a41968a507d57b055b4921533a3aceb1720", 1489 "5187e33c831c3bdd683ad9573bf33c6a59e0be64e239091d46670a928ebf7704add048768db36fc7985c65669bc15d036d1f3ba06edcfc9ddf619d5dfd728473", 1490 "7303b3f1e66f7bb8ee21b9087174eca1c932d1d951bfd2b8df1d28cd8553f7dc044513d598dec918ace3a97d89e3edc1c967181aa1a3e68bb40b83c154ed52f6", 1491 "18d361971d3f350f65645a18e082d3fc7b1c3ab239263ccd222d123d2910369371589830a04ae1a446ac4829dc3c1cbc5ea2ad3d3f72d702bf391463adf1bf11", 1492 "30a68e59733275fb286330c59483ddbf4b9e57b325968ec4f112fb1adf08ff407a7f65dc109af26ab74b9da2ff84335ee9dca41d6de30158fb703de1571184d7", 1493 "14c97f85f260fded645b44d1a2bd1749c92d4732c64986f6887cbf7a5b4ba4112bf2e54aed4902010830f9603f31045223fb15353d7dd4698ef1a9ed47023be4", 1494 "74d7d09289ea2c286e3bb171c57ce8d23da38814c1824550f6057c2859dff8f6a79d2fa695045248f8cd45747724c82dfe569e015832d99ecb8bb16b7cafda9f", 1495 "d2729d12aec9b22d139b1ed0e7059c0a4065622d3a71ebc605fcec769c022f0c888c86fc34f6acaf50fa1e1ad4d3dd55dbc308a2f92b0cd004011edaa63ba3c8", 1496 "d29aac419d056bc48399c34c1a5cc250659620e307a58cea354ced96375286b61f1d1b54cb69012e2a4472bcf0cc97b27feb321d335a250947e351d3d9837cab", 1497 "8d6be94516e07d06a2ceebcc36eb619a55a54057477d1368af0bea6ef54324196c659952f1bd61417625003a42c42a8e8dd3101deb46121243e6c886b73b556c", 1498 "4ae9d8bd788e850939e2d3bb4f76706370e0636cf05dbcef5f40382396e42947f6859590eff737e87e06826498472f9e198e3dc60ed1ca7280a353c303c5bc06", 1499 "59132751634570d1334fdc68b1b2c11bd35fee2b4fa2d73666bba26a4d91c2fbb1c23d4436bfe372f077df5c993c880aad12d2faf5bb97853aa3f3be714763b4", 1500 "63d8880e179c7724bfad5c85a29e05658baffc19d2f7a3a79c25c26e1a4126d03687d97b0fa610956acead9057052ed133346941a14510fc37849167c241b18b", 1501 "00d7d6966a8ec87ab57a741f8e633cac8e2eb79d1cd070b5aadfdf08b5bf33891d2e9022d668c8fce556df1b5a34451e853c15a2388cf52c990a7026316c4c91", 1502 "f5c6a0916db541ae2fe853f72a859e68e3939825dd920d98653c4b87b0a680ce1dab28a80abc31391984075ee1856ac0f31e8d735ce60b4552f61daa2cf4414d", 1503 "14173d79590fe165b4c111b3724bcf992d1836a6931c800a0bbb48a7948467f1dacdca3bc4ca5b8309ad9069a0d2c62dcf0dd465e5cc6756773263696ac397a8", 1504 "622b81bdfb1c2293ba946573baf56c43346b460d280cc751deea1a6329b7864503c1ae77e3fcb51d557872e5473607d470ad92d20956ec76ee66e5beefd9e2fe", 1505 "62be23e8e6fcbe47e56587260a878c1f81627a13e5440d872548b982e43df2f5ada4cad7e70d5b19141a4db3f4398c59ef8c070adecdd296fef86e2f54da757e", 1506 "1bb8d04ee9794abc82f6022a8f9e47c164c43d087152d67f88be98a7f7e0da12bce24e514fa13544f054e684cfac2eb793c2571d5cb7c446cecfe8bac9d27c65", 1507 "74da70a534f835db20e7549386d30160c466219d34ccb9998b8b7aa7f7458beacbabffe11ff309ac803d2dc491f3f1b202b61978f65e8592f57f1c382b12a09a", 1508 "4e808e725a13b437b20407e8908c2c67136d7cbe0697555059ecc3ddd5e95d97b219501f59c97da8971e4d49f70064b12529ce69a991a24d6ac7fe1e7dd30e4a", 1509 "2bc681d4599bbd66d6c417474e38c800c2b08d62c4704d4b4c4c5d14d47a426ba5ab7985cfbbb270b10ef8e111fde2648a81ea74c6e34dcdd0ca5c288e76a6e6", 1510 "1f950109542d031269a9a595310fb699c34b539b04b578dc7383a575ebac9c9fc9812e92cf64b1065199c2dc5bc7da9cb503d980bc14df216ff161cffd121123", 1511 "58756b3e251ebaf3d3952378096f84c6266ea026c441095f9c1ffd8a5655b142923336613ea6205d1ca454591692e2215b4a6cf4d120431aca7f7de3042546de", 1512 "79a2b18b8ead5bc15a64a8631e2ec760543a8725443da5e953df23a895ca359a72b441b6e3eca2d07636f7594fe8a607d3773e8b6827091c58761263f4848bab", 1513 "0ce1253917e58b375366c41e84d0c2b282ff7bd5423fe7e0a70aa5a9e7b9d5778ae4c2fc33865b40a99781b561f0aa3015ff91c50541a62237706c1335a7fcb4", 1514 "1a8d389c9c90acbfceceb6ca2f1c6abf8529744512c580267f10cf771a9f909d2ee7861c0999b613da63896c29c68eefb87984fee26a92ad1d41f2c2d546a4e8", 1515 "301bf8c326e2b878c1156a94932b06e59320ae34c2adee3152b3be37c4d02e3aa47de048c47b3a6127db93d698ae5f73a7fa49cdd5f7b98612c639bda3b27297", 1516 "05f4d991c066f3cfb790fa643aaf5cfd1393a6014281ae09b823e1a08380321a089195c925ff1c4e90cdebb75c93d3bca98a6b9dabd0f194bbe124798c070dfd", 1517 "451992e069ede55e5caf27715a2c872c0509337cbe65fc4d9d73fa4ebd18dd79d720dd8d5ad84d8b74bbbf7aca713977ee6e86690f55cdd2412a4ddfd6fe48be", 1518 "cec9a9b12d492cb612962a70bef6f771a94be9a08862454f03ab1d457da17ded265541aad6a72339b52648167bd510bf28d8eb520e051f194465a46ad6502354", 1519 "73109fea56608e130853f32c1c320cb0b2829da5995ed4ec447d9d0639670f7273509d8d977a3f2c2ebc212dc670dddc5f89959d0ca463e7521c613873c08e3c", 1520 "0ae9dc788436d29cecc3ea3198c161302e79217cb440ffed8f0b54e606f0eaa9d9fa84e3078308452768253939d1b1b6cee5fa0e0722dbaf0ffb17fec1f97bb4", 1521 "eb46ba9cf79c9acca66aa49e6daa0736b90836a6c8b8d885b5d0bec735739296ec96a9409c8004c8e175fdbe70b176cf8e3075e4cae3e088a5e6541789e64e57", 1522 "20949880098deb009d07aece4a87ecf88d87ffadf194af507f6442c979bdca771b93da2067051f73322601a7552f19e3734a9866430cdaa087e726d84cd6d58e", 1523 "d5f631f449a93be4985c4807a91573b543dbbf5bc458134d0d1ae7da77721e8cae78ec02def478cea013ca90558a0f99a49c33559646702383d46bb6b5f2c5f7", 1524 "3fc0502afa1c2dd4f6e19a69265f662f176142d4c8b804a318071e6dfb2836c9be631b875f342254d377e09e92f63f06c6a53d33a490b10b0f7025df97c7ef82", 1525 "138f71318d182d519e6307c0a5711aac75e0cb8fea066ac621cb3e1002a61d9cebe3896b8650734d2848ac3075041dcbd8fa11faf8afe499cb9720cd586669d1", 1526 "120fe051ec3630d0e64da4a5b29980d47f3aafcc18f819b7911b9b80552a85588a3b03668a9b9f777e26d060fee83f21d9ba6f4f33dbaae4bac0b34a896f9e99", 1527 "2c780f8584e4202ed8a5ed881a1a11cb2f6d1d7068db08007ceca0376cf5a097728415d2ba216e4df419b8cca67b8b56acfffaaef1f987eafadec3882ea869d7", 1528 "0c85e1500a3ee7c1d17c45edc60d20c72dd3b4e39e95182fda6743d0eb67e437194ada12895599d9294430744c7eb56fb5730b68191b00ba81419e75c9fd227f", 1529 "1a0ce82c25ddfffaf6f7148f05d8ec65d9f19fadd01655b73ec7661f31c6f43075f87ff3e7c6cd217fa7d3c729645f95b11ed2cd945819b65a2a75df5374435f", 1530 "e89b98613b49515adadc2e6f4e75cfd9e05ed6c0d7559c56d11c25d267d284df615c2949ac4a45a6472eb72bb9bad2a71d195adc5a29335bad103829b4f4454f", 1531 "c1c6b4bb2e93aa0c20f67482b090688ff986343dda2639ed4618ea2b4dc7b0dab4f9133706b8feb39515362019a60e31b4f9fe4bb0ca7bb295319e240d6ee223", 1532 "95264905515044c2161952b553ca5aa3fbeda6357d673fa4f7036cf63a74178a6bca6034de360c1d9a9ed00ae4ab5941ef9f27654e53651ecf7a3d79a0e4fe28", 1533 "8f89f42047ebb2675f1b0ccec235abd8145618d09056fe37f31476c75c9478d2e3eb565177a32ac367d665f1d8c53ec23fc52dd592a227c2746c966179bcb15a", 1534 "0af6f6673fcb2c6ee63a407813b87e66cc5a57af5c849d4fe07519514fcab2bc06d67649c31df02f02846ec063eed2dbf24587d9ca1c640596f58556ef278bed", 1535 "08a42b31db93c28bd95962b976b8fc456b9787220c5e68972e549d26a5a53c81aa86e2504361136554b00d3f4a8e50560549073ad3505603ce32136473da663e", 1536 "fe88724697c535e8438378818aad784628f4de466364aef0fedd18a0e264ddc68586ac0830ff3e3114abe71c19318129678d1bbd4f6338f2f52318c531ebc907", 1537 "865b851a973da6267e94f859d7613a1fdf403d27e48ec9ebb6b7148caf04b9a5b51fa0afe26e1f15511e73c9b6749d9d55d724feb7485da1b0e9159d1a5a2317", 1538 "215c89078472aae5b00c50febb2280a86c865834e52f38c77ecba81adf1ade7896b15dfc48165262c0689d3a9d954958e0117b78c4820348a53e3eddbcde4faa", 1539 "e6c4151b04324760bb5e0ffe579b498afb0a45aa6ae7810ee3e260c880923aa5403aa3a6abb23c5c7ab00d74045f27a14503e5a1249b5532cd7871b67dc2897a", 1540 "0b44f899590bf8aeb5d78e750c49d215a15e4f67f857d0db0516b7e483ce420a11b01344a90022463470a850cdcdf1b134718fc1a84d44a81c45996e352243a8", 1541 "2d8c072f00d8287f1039ea58f0ed99efc26a589e10932a5f37053500b98c77dc422b11ebf73a806fc547fafa56447a5954f422fb1c3aeba9b500bcb66522337c", 1542 "16798f87285a2a4f98cd3ca7904915dfb95b90a925c2d9edf508c11663a949a02aacba3021942fa44f0a5c14dad1d3d349498f6ea78abdbb790a6bb4d56ececc", 1543 "5857c2957cd34e335a387132c26a56b3c07d0cf56b28598d63f25de881c97f7cdde4e0b312901cd94a9918ef7495aecf5e7505e0c3db6419b7490a0770478c51", 1544 "04580332a8ee05136d425cbff0cee5dd877afe06ae58e18240bf45aba6bbddb280ae373b490487e2dce2fe6dc3aadd3139e01c9811f3088652eaae08aa57bcc0", 1545 "db31bc9f12ff1d4384a3f797ab7263713174648c7a9ef373d6aecf8a242cb257b06a8eb5a412b46a239988e5667ab7f635b495065836e015407beac7ebb8fd5d", 1546 "ad508a971146bffa11a14b3cc532647df21b958e25c1b8ce5c4a3ba0eff9b8cd27d59328574fe21affbf720f6eeee9f993ff607803abfe35a35b4ae5d830b805", 1547 "075968327c0d3615df101b15c3739f88b65daa3fc8de65edb6ec323cc6acdb7b7f0a2e2633ad6fb205caec46beba7b5cf1cca0c0cc19ca47ba4048410ed8da86", 1548 "3ca5c761e29e4ec25ecdf958fda0868dfab228e4ee169a874d8e71d692cb50266d5347ceaacb98ba7cac84f573654b21c26cbd47b45d52bc69a1ec25f9750843", 1549 "cbf203294ced5a4c41816fa9fa7252197524edd2972dc3be0a1660cd67711e30345d07b0b9560a94401e9b95e9937f86102a79593683d67901a25f39aa425e59", 1550 "696358ce0fc4ba722e6aeac8f3ec8d54cd61f2e7f5fe1485493cf9efd4ad7e302f5eb323b34ade62611bb7d6a1ee47fd4d2a308a37dc80c010849c40c81624cc", 1551 "95adfd03e51d40efec2744a90051ff8fed936c21f799b54603162d2de96a5ff2116384e9db18f98966cf0f518329a79112add2bebd97da93e3dd9b25e05bc16a", 1552 "c0cf0dde85ca3ca2fe63c66afc6157e9038db9233e72430b900267b9e309dbcb64e6e6995621b0b1d95963183a0933895230df62501588326d783dced2a0aabb", 1553 "900e332a1b13ea34a4d8df1ca45487e46b420017ccb608adfa33dabc6e7fef26781deb3aee9c56544b1eebb02e4f92a3810a47f1614d4405c8fc2acd97aa9566", 1554 "110737c31e68ec871d12ef97a592f992faa5f5207294cd57f88b9a8934a3fe1475d6724401625eb597d0aa1de65fc633ee7ba05f0cbd6f6944cf606eeb58c59c", 1555 "95832c74e03e4a37f278a418a8f86b18c46840d338eb2879b558338ac3ba4890c5b5c606fdf79063bb26b30f7fc280f350fdcc01d9c7b8ecea7dc8ee6a940e44", 1556 "3153a831b8e7588ad26c903f9d3ddd6b5f91ec396a73e71ec608c2c0a1f8a2ca6cdb019a91fb11b1057e074516c4b208d22ed35c607555ebb73a54c75b1f1d06", 1557 "7eebb1aa5faf228b4215d1bc4d833e204d1ddd890b6be95eb0ddce5e94720ddcd7c89f5639ba04df96bc92ad47d9a69aa952c812fb784eae9945483a6a90af94", 1558 "6e454aa33a61e01527123396013c26b5bce27534ee2d4f5389e834a57e3d8cfa6fbb23c11730dba1a238c8945e216dba1061c094685738cdf5c79dce09743dbc", 1559 "24c5d02db5e888feca2f2c4d45470828e846a7f0d23486d9747c7cb5fbb03ff3aad38efd51519d473d0ec6510d888da82750cde1d943060b7191e5db40bc1b5f", 1560 "a5b63292df363076a1e6ef6f9bf39ce6b0807fb8a90d43230ea27ea1fdb82686cba4a630a4713d0a7c1d4b204f5221fa5eaa424fa4d48692fec529c5414ebfd7", 1561 "da6f385c25e47e24c7b13e64898cfefb2a77a448f5e2add7becce9f1e17fa7f5110a92f64954ecec923d9e73375cacdff7c41073269b36eabbd78805ab3375f1", 1562 "e32e2b367d3e5b1e62b281f527c5504b607b2bee247ad5b40eeffc9712f0e6b489302c96fe9120a98053806780baafc31e1a11006c3483c644b6cde7640d7d06", 1563 "e68a90199209b0611097fce65e7e92513c606d091be20e8cc8371dda59b8ead3952abdc9d09bff5395df703d2f8af18d689fbf8417a4e74182289366567f646d", 1564 "fad6f95d18d79be8fa72ea23c08e42f9730f688b16960c370a00cdadd20dc69f89e473a32990499eeecca4ac16c68ed72ca806d0d35d18e38601f0f3d8f54227", 1565 "22ed682862f93771c28c711d655139c8ae2f101f4f56e6d3a53c20d96a54f01248067c90453d3b37c861138d47abc82c2a5d7dcafb5a4b96b83d3e8a71404315", 1566 "d2952d7c26e25d2b0b87a629ccce085575e0804fa89f1f5b0b86cd0f15c90dbc93406de1f706b50e5e8f4ba8906686d22e8bfec3d4758cffa5415c2fd2eb0896", 1567 "c87681c9de903182ed2acd61a47a205673b410721be8ed5161f248316e54b88c54a7c98f04035e907abdcc1b05f62f5388997a943e7926ab1839be6485b93335", 1568 "fcaeafe716b54dfcb21eea1129ea9d9de4f3d192d245a6d3022a2ea2fe74d665b8dc7749e0f16a5b7136025ac2e629c1711e8a452f287b370dbc146d51787752", 1569 "8ce47a92be0fa4c1d02ffc9ad37a801bd8217d834f92b438b807b5945a160e40aeb2d6850bb7bd7270ee4906cd9c83f48cead8942b3d9eb960bc384f74b84a47", 1570 "33a6c2a6b77f4006ea4cc421bea023a4a8e7066bb37b8ed7735c76228ed0ef94c469842970cca4691dc6dfe705b389b1bbf9483f314939a6ce98f8991245f7ff", 1571 "a912b7f56b1e50e20c8e27f51bcf8247ebb00fa926fb000a31525329ed3782a3e3c39903dee4fe60ae52f79b7d3f7cbe2c1a65df2dcbdaf63a79029773cce617", 1572 "239e6a108ec160bb9b937654375e435453a9b70e17ecd0d175e4ff9b7edbbf94422b5cf65344c0382bffe72377f8b83cbe5ccb16d8dcd74d3dfffe142b4c62d5", 1573 "4d1a868e04ccf561ad6e7d8f603c73012b0706d60c9964ffe8cc2905d4eaf3e4273be861d2949de775105e9ead2cc4746ffb1381c681a384c5ee688e509b86a8", 1574 "03d39c1bb98f017a36e3c9897bf90437ebd235ce00b5c48b914d0439de0093048f6f80e3bd10125df135730890207ad3291e1b5a69884127efebc26441a0fb71", 1575 "7125f68441a38587fe679e43053512a6b2dbab286d915567e423839afec6b24ed251104c894158fe24a8e02ff663b1470d9e6d84431b639e034a4d84ba3c0b2b", 1576 "9a4a8b20d5dfb3a8dae15406bf6602b6e6af726ec1abffe46981d21d3a4001b82be16c09075886571a33f2b81d682d1f6280be1c8265528e9ae9e5d24fe98182", 1577 "ccafc172ae522c7e9a85dafcd49ecacce149386b170d95edc4bfb5f0247def14a7580aea60a1243c1f6ea78caa3cb31f87c6af31f7e12968af747ef4029c31b7", 1578 "8c1004a049632b6889115092223724a662ba1e3a5c956bee69bb34b06eef18c84ac954e96085e66fb546a631558340786bdd5436fcd98cee396f6ec76a4a1ff9", 1579 "4237cf42b759fce64ca87ec596890498b177b9e061fb5ca60adf86c5430f19bd5a47f423a7cc5c4d19621ec61882265306c6da9291917030b5a96819b8b3663a", 1580 "44b566daa96e5df3cc08f8b93f2c4b6595ca410eab61e09fe3f2e05a41b9e2ca75e08d9731055e288fa71852e6f6a371ffc7dbf8af8445693ea6fc87636a701f", 1581 "907f24858175652f38f087f28548120b93ba473a5ada900ae1f56701f5a85f849ca16cba266e8d3256fde52ca7781158f65b496ad94e5036ab4114c5c40a0cef", 1582 "9b76a996f695a32f54bbc93e07c5b08704cdebaa34e0acb69af786338ce8e165de5d65ceaf3b49043b8652013537e49315ac4b7ce735e05169cd04f4efd337a4", 1583 "64c40533154decff3f17fba6f3135ce24b51f371cbcc76d99b075333a4b868b89c3b904a1872bf84d529c1dd19d21af6861aa0782588333e3ff5d261cc41b883", 1584 "b01bb404d0b218201fbb21b857e9654d6c509dcc33d67d1384e957fc6843d89086f968e1b9866bb8b33466702113e88756212204766b4935d0f60befebb2b958", 1585 "6e3ebb62ed543a01dd660ed840ebc2743a09a4a4d570f63ec1403012e511e7bfb3da9d4df0a50f6e35beb71c99317fc10b825a5acfe2440f87457832574e5361", 1586 "1f8fc3fceb1aae0dbe23b0e02f302161c60dec2ffec7bf093c169bf271adef43e69cca24f7f3b4c1a65b75ca9ebb37714ff4ea0fc917b18bbbfcb749b9f6cfa0", 1587 "36f18d49f7428b0082010b989089e6c71547b93b5e144b632b1254683d494942e69a794fb384dcff8694ab0fc7377877983a5270ee90b381c2345af13d4791a7", 1588 "04cb2455580e3a7358ee2e6ccc84f04f1eb6aa32dc5cee038cbdc5d8e2be0eecebbb3c3cfc0ca339240c149fbda6a5d02a3cb4163403556ffc68a21addfdc10f", 1589 "d4b221abb87215f606b2fa5b70b7b4540c1adb9e88ad96b02754842533ce842b75b84b08db365147593e05b3ede8a9ec5e9f74a922932b2fdf53a6a1b4655786", 1590 "977057ef8bb7685e4376eafd0f13e0f31200dc9119902348e1a7ad853cc97cb734b55ee045edfc1b988955310294c2cb66c91994442ae9cfbfec1420554d6031", 1591 "3e24d97023cb3417df4b9715d2669503dc193706bfbc433ac584410d2104a833575f7caf583ff9553dfa09a22a4be03d8f61f1a8b92d08638fa20c73330c7668", 1592 "baca624a02fa1dbfd4d351d4eeea68ac12c55cb43fea42ff581e7561a2cfe6f28f253339bb6cf5bcae7d79fd8629d57e6b4c1a6adfdb373e00664c4308a1cffd", 1593 "dbf2baaa72b44696e461da464f107c8c15e11f456351f02f34d2fb2dd60f59c36537aad5ab8eb4eb6fdcb966cd8078cac81b96a51bb34f2ced7458ac60f082e3", 1594 "ecfe64e524b4092418cff0d34acffd02ceccbbbef9cff4cd1082d6334429067789d944a52484616851f7f69c35549acc129877be0d315759c0a56066151bb0f1", 1595 "3fb3954838c317443f46b08e3c4e57ca756063a665aaad4e0eca1b1ec1207699074e9ebce6edfb66bc9895add3e4c9c6c917e84627c210fa67ffc6d7136976ba", 1596 "3f34fd1c5669b76a49d463ed40087ef073a3225017b7a3d5143e52de970155971344a11db89031b2bd57cbd17e8e5708b5ab9321db5da4270be91b57e5c2b554", 1597 "9a582a7903f8d8ed37281e6ae457f5e4c7412f5f3221f56ec00acc407a1c62ef91ea1274fb65a3b31f2fbcad66b600f8a93f15880e739f7a54fab0872307abf9", 1598 "2bfcedfd2ef7758e0fba77a3f97d52e54e9d043ac41bbb9c72df61b8aef8a9e9a2734f61f8434ef7445f760b2a21a6b4466aa56fb5b0fb6924118f0838eaed4f", 1599 "f27e7447960903e7fb6667a267665a7a8ea9190311ab39fe3cf626456a599d52a0ed1e8040f564702bd40aab66f4440cde49c5c8cd4fa20ce3cf7d8e57bfe7f1", 1600 "3ffe8ee27223f1caecc67fc4186c06eac940d9ed3e85020c88297a68627bc89fc9cf914d31f15122c69fe66e35933ce8d3ed4147f7ddf3b11c0e720d73f38b8f", 1601 "5a0a87be3a2d567406a258cf094674956815ee99e0de0e9d32a8eba0429fc655217430ca26a4bd523b0197f83e7c4944cd47eda09fdf0d65b690584714fba241", 1602 "68391f74e40f6c79f05ef126c56c46880702f84bd64498e03fe46c99e19a9c8f7619913b2db72d238b9cb1543a8b6feec26f5708695f22d5219890285efa9187", 1603 "f9a840c2cd6ec0dc41684f9f2668e031e8d4acd549453a2da7c18d16dc0695681d82f600b4b5e4ab127f562b99390a88d69ddc09f246a3c7e93e195a43fe7c29", 1604 "5d951688e3dfeb7d261ffbd15241fe6c5fbac6dec8f533ac6dbb0d4d3e9a6b0994964ad5d6a38d28af4ff675d6a13893783e2e77f2feea0ba6242af289f3d7b0", 1605 "e4af4931de2116a5f0dacb06c0af13c2fd661e972034687f692471f0223e011849adb25303db96806d7fff331b2a37f7d5067181b8be04118aebb090d104f895", 1606 "6961331e6409e3da3f34761a8a7760c71a72fa3341ab1a5d1ca2e53b1571ea31e6b08144c4c1637a8f1bd717cfc19062c002069320c244664e5ef84afe48dcec", 1607 "315db7b6c1f368d5e2ea359102fb5b68f6ebbc907b9d88fedc1fa676fdd1abb91aee74aa4e011a8560ef52e0218d5dc08e7a49e564ac3029053c6b327cbd6cd5", 1608 "c48e7f46c1580a0a04542d13f91b8a967463bce913c934541ab4a3f12890b29495e05a0d1429724b81817a4c823719c81ae3d5a81e8c3ef782ac6787f8697c19", 1609 "bc63bc99cc101c36674279bec5bf3301dd5d084be31cef876ec0eb25f7c3a61c28560ac6966db432b721011f9b8f2a5ee0c714bb79552685092941be155803e2", 1610 "0bc5fb814f57cba72018a14791d7c26a0c5151d70a633db67dea36630771b8f85d454474329537bf02b384c89e383bc53199f24d543eae537f5ce7df6dac8269", 1611 "6bc2fcd93180bf2e29e840fe8dbe7087599ba5ef413049442566a01dc3ba7675197c02a7b294d7689d4eed9f7c513477419dc07778383dcb0a40c7653d9830e4", 1612 "2d59ef4d4e55a11af520137a4bdd3cbf268b1fb00b3e9518d90113175984d61da1fbd66e036c33bc7c9d0dc930ba8bc22425f95e0207bee3986f14262f34d363", 1613 "6fb4a6fcd74a02b3c0707880456a14d80c25f7097cc531b920612507f6e2ed522b7ae0226eae514dcbaf71b29aa3da8acc3b8cfe2f283cc02ba85fde9caf11eb", 1614 "e06445ebb682677734bf1fbb798db6b0a2d9795ad6dfc77499c0544251ffaf740c2fd29e8e0e6f7ec9e5b78241921d58e5a4be54add33833700af1a97f09e69b", 1615 "c993ae16f110958fe35ca96849231fbe6f22e6b5e9c2793e810511f37c1bcb76bb0f0f40709150a262f9a6cf35a2cfda3b7da7a7fc37cceddc3f228437466bc2", 1616 "d430a45ebbcf77d7ddeb6a76fca9a9160eb5bde7977781956050580b5545cb74bb037a2bb8f55011cae9c4a3599c5b502c3bae1cf4e2dc25e624ddab12f85d47", 1617 "384a9c49a73703209dc8cd4f6f570232dd31ed2092179f54e615ecf54fc16aaf1bfd5ac6a1332955dca97d00c1485e2049c7b62fd308c9ba77b0d279a334300e", 1618 "f4db34ecc23e0e7fdd6da0a9c70e8f4a50782db9f0db60ac481adae06e16e671de959860161b1b55ef46c903ebee59bb00788c1c7fbd623db337dd7824c038b6", 1619 "004e126c578a11c3a8e632162a43a9b5f2a8b0874a24767b2fabf1281eecad6a9ebc0abea2297c6bc584839849d20093bdb1298ce65546fb893d63b20958e9d9", 1620 "9e652b0f982974e490e3cd81c2310f055fa661e5f9a5cc522fa917db04a25bfe0671ff39015f2045a4fdebd110777e36f46c13bb979f78a54aeae845457b6383", 1621 "264b966b2188417b043fcd084cdf1369e5ea4a85ddb78f03401c897069e31a2e01e85efac6f2bb587f5df2a0d4880a961a3d68a3ad150314e2c5380b4a274c51", 1622 "e959a598a135df3a8d822c002bae2813d0a3cbed41caaf564726f336415eff29190b93a4c3ad355f9900f7a6ff9d13a873bbd9825a5a3259491df6cdc014b1e8", 1623 "0c3c430726b0ac9e9f8f1d5d8f798d48d9f445f91d8c6817818037319910bf1e615e64b9bc5905a843d3b16255112210a54b30f3c802066765e79ce216b88b2d", 1624 "31c95de0b9eb882392d3272e2a7c2cbe4fc104706cc2aad5819bcf49667e2f985d99ac7284cc71bb0d5640f88610d2d5f24752aaa0391588d6fcd7f4e921e594", 1625 "397b05bbb28d45240662a6e4cac2ace506208155eaf638167b67fe918ababdd817c589157905802e11e142f3146e3f80e0351aa0f240540c59290e63b384ac15", 1626 "08e9eed87fde721a6d7ba35ae05201c26aa3ba391fb6a66cd89369d61ab36fe81c300cf80943997e247257137690d890f27b4f96e1ba011aaa06f607e516bc62", 1627 "e2b3b839718f4ac05192ff24dc0474672a7c455d40f48240288e68a0ad341b5edc181dbd238a1a8f915a27e0213d6518b26212da639f60d9c9ab346d3b0c5698", 1628 "d29236289a3a247f6dd7995f5fb4771bd99ddb87773efdedb34d5ad74eb32c407b9a2b3dc886931e82b31afb750405182b6e1c0b287ad2be8d075a9c23fd1673", 1629 "da52484c18cda7127b5dd9c011488df8ef3577590e7e903f2ea2c98083ff007e941b892a4b9249477ddc5c4d7a450135375fee3f91416b5986d73252f8ba54f7", 1630 "4a64654643d7ef34aca7a3b492b9eeb5e86d84b146ab21a19d488407d0cfd4aa0d4b01a6be6c205fff7898617e541f570e9cbf7c4f38a2639082d26236256d16", 1631 "110318ddfe4ab6ab3abf65dae193ac3dab60d714336d49607b65a4dafa43ea68f812b9476a4e5fed473f1421ae184ce2995283678f08f27060421cf4e458ee21", 1632 "e5a1b9fbc690ac63a527f54d67e73eb09ddbd0d7df180aeac35125b02cd28984bf05cc39d8952cf6593550c3e89d41b4d1b833ae3acd4c27cbea330fce39079e", 1633 "61e2a1e37df9106f91a6e3bde652552b5a5de33d7febad957f04bb628df4b02e8ea952f6a7fa2f23a025a2a0813baa152486c0a998ec5385904cd80e5732da27", 1634 "4c8c233304b069fc514ce0adf5bbcafe41fd7df64839ac309e5b7c99740b06b47cd8016bcd8a63c83b4c28b870c92d3ef2db6c9e065d65c57f0a641f12c250a2", 1635 "3f21bba8f5912d816890b1ddb129aa344fce5a036de9107c19a227bac8779206796bf793c448ecb038b1b442bc3c3f2e4062737c9c323a5c6135ab76e217d3c2", 1636 "9e3a2ae1a0a1ff02f61b9b89e3b47ec85922ef21556ad491c1b2c630a43d8ae84510a24a422404758e5aaf65bd090dba4004d81312288c2aede4277bcce24f23", 1637 "fbd97322a23a2b48ae30eed4468e5b18456121c33e01a69c83ffbd4586dd3c5b3a5945d8e328884eb7d425b32bceddf941438340e382abf548c2763be8dd63ff", 1638 "3bec10131f4e359d1fba2560570076442035346d89c5289195baffa2350c8aa9fc256e36dd5c89dceba08026727a0ddd6f09e919a7e04c0aef6675037e812809", 1639 "452bd8157b9a02f3ec97c0c05edc19034e955a0155e2fb5b899ec48e78d954dfb38c618f46332d1ea42825b8c904882c10de96f8cd6d441a8b173f7b6c72ba63", 1640 "d69195716ad0f72cdc26aef2400bec5e31cd4f93b9ac2673844cd2612f7ee4b55379ce51e00757df446f87988bc6be97fa95901c50a015aa28c2729d2ce81016", 1641 "d54ff7e072154214a9a121d05be83dd4b2098eb6affcfd246cd49c68a437d5c025b477785842913df5e40608b88830fc2787307af1ec37cab5da069639690deb", 1642 "c145ce9646dd65e0bc0459e29a3acad37522db2c20527284f321683b2354a525c44cc0e52892e8f0f6d62d2f499445fad2fcbe447b9a707320f640b8404ebc4b", 1643 "65bee40d82dfd2ebda5f971fbe88343fd4ff359e00d6f8d5604d1de50980607ca079dea479ad093da681d2b92e2809a1f999ddfe160af52d4c66d94de7109f50", 1644 "d1b17502c00d032b476721178b9199b101ac4d379fd410e21e8eef7df3ee8caba445d610657de3f487a34b4f9a00e4a983e15092c45ce7e0c1eb76f521797508", 1645 "00e63723eb03706cd136529feb0d58d39ee950248e838bef82882b50222cf7d4dde10353494a3adb014b41459daa2d9501b02648a309697e4ab489ccc38d1673", 1646 "6f1504a8b20708c33a61e48213888846f563186d05aa2ec7d7798fa1636176ddefe6db68ca48e1e47baa6b1dd6e5003f45dd4a38bb71b997228cc7d83020d0ed", 1647 "6b308fb1bd0f40d4e4f392b5e2c2ba167583379fc88e157bf65aa6885f7e8d684229ff512c734a58cc90efa45c9166e5753896d3ff072252dd901d7410534220", 1648 "3635eded777ee2dc7328a8bd8ec78812edef402417caa1ce4639b170a1cfaa0b4458139fe04defe883fc6c720b2205501a066ed4392a868ac7420b9f17a66574", 1649 "1063c3c27fa416c1d2009b575680ac9033adfa57ef46fa5731df5c70977c106d2e75867ccb9895b07f0ed653c84cc42ec28998d5a4e20dc608d3fc4259d50475", 1650 "4704bbd053ca0b94668032d7cf153800c8306441b068f8b6c72c8ef3d06bb74e0f2e52ac344de50c7bf954ec426406468c1a43b58d20ce44d41689751de284f7", 1651 "a67b971df4997c1dd54e0a142da0ad079f791ae4a6355d0a1ea34a340c8da6ece6ff0b18afccecb86b0bdbb6d6f50fe682392fabf629d234498a9f9d6dbe954f", 1652 "42c4d284c44eb9cf58dfad044364baba0e004b1115a66a1ef5d71f148ac9e95fc7c1d39c26f1e592bae4b0158848e69889eb6dda43d999a61ec1ffb5d2d8eded", 1653 "4c8076ef44c6b4239d4eaaf97297434879382da4802944362c23b8891e867daeb3827a6f68d39d069015e027a5c27ac96d53ea5fb1063b8867615ee742754fea", 1654 "19e72a28b5ac58055150e960b3a05d56fac57a9dec3247ae0638315591f0ecbe39496f9b470be60a1298e0c676343c043ba790edb6f456533c27384af5c7e390", 1655 "b9d3092368b051ac96a2e8ac2ac0e3bf29f6a925ebb725c6d7c89c94c765564ec03043469611d8631f8d0b221ac8bf2a5d9fed0d979f2866a1a0bd4eecb54b4d", 1656 "47cca8038e63244136301471aa15f9686aa393c022430cf1cf27f98e4bb7db2baa51d1e9e1ec2d52440a7b8cb3763cb9fded0429f393c8e2c2a876bba64a4d6f", 1657 "41f686ba725dd5c6b98156a3755e1e9396100983b031c2b37e52c2948ace3767db010a9ac6d19f20f009f197393837f439e80e63ef4467494ec99b124e7caf5a", 1658 "0944d919c719fc6893003adc304890ac4d1a992f02ac8be1c1cf08ccbc222097aed6d76e8347d51211890f33a7b92c78a639ae8fa7222384baf509947cf6bb5a", 1659 "89e8969f6eba851801a1ee030fb8b6dacedd241dd0aa11f050c39aa0fc5b55c202fb573977c0979e208d00b22f1d9eece8bf0cd9a2e877d91bc391aaac914aef", 1660 "e0ef7c285aa8a46e4d9bdac7a07ba66bdada14cac49df4b2b82c100818b916b0b60b30a23f0452e15a1505e04178a9b9d3b276c3306f89b921266c0460a17bf8", 1661 "80e3b54a5254283df5813fe59450e4ba4aeca755cf8eaf6c26f5b462bed44c0d33299455f66dc9fa962661cbc839f4c91feb667b6fcf7a4abe3212e1a9de1b9e", 1662 "d67fba4ecda130ed0fc68dd664246f4347f5c997dd3d12c1ee2836623fc958be04ae83ccbfab94e98fa007ec5b606efa87833aef2390de0b384214bd584ac018", 1663 "ad10d5718f757a6498ffa6fef64ec43b4e2ee9d49527b6ac4095ea78e86173516a6fc0cb81bc6fa011b56b1652e3600a153d04bcd0572eb112cac27121970b35", 1664 "c4d161bf69c0b572a6eacf593329ec35bafa23e3ac2a8ce0ea63868f7c3e33852c6f1d6aa6abed6d9bd0c20c8473ef50beda1e4e336a8e6ecaa9333161942bbf", 1665 "122d3e93aeb2c9912c5f5111c03f77820c3ffb8d401168de01f4d2a6dd259250e320d6b92983ae7a7657ee8ca402f5f851ca879ddaed66e3799f951f4617e1c9", 1666 "f7424d187ceec0fbe52a86f3242942d57671496dab77e958ac48b365865bd7137e85aa3a0fc8012cad52810e7bbd7e055321364c12d1f0fe16235d14cac8aee0", 1667 "6995057c58f838493c23ea51a793ecbc401f04dac136bba15da02cd4c81f4c144fd3e101d3ee8a4a5cd71eee0dc35d97b89ee73fb0abc370dfb111845376b41f", 1668 "8964f6f9596dbede0fd0ee20e8a24f66cb2a1cf191f37262fdd20115f6f61a2ccdc72b2956f5f4a72215dbe5721032053ce77cbc41c6c9bf5428f6e51c5dbde6", 1669 "9ec45bffed4c124fd5c2bc3188fcf1998a262336b0720b5c39ac10803cd70fb1fc44b42120aefea09045e97d620003df61de6e915db1da9380d0976a0713da34", 1670 "9b7902bfee5480813abac9c09f6128e0aabc91d42f7348aae8af7df92114d19a3b0b3287d8941c53d09eeb7621efa891acb93b8a4bde189beef1328d1e32f415", 1671 "040a3de9e30669cb19a09345c4bd39945acb506b4a4c6f4c364ef3d248c0e97b1ec824d762843b8d8ae190bc5db5bd31ff02700a2ca01b077a7dfdf7b99ca9b4", 1672 "993b4768519e758e9a4b547273f89755563ef93ad39f7c4800f8f29659e71cb62cb82bc31c7d1fcdb8b46126b0bc8be771ed8a38e56446ba3927e9a2b1139b57", 1673 "a1620f1255d1560acd86910a3db08046bdf7adcf718e58ccedcb6644f7bdcbcf7fd3276d35580135c72a7033f60511c8db383f05c76e780f84e8081f73b9eddc", 1674 "1d752fec1dbbf40a1b1fcc6c644b99abd28051df20577568f76998109da7c291ea108c7e66908c3309953d74c91b95bde18b7a01b52f91ef8eb034765288a134", 1675 "c3ee32fa57f3c51bbaed046b62775ea310b29797033c5736492abb69c1eeac5f94424aa02047e533d671236482fb65fe98255a48f0f55d64b0612305854ce323", 1676 "d5f23ce060d1366dd587f1b5873e0309507fb077584106adb4d463960ba70721016ca14f19b1be8c71742ce1d0f9dabc6899041b09105cf760f2c9222fce7a1c", 1677 "f185f0ca1e99c36cf2f496151c6e2e3b36feba2b18da1dc7c7b8b6f66776cfeb51b2e8cd04297016d2dd5ed3908507378ad23d41fc99eec55c421e6c2059d6d6", 1678 "09b6cb78b6b04690e8a8978abc1e092c0b630452c6d9481bbba1f2fca0a78d0123b8424ff8be44fa44ccf9efe75d5f2b2bea07568df67517bfd701fa6ed53e12", 1679 "b3de3ead6a671cd99f9947774073b62c0ecdcba11fb021ed9c65b3c01ccde63386ee038eb2a5250666a316ae92b898760a14589156e3f3b0f408c6f6a3321b01", 1680 "8ce517501cd06fe1c12c7317261c4014526aee9d0ee12255eae89f915ea5ac61e3fe22c2efc18cf28f904c93dd0634a51c86c2d28261d519dc35dadbd877106a", 1681 "707d2bb46e220d858bce657e106e4ce5c276b325b3c65382a3af261f46cbb0e878cc0a31efd7c823ee102315cc75997a6c27d3ccfbbc77341f6a94f46bbab95d", 1682 "3eb39d5aa4df97195a7c96caf2cf3b2b3d109273ab15c1a56b29ad1a98b4c24a080108cd14b86e509ba3f57c045c6953010c159b018d0469097d38b4fa0915d3", 1683 "0cc4fb2c20a269d3e2000976a296ecdf8e832cb8a0146fe6c8f03d29a2c238ff887dce02935cc50354747cbcb3301624f27e4803e431a30cba1ce3a40e9af096", 1684 "8b3904dd19814126fd0274ab49c597f6d7753352a2dd91fd8f9f54054c54bf0f06db4ff708a3a28bc37a921eee11ed7b6a537932cc5e94ee1ea657607e36c9f7", 1685 "4e9567e12315edfa74db8ae24a59d5c77a71f3d6a49b6a7b377207047a6a6f800362fa38e8036148d45dfd518b284b9b3dc7f8b9d6d223fd2965b766c58a2ea4", 1686 "e23385c4e0ae4e8f290dcbffe7fb7f8186b60e633e423d16d2c19fe7f3e5e6188b133e4cdd3ae23faeced99971bb716b10adf156834d275c6c60165af932d892", 1687 "7c39f7ee42e94b5104f3a6dd9a3d426058ed9f36b92bfecabc83dca83351b1f6844c8d1f9899e4011654b1ac16ce207df3b4aac8f0997e59758dbd2b6f89c261", 1688 "64a28857b2574fc5cc2e25b4f7d1c7c7855eadf7613c949cf4fe9485eac5307e18bbda3d5bd4f6124de74ad9a7964ba81f1d2487cedd4ec5d0c3789d47e74005", 1689 "8065428949a42e59a8e6f2b9e17f11178dfac6449d78f3917ed6effb9d20e7e4159679e935f7ec49e3b04336eedf07200bdc4992936c3b2fa2c1b935392c448f", 1690 "c9bd9c778669d411ec9f723fa0ec96fff5c0f82be52746037bdb9405eb33a8115c00a6bd5f5260730bc2437027609bf45f402fa8c1a26c0fe2c9d4e9255e6c8d", 1691 "f1748c6ec048cb59fd271fa933c1cad6d00d86d66fcca9188f1b4239d50e34bbdbb6dfccae9bf8e4291a0ad5e76d48770d36824b850cfcbb4012d97f2ce5650f", 1692 ]; 1693 1694 Whirlpool h = new Whirlpool(); 1695 for (int i = 0; i < data.length; i++) 1696 { 1697 for (int j = 0; j < 8; j++) { 1698 data[i] = cast(ubyte) (0x80 >>> j); 1699 1700 h.update(data); 1701 auto d = h.hexDigest; 1702 1703 test(d == results[i*8+j],":( 1-bytes)("~d~")!=("~results[i*8+j]~")"); 1704 } 1705 data[i] = 0; 1706 } 1707 1708 } 1709 1710 testISOVectors(); 1711 testNESSIE0bitVectors(); 1712 testNESSIE1bitVectors(); 1713 }