From b8971daf8a5ff870bc0c88fb7a0a9672c511ba39 Mon Sep 17 00:00:00 2001 From: Reini Urban Date: Sat, 14 Dec 2024 15:39:06 +0100 Subject: [PATCH] WIP add rainbow/rainstorm hashes still broken --- doc/rainbow-128.txt | 1963 +++++++++++++++ doc/rainbow.txt | 5742 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 7705 insertions(+) create mode 100644 doc/rainbow-128.txt create mode 100644 doc/rainbow.txt diff --git a/doc/rainbow-128.txt b/doc/rainbow-128.txt new file mode 100644 index 00000000..c3fe1067 --- /dev/null +++ b/doc/rainbow-128.txt @@ -0,0 +1,1963 @@ +------------------------------------------------------------------------------- +--- Testing rainbow-128 "Rainbow 128-bit v1.0.6 (aka Newhash 128-bit)" GOOD + +[[[ Sanity Tests ]]] + +Verification value 0x00000000 ....... FAIL! (Expected 0xFD9BCADD) +Running sanity check 1 . 0: 0x01 != 0x02 FAIL !!!!! +Running AppendedZeroesTest . FAIL !!!!! + +[[[ Speed Tests ]]] + +WARNING: timer resolution is 72 (0x48) ticks (0xeed696a2832c - 0xeed696a282e4). Broken VDSO? +Bulk speed test - 262144-byte keys +Alignment 7 - 4133.050 bytes/cycle - 11824750.73 MiB/sec @ 3 ghz +Alignment 6 - 4150.336 bytes/cycle - 11874207.86 MiB/sec @ 3 ghz +Alignment 5 - 4141.675 bytes/cycle - 11849427.69 MiB/sec @ 3 ghz +Alignment 4 - 4147.971 bytes/cycle - 11867439.36 MiB/sec @ 3 ghz +Alignment 3 - 4126.020 bytes/cycle - 11804636.80 MiB/sec @ 3 ghz +Alignment 2 - 4157.450 bytes/cycle - 11894559.77 MiB/sec @ 3 ghz +Alignment 1 - 4146.395 bytes/cycle - 11862931.31 MiB/sec @ 3 ghz +Alignment 0 - 4159.034 bytes/cycle - 11899091.89 MiB/sec @ 3 ghz +Average - 4145.241 bytes/cycle - 11859630.67 MiB/sec @ 3 ghz + +Small key speed test - 1-byte keys - 4.00 cycles/hash +Small key speed test - 2-byte keys - 4.00 cycles/hash +Small key speed test - 3-byte keys - 4.00 cycles/hash +Small key speed test - 4-byte keys - 4.00 cycles/hash +Small key speed test - 5-byte keys - 4.00 cycles/hash +Small key speed test - 6-byte keys - 4.00 cycles/hash +Small key speed test - 7-byte keys - 4.00 cycles/hash +Small key speed test - 8-byte keys - 4.00 cycles/hash +Small key speed test - 9-byte keys - 4.00 cycles/hash +Small key speed test - 10-byte keys - 4.00 cycles/hash +Small key speed test - 11-byte keys - 4.00 cycles/hash +Small key speed test - 12-byte keys - 4.00 cycles/hash +Small key speed test - 13-byte keys - 4.00 cycles/hash +Small key speed test - 14-byte keys - 4.00 cycles/hash +Small key speed test - 15-byte keys - 4.00 cycles/hash +Small key speed test - 16-byte keys - 4.00 cycles/hash +Small key speed test - 17-byte keys - 4.00 cycles/hash +Small key speed test - 18-byte keys - 4.00 cycles/hash +Small key speed test - 19-byte keys - 4.00 cycles/hash +Small key speed test - 20-byte keys - 4.00 cycles/hash +Small key speed test - 21-byte keys - 4.00 cycles/hash +Small key speed test - 22-byte keys - 4.00 cycles/hash +Small key speed test - 23-byte keys - 4.00 cycles/hash +Small key speed test - 24-byte keys - 4.00 cycles/hash +Small key speed test - 25-byte keys - 4.00 cycles/hash +Small key speed test - 26-byte keys - 4.00 cycles/hash +Small key speed test - 27-byte keys - 4.00 cycles/hash +Small key speed test - 28-byte keys - 4.00 cycles/hash +Small key speed test - 29-byte keys - 4.00 cycles/hash +Small key speed test - 30-byte keys - 4.00 cycles/hash +Small key speed test - 31-byte keys - 4.00 cycles/hash +Small key speed test - 32-byte keys - 4.00 cycles/hash +Average 4.000 cycles/hash +Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset) +Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset) + +[[[ 'Hashmap' Speed Tests ]]] + +std::unordered_map +Init std HashMapTest: 714102.858 cycles/op (104334 inserts, 1% deletions) +Running std HashMapTest: SKIP ....... FAIL + +[[[ Avalanche Tests ]]] + +Testing 24-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +Testing 32-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 40-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 48-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 56-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 64-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 72-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 80-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 96-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 112-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 128-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 160-bit keys -> 128-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +*********FAIL********* + +[[[ Keyset 'Sparse' Tests ]]] + +Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys +Testing collisions (128-bit) - Expected 0.0, actual 50642 (13438475877058564290891195405565952.00x) (50642) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 50642 (728501237040047.00x) (50642) !!!!! +Testing collisions (high 32-bit) - Expected 0.3, actual 50642 (169618.08x) (50642) !!!!! +Testing collisions (high 19-25 bits) - Worst is 25 bits: 50642/38 (1325.80x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 50642 (728501237040047.00x) (50642) !!!!! +Testing collisions (low 32-bit) - Expected 0.3, actual 50642 (169618.08x) (50642) !!!!! +Testing collisions (low 19-25 bits) - Worst is 25 bits: 50642/38 (1325.80x) !!!!! +Testing distribution - Worst bias is the 13-bit window at bit 0 - 99.988% !!!!! + +Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys +Testing collisions (128-bit) - Expected 0.0, actual 1271625 (535192528181931570733851638497280.00x) (1271625) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 1271625 (29012845087642.99x) (1271625) !!!!! +Testing collisions (high 32-bit) - Expected 188.2, actual 1271625 (6755.75x) (1271437) !!!!! +Testing collisions (high 24-35 bits) - Worst is 35 bits: 1271625/23 (54041.30x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 1271625 (29012845087642.99x) (1271625) !!!!! +Testing collisions (low 32-bit) - Expected 188.2, actual 1271625 (6755.75x) (1271437) !!!!! +Testing collisions (low 24-35 bits) - Worst is 35 bits: 1271625/23 (54041.30x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys +Testing collisions (128-bit) - Expected 0.0, actual 4514872 (150738400358521030926552530944000.00x) (4514872) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 4514872 (8171545057284.91x) (4514872) !!!!! +Testing collisions (high 32-bit) - Expected 2372.2, actual 4514872 (1903.25x) (4512500) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4514872/37 (121766.18x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 4514872 (8171545057284.91x) (4514872) !!!!! +Testing collisions (low 32-bit) - Expected 2372.2, actual 4514872 (1903.25x) (4512500) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4514872/37 (121766.18x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys +Testing collisions (128-bit) - Expected 0.0, actual 4598478 (147997790974336713993551515484160.00x) (4598478) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 4598478 (8022976324871.57x) (4598478) !!!!! +Testing collisions (high 32-bit) - Expected 2460.8, actual 4598478 (1868.66x) (4596018) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4598478/38 (119552.33x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 4598478 (8022976324871.57x) (4598478) !!!!! +Testing collisions (low 32-bit) - Expected 2460.8, actual 4598478 (1868.66x) (4596018) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4598478/38 (119552.33x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys +Testing collisions (128-bit) - Expected 0.0, actual 14196868 (47937663849816247290920785936384.00x) (14196868) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 14196868 (2598705964492.53x) (14196868) !!!!! +Testing collisions (high 32-bit) - Expected 23437.8, actual 14196868 (605.73x) (14173431) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 14196868/22 (619580.45x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 14196868 (2598705964492.53x) (14196868) !!!!! +Testing collisions (low 32-bit) - Expected 23437.8, actual 14196868 (605.73x) (14173431) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 14196868/22 (619580.45x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys +Testing collisions (128-bit) - Expected 0.0, actual 4216422 (161408078326552363191619381362688.00x) (4216422) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 4216422 (8749949458917.93x) (4216422) !!!!! +Testing collisions (high 32-bit) - Expected 2069.0, actual 4216422 (2037.92x) (4214354) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4216422/32 (130385.07x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 4216422 (8749949458917.93x) (4216422) !!!!! +Testing collisions (low 32-bit) - Expected 2069.0, actual 4216422 (2037.92x) (4214354) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4216422/32 (130385.07x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys +Testing collisions (128-bit) - Expected 0.0, actual 8303632 (81959876338691375629906800017408.00x) (8303632) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 8303632 (4443053799152.62x) (8303632) !!!!! +Testing collisions (high 32-bit) - Expected 8021.7, actual 8303632 (1035.15x) (8295611) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8303632/31 (264827.31x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 8303632 (4443053799152.62x) (8303632) !!!!! +Testing collisions (low 32-bit) - Expected 8021.7, actual 8303632 (1035.15x) (8295611) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8303632/31 (264827.31x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys +Testing collisions (128-bit) - Expected 0.0, actual 15082602 (45122498672270090513609918513152.00x) (15082602) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 15082602 (2446095554422.48x) (15082602) !!!!! +Testing collisions (high 32-bit) - Expected 26451.8, actual 15082602 (570.19x) (15056151) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 15082602/25 (583195.29x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 15082602 (2446095554422.48x) (15082602) !!!!! +Testing collisions (low 32-bit) - Expected 26451.8, actual 15082602 (570.19x) (15056151) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 15082602/25 (583195.29x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys +Testing collisions (128-bit) - Expected 0.0, actual 3469496 (196156599599848884788480966656000.00x) (3469496) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 3469496 (10633670571676.27x) (3469496) !!!!! +Testing collisions (high 32-bit) - Expected 1401.0, actual 3469496 (2476.51x) (3468096) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 3469496/21 (158454.71x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 3469496 (10633670571676.27x) (3469496) !!!!! +Testing collisions (low 32-bit) - Expected 1401.0, actual 3469496 (2476.51x) (3468096) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 3469496/21 (158454.71x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys +Testing collisions (128-bit) - Expected 0.0, actual 26977160 (25227440865325929634919094419456.00x) (26977160) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 26977160 (1367582309621.80x) (26977160) !!!!! +Testing collisions (high 32-bit) - Expected 84546.1, actual 26977160 (319.08x) (26892614) !!!!! +Testing collisions (high 28-44 bits) - Worst is 44 bits: 26977160/20 (1304228.79x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 26977160 (1367582309621.80x) (26977160) !!!!! +Testing collisions (low 32-bit) - Expected 84546.1, actual 26977160 (319.08x) (26892614) !!!!! +Testing collisions (low 28-44 bits) - Worst is 44 bits: 26977160/20 (1304228.79x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys +Testing collisions (128-bit) - Expected 0.0, actual 2796416 (243370260530484882004000087474176.00x) (2796416) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 2796416 (13193128259275.75x) (2796416) !!!!! +Testing collisions (high 32-bit) - Expected 910.2, actual 2796416 (3072.43x) (2795506) !!!!! +Testing collisions (high 25-37 bits) - Worst is 37 bits: 2796416/28 (98297.13x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 2796416 (13193128259275.75x) (2796416) !!!!! +Testing collisions (low 32-bit) - Expected 910.2, actual 2796416 (3072.43x) (2795506) !!!!! +Testing collisions (low 25-37 bits) - Worst is 37 bits: 2796416/28 (98297.13x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +[[[ Keyset 'Permutation' Tests ]]] + +Combination Lowbits Tests: +Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys +Testing collisions (128-bit) - Expected 0.0, actual 2396743 (283953869850879746377987068526592.00x) (2396743) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 2396743 (15393170128899.50x) (2396743) !!!!! +Testing collisions (high 32-bit) - Expected 668.6, actual 2396743 (3584.67x) (2396075) !!!!! +Testing collisions (high 24-37 bits) - Worst is 37 bits: 2396743/20 (114688.72x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 2396743 (15393170128899.50x) (2396743) !!!!! +Testing collisions (low 32-bit) - Expected 668.6, actual 2396743 (3584.67x) (2396075) !!!!! +Testing collisions (low 24-37 bits) - Worst is 37 bits: 2396743/20 (114688.72x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +Combination Highbits Tests +Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys +Testing collisions (128-bit) - Expected 0.0, actual 2396743 (283953869850879746377987068526592.00x) (2396743) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 2396743 (15393170128899.50x) (2396743) !!!!! +Testing collisions (high 32-bit) - Expected 668.6, actual 2396743 (3584.67x) (2396075) !!!!! +Testing collisions (high 24-37 bits) - Worst is 37 bits: 2396743/20 (114688.72x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 2396743 (15393170128899.50x) (2396743) !!!!! +Testing collisions (low 32-bit) - Expected 668.6, actual 2396743 (3584.67x) (2396075) !!!!! +Testing collisions (low 24-37 bits) - Worst is 37 bits: 2396743/20 (114688.72x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +Combination Hi-Lo Tests: +Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys +Testing collisions (128-bit) - Expected 0.0, actual 12204239 (55764614088372316784572692955136.00x) (12204239) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 12204239 (3023005787121.45x) (12204239) !!!!! +Testing collisions (high 32-bit) - Expected 17322.9, actual 12204239 (704.52x) (12186917) !!!!! +Testing collisions (high 27-41 bits) - Worst is 41 bits: 12204239/33 (360371.04x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 12204239 (3023005787121.45x) (12204239) !!!!! +Testing collisions (low 32-bit) - Expected 17322.9, actual 12204239 (704.52x) (12186917) !!!!! +Testing collisions (low 27-41 bits) - Worst is 41 bits: 12204239/33 (360371.04x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +Combination 0x80000000 Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 0x00000001 Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 0x8000000000000000 Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 0x0000000000000001 Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 16-bytes [0-1] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 16-bytes [0-last] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 32-bytes [0-1] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 32-bytes [0-last] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 64-bytes [0-1] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 64-bytes [0-last] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 128-bytes [0-1] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +Combination 128-bytes [0-last] Tests: +Keyset 'Combination' - up to 17 blocks from a set of 2 - 262142 keys +Testing collisions (128-bit) - Expected 0.0, actual 262141 (2596168236459159260722979804282880.00x) (262141) !!!!! +Testing collisions (high 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (high 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (high 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing collisions (low 64-bit) - Expected 0.0, actual 262141 (140738562105344.06x) (262141) !!!!! +Testing collisions (low 32-bit) - Expected 8.0, actual 262141 (32768.92x) (262134) !!!!! +Testing collisions (low 21-30 bits) - Worst is 30 bits: 262141/31 (8192.73x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +[[[ Keyset 'Window' Tests ]]] + +Keyset 'Window' - 32-bit key, 25-bit window - 32 tests, 33554432 keys per test +Window at 0 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 1 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 2 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 3 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 4 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 5 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 6 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 7 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 8 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 9 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 10 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 11 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 12 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 13 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 14 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 15 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 16 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 17 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 18 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 19 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 20 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 21 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 22 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 23 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 24 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 25 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 26 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 27 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 28 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 29 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 30 - Testing collisions (128-bit) - Expected 0.0, actual 33554431 (20282409603651670423947251286016.00x) (33554431) !!!!! +Window at 31 - Testing collisions (128-bit) - Expected 0.0, \ No newline at end of file diff --git a/doc/rainbow.txt b/doc/rainbow.txt new file mode 100644 index 00000000..d285e686 --- /dev/null +++ b/doc/rainbow.txt @@ -0,0 +1,5742 @@ +------------------------------------------------------------------------------- +--- Testing rainbow "Rainbow 64-bit v1.0.6 (aka Newhash 128-bit)" GOOD + +[[[ Sanity Tests ]]] + +Verification value 0x00000000 ....... FAIL! (Expected 0x2972C52E) +Running sanity check 1 . 0: 0x01 != 0x02 FAIL !!!!! +Running AppendedZeroesTest . FAIL !!!!! + +[[[ Speed Tests ]]] + +Bulk speed test - 262144-byte keys +Alignment 7 - 4203.884 bytes/cycle - 12027408.69 MiB/sec @ 3 ghz +Alignment 6 - 4196.611 bytes/cycle - 12006600.03 MiB/sec @ 3 ghz +Alignment 5 - 4175.740 bytes/cycle - 11946888.55 MiB/sec @ 3 ghz +Alignment 4 - 4184.545 bytes/cycle - 11972078.46 MiB/sec @ 3 ghz +Alignment 3 - 4177.338 bytes/cycle - 11951460.65 MiB/sec @ 3 ghz +Alignment 2 - 4168.564 bytes/cycle - 11926357.33 MiB/sec @ 3 ghz +Alignment 1 - 4182.941 bytes/cycle - 11967490.58 MiB/sec @ 3 ghz +Alignment 0 - 4172.548 bytes/cycle - 11937754.84 MiB/sec @ 3 ghz +Average - 4182.771 bytes/cycle - 11967004.89 MiB/sec @ 3 ghz + +Small key speed test - 1-byte keys - 4.00 cycles/hash +Small key speed test - 2-byte keys - 4.00 cycles/hash +Small key speed test - 3-byte keys - 4.00 cycles/hash +Small key speed test - 4-byte keys - 4.00 cycles/hash +Small key speed test - 5-byte keys - 4.00 cycles/hash +Small key speed test - 6-byte keys - 4.00 cycles/hash +Small key speed test - 7-byte keys - 4.00 cycles/hash +Small key speed test - 8-byte keys - 4.00 cycles/hash +Small key speed test - 9-byte keys - 4.00 cycles/hash +Small key speed test - 10-byte keys - 4.00 cycles/hash +Small key speed test - 11-byte keys - 4.00 cycles/hash +Small key speed test - 12-byte keys - 4.00 cycles/hash +Small key speed test - 13-byte keys - 4.00 cycles/hash +Small key speed test - 14-byte keys - 4.00 cycles/hash +Small key speed test - 15-byte keys - 4.00 cycles/hash +Small key speed test - 16-byte keys - 4.00 cycles/hash +Small key speed test - 17-byte keys - 4.00 cycles/hash +Small key speed test - 18-byte keys - 4.00 cycles/hash +Small key speed test - 19-byte keys - 4.00 cycles/hash +Small key speed test - 20-byte keys - 4.00 cycles/hash +Small key speed test - 21-byte keys - 4.00 cycles/hash +Small key speed test - 22-byte keys - 4.00 cycles/hash +Small key speed test - 23-byte keys - 4.00 cycles/hash +Small key speed test - 24-byte keys - 4.00 cycles/hash +Small key speed test - 25-byte keys - 4.00 cycles/hash +Small key speed test - 26-byte keys - 4.00 cycles/hash +Small key speed test - 27-byte keys - 4.00 cycles/hash +Small key speed test - 28-byte keys - 4.00 cycles/hash +Small key speed test - 29-byte keys - 4.00 cycles/hash +Small key speed test - 30-byte keys - 4.00 cycles/hash +Small key speed test - 31-byte keys - 4.00 cycles/hash +Small key speed test - 32-byte keys - 4.00 cycles/hash +Average 4.000 cycles/hash +Average, weighted by key length freq. 4.000 cycles/hash (using 93.0% of top-7m Tranco DNS names dataset) +Average, weighted by key length freq. 4.000 cycles/hash (using 27.1% of startup-1M UMASH trace dataset) + +[[[ 'Hashmap' Speed Tests ]]] + +std::unordered_map +Init std HashMapTest: 719702.520 cycles/op (104334 inserts, 1% deletions) +Running std HashMapTest: SKIP ....... FAIL + +[[[ Avalanche Tests ]]] + +Testing 24-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXX] +Testing 32-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 40-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 48-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 56-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 64-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 72-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 80-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 96-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 112-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 128-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 160-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 512-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +Testing 1024-bit keys -> 64-bit hashes, 300000 reps.......... worst bias is 100.000000% !!!!! +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +[XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] +*********FAIL********* + +[[[ Keyset 'Sparse' Tests ]]] + +Keyset 'Sparse' - 16-bit keys with up to 9 bits set - 50643 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 50628 (728299842598307.75x) (50628) !!!!! +Testing collisions (high 32-bit) - Expected 0.3, actual 50640 (169611.38x) (50640) !!!!! +Testing collisions (high 19-25 bits) - Worst is 25 bits: 50640/38 (1325.75x) !!!!! +Testing collisions (low 32-bit) - Expected 0.3, actual 50628 (169571.19x) (50628) !!!!! +Testing collisions (low 19-25 bits) - Worst is 25 bits: 50628/38 (1325.44x) !!!!! +Testing distribution - Worst bias is the 13-bit window at bit 47 - 99.988% !!!!! + +Keyset 'Sparse' - 24-bit keys with up to 8 bits set - 1271626 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 1271614 (29012594116408.57x) (1271614) !!!!! +Testing collisions (high 32-bit) - Expected 188.2, actual 1271621 (6755.72x) (1271433) !!!!! +Testing collisions (high 24-35 bits) - Worst is 35 bits: 1271621/23 (54041.13x) !!!!! +Testing collisions (low 32-bit) - Expected 188.2, actual 1271614 (6755.69x) (1271426) !!!!! +Testing collisions (low 24-35 bits) - Worst is 35 bits: 1271614/23 (54040.83x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 47 - 99.999% !!!!! + +Keyset 'Sparse' - 32-bit keys with up to 7 bits set - 4514873 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 4514865 (8171532387863.63x) (4514865) !!!!! +Testing collisions (high 32-bit) - Expected 2372.2, actual 4514869 (1903.25x) (4512497) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4514869/37 (121766.10x) !!!!! +Testing collisions (low 32-bit) - Expected 2372.2, actual 4514865 (1903.25x) (4512493) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4514865/37 (121765.99x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 40-bit keys with up to 6 bits set - 4598479 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 4598474 (8022969346061.34x) (4598474) !!!!! +Testing collisions (high 32-bit) - Expected 2460.8, actual 4598476 (1868.66x) (4596016) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4598476/38 (119552.28x) !!!!! +Testing collisions (low 32-bit) - Expected 2460.8, actual 4598474 (1868.66x) (4596014) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4598474/38 (119552.23x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 48-bit keys with up to 6 bits set - 14196869 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 14196863 (2598705049253.35x) (14196863) !!!!! +Testing collisions (high 32-bit) - Expected 23437.8, actual 14196866 (605.73x) (14173429) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 14196864/22 (619580.28x) !!!!! +Testing collisions (low 32-bit) - Expected 23437.8, actual 14196863 (605.73x) (14173426) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 14196863/22 (619580.23x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 56-bit keys with up to 5 bits set - 4216423 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 4216416 (8749937007674.49x) (4216416) !!!!! +Testing collisions (high 32-bit) - Expected 2069.0, actual 4216419 (2037.92x) (4214351) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 4216419/32 (130384.98x) !!!!! +Testing collisions (low 32-bit) - Expected 2069.0, actual 4216416 (2037.92x) (4214348) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 4216416/32 (130384.89x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 64-bit keys with up to 5 bits set - 8303633 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8303628 (4443051658858.45x) (8303628) !!!!! +Testing collisions (high 32-bit) - Expected 8021.7, actual 8303630 (1035.15x) (8295609) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8303630/31 (264827.25x) !!!!! +Testing collisions (low 32-bit) - Expected 8021.7, actual 8303628 (1035.15x) (8295607) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8303628/31 (264827.18x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 72-bit keys with up to 5 bits set - 15082603 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 15082598 (2446094905702.70x) (15082598) !!!!! +Testing collisions (high 32-bit) - Expected 26451.8, actual 15082600 (570.19x) (15056149) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 15082599/25 (583195.18x) !!!!! +Testing collisions (low 32-bit) - Expected 26451.8, actual 15082598 (570.19x) (15056147) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 15082598/25 (583195.14x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 96-bit keys with up to 4 bits set - 3469497 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 3469493 (10633661376965.65x) (3469493) !!!!! +Testing collisions (high 32-bit) - Expected 1401.0, actual 3469494 (2476.51x) (3468094) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 3469494/21 (158454.61x) !!!!! +Testing collisions (low 32-bit) - Expected 1401.0, actual 3469493 (2476.51x) (3468093) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 3469493/21 (158454.57x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 160-bit keys with up to 4 bits set - 26977161 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 26977157 (1367582157539.56x) (26977157) !!!!! +Testing collisions (high 32-bit) - Expected 84546.1, actual 26977158 (319.08x) (26892612) !!!!! +Testing collisions (high 28-44 bits) - Worst is 44 bits: 26977157/20 (1304228.65x) !!!!! +Testing collisions (low 32-bit) - Expected 84546.1, actual 26977157 (319.08x) (26892611) !!!!! +Testing collisions (low 28-44 bits) - Worst is 44 bits: 26977157/20 (1304228.65x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 256-bit keys with up to 3 bits set - 2796417 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 2796413 (13193114105664.56x) (2796413) !!!!! +Testing collisions (high 32-bit) - Expected 910.2, actual 2796414 (3072.43x) (2795504) !!!!! +Testing collisions (high 25-37 bits) - Worst is 37 bits: 2796414/28 (98297.06x) !!!!! +Testing collisions (low 32-bit) - Expected 910.2, actual 2796413 (3072.43x) (2795503) !!!!! +Testing collisions (low 25-37 bits) - Worst is 37 bits: 2796413/28 (98297.03x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 512-bit keys with up to 3 bits set - 22370049 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 22370045 (1649235690083.25x) (22370045) !!!!! +Testing collisions (high 32-bit) - Expected 58155.4, actual 22370046 (384.66x) (22311891) !!!!! +Testing collisions (high 28-43 bits) - Worst is 43 bits: 22370045/28 (786417.53x) !!!!! +Testing collisions (low 32-bit) - Expected 58155.4, actual 22370045 (384.66x) (22311890) !!!!! +Testing collisions (low 28-43 bits) - Worst is 43 bits: 22370045/28 (786417.53x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +Keyset 'Sparse' - 1024-bit keys with up to 2 bits set - 524801 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 524797 (70299555921470.94x) (524797) !!!!! +Testing collisions (high 32-bit) - Expected 32.1, actual 524798 (16368.59x) (524766) !!!!! +Testing collisions (high 22-32 bits) - Worst is 32 bits: 524798/32 (16368.59x) !!!!! +Testing collisions (low 32-bit) - Expected 32.1, actual 524797 (16368.56x) (524765) !!!!! +Testing collisions (low 22-32 bits) - Worst is 32 bits: 524797/32 (16368.56x) !!!!! +Testing distribution - Worst bias is the 16-bit window at bit 47 - 99.998% !!!!! + +Keyset 'Sparse' - 2048-bit keys with up to 2 bits set - 2098177 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 2098173 (17583566780408.99x) (2098173) !!!!! +Testing collisions (high 32-bit) - Expected 512.4, actual 2098174 (4094.66x) (2097662) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2098174/32 (65504.59x) !!!!! +Testing collisions (low 32-bit) - Expected 512.4, actual 2098173 (4094.66x) (2097661) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2098173/32 (65504.56x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +[[[ Keyset 'Permutation' Tests ]]] + +Combination Lowbits Tests: +Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 2396734 (15393112326068.26x) (2396734) !!!!! +Testing collisions (high 32-bit) - Expected 668.6, actual 2396741 (3584.67x) (2396073) !!!!! +Testing collisions (high 24-37 bits) - Worst is 37 bits: 2396741/20 (114688.63x) !!!!! +Testing collisions (low 32-bit) - Expected 668.6, actual 2396734 (3584.65x) (2396066) !!!!! +Testing collisions (low 24-37 bits) - Worst is 37 bits: 2396734/20 (114688.29x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination Highbits Tests +Keyset 'Combination' - up to 7 blocks from a set of 8 - 2396744 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 2396734 (15393112326068.26x) (2396734) !!!!! +Testing collisions (high 32-bit) - Expected 668.6, actual 2396742 (3584.67x) (2396074) !!!!! +Testing collisions (high 24-37 bits) - Worst is 37 bits: 2396742/20 (114688.67x) !!!!! +Testing collisions (low 32-bit) - Expected 668.6, actual 2396734 (3584.65x) (2396066) !!!!! +Testing collisions (low 24-37 bits) - Worst is 37 bits: 2396734/20 (114688.29x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination Hi-Lo Tests: +Keyset 'Combination' - up to 6 blocks from a set of 15 - 12204240 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 12204236 (3023005044017.57x) (12204236) !!!!! +Testing collisions (high 32-bit) - Expected 17322.9, actual 12204238 (704.52x) (12186916) !!!!! +Testing collisions (high 27-41 bits) - Worst is 41 bits: 12204238/33 (360371.01x) !!!!! +Testing collisions (low 32-bit) - Expected 17322.9, actual 12204236 (704.52x) (12186914) !!!!! +Testing collisions (low 27-41 bits) - Worst is 41 bits: 12204236/33 (360370.95x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 0x80000000 Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388586 (4398037598202.31x) (8388586) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388602 (1024.67x) (8380416) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388596/31 (262144.45x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388587 (1024.66x) (8380401) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388586/31 (262144.14x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 0x00000001 Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388587 (4398038122490.62x) (8388587) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388602 (1024.67x) (8380416) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388597/31 (262144.48x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388588 (1024.66x) (8380402) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388587/31 (262144.17x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 0x8000000000000000 Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388574 (4398031306742.56x) (8388574) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388598 (1024.67x) (8380412) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388591/31 (262144.29x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388575 (1024.66x) (8380389) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388574/31 (262143.76x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 0x0000000000000001 Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388573 (4398030782454.25x) (8388573) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388573 (1024.66x) (8380387) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388573/31 (262143.73x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 16-bytes [0-1] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388577 (4398032879607.50x) (8388577) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388599 (1024.67x) (8380413) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388578 (1024.66x) (8380392) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388577/31 (262143.85x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 16-bytes [0-last] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388577 (4398032879607.50x) (8388577) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388599 (1024.67x) (8380413) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388578 (1024.66x) (8380392) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388577/31 (262143.85x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 32-bytes [0-1] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388572 (4398030258165.94x) (8388572) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388572 (1024.66x) (8380386) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388572/31 (262143.70x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 32-bytes [0-last] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388574 (4398031306742.56x) (8388574) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388595/31 (262144.42x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388574 (1024.66x) (8380388) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388574/31 (262143.76x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 64-bytes [0-1] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388574 (4398031306742.56x) (8388574) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388574 (1024.66x) (8380388) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388574/31 (262143.76x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 64-bytes [0-last] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388573 (4398030782454.25x) (8388573) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388573 (1024.66x) (8380387) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388573/31 (262143.73x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 128-bytes [0-1] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388574 (4398031306742.56x) (8388574) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388574 (1024.66x) (8380388) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388574/31 (262143.76x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +Combination 128-bytes [0-last] Tests: +Keyset 'Combination' - up to 22 blocks from a set of 2 - 8388606 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 8388573 (4398030782454.25x) (8388573) !!!!! +Testing collisions (high 32-bit) - Expected 8186.7, actual 8388600 (1024.67x) (8380414) !!!!! +Testing collisions (high 26-40 bits) - Worst is 40 bits: 8388594/31 (262144.39x) !!!!! +Testing collisions (low 32-bit) - Expected 8186.7, actual 8388573 (1024.66x) (8380387) !!!!! +Testing collisions (low 26-40 bits) - Worst is 40 bits: 8388573/31 (262143.73x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 47 - 100.000% !!!!! + +*********FAIL********* + +[[[ Keyset 'Window' Tests ]]] + +Keyset 'Window' - 32-bit key, 25-bit window - 32 tests, 33554432 keys per test +Window at 0 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 1 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 2 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 3 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 4 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 5 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 6 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 7 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 8 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 9 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 10 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 11 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 12 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 13 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 14 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 15 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 16 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 17 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 18 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 19 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 20 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 21 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 22 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 23 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 24 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 25 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 26 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 27 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 28 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 29 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 30 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 31 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Window at 32 - Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +*********FAIL********* + +[[[ Keyset 'Cyclic' Tests ]]] + +Keyset 'Cyclic' - 8 cycles of 8 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Cyclic' - 8 cycles of 9 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Cyclic' - 8 cycles of 10 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Cyclic' - 8 cycles of 11 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Cyclic' - 8 cycles of 12 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +Keyset 'Cyclic' - 8 cycles of 16 bytes - 1000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 999999 (36893488147419.10x) (999999) !!!!! +Testing collisions (high 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (high 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing collisions (low 32-bit) - Expected 116.4, actual 999999 (8590.60x) (999883) !!!!! +Testing collisions (low 23-34 bits) - Worst is 34 bits: 999999/29 (34360.41x) !!!!! +Testing distribution - Worst bias is the 17-bit window at bit 0 - 99.999% !!!!! + +*********FAIL********* + +[[[ Keyset 'TwoBytes' Tests ]]] + +Keyset 'TwoBytes' - up-to-4-byte keys, 652545 total keys +Testing collisions ( 64-bit) - Expected 0.0, actual 652543 (56537758483303.58x) (652543) !!!!! +Testing collisions (high 32-bit) - Expected 49.6, actual 652543 (13164.39x) (652494) !!!!! +Testing collisions (high 23-33 bits) - Worst is 33 bits: 652543/24 (26328.11x) !!!!! +Testing collisions (low 32-bit) - Expected 49.6, actual 652543 (13164.39x) (652494) !!!!! +Testing collisions (low 23-33 bits) - Worst is 33 bits: 652543/24 (26328.11x) !!!!! +Testing distribution - Worst bias is the 16-bit window at bit 0 - 99.998% !!!!! + +Keyset 'TwoBytes' - up-to-8-byte keys, 5471025 total keys +Testing collisions ( 64-bit) - Expected 0.0, actual 5471023 (6743431332151.71x) (5471023) !!!!! +Testing collisions (high 32-bit) - Expected 3483.1, actual 5471023 (1570.74x) (5467540) !!!!! +Testing collisions (high 26-39 bits) - Worst is 39 bits: 5471023/27 (200970.58x) !!!!! +Testing collisions (low 32-bit) - Expected 3483.1, actual 5471023 (1570.74x) (5467540) !!!!! +Testing collisions (low 26-39 bits) - Worst is 39 bits: 5471023/27 (200970.58x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'TwoBytes' - up-to-12-byte keys, 18616785 total keys +Testing collisions ( 64-bit) - Expected 0.0, actual 18616783 (1981732407915.03x) (18616783) !!!!! +Testing collisions (high 32-bit) - Expected 40289.5, actual 18616783 (462.07x) (18576494) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 18616783/39 (472482.49x) !!!!! +Testing collisions (low 32-bit) - Expected 40289.5, actual 18616783 (462.07x) (18576494) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 18616783/39 (472482.49x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'TwoBytes' - up-to-16-byte keys, 44251425 total keys +Testing collisions ( 64-bit) - Expected 0.0, actual 44251423 (833724276985.31x) (44251423) !!!!! +Testing collisions (high 32-bit) - Expected 227182.3, actual 44251423 (194.78x) (44024241) !!!!! +Testing collisions (high 29-45 bits) - Worst is 45 bits: 44251423/27 (1590203.53x) !!!!! +Testing collisions (low 32-bit) - Expected 227182.3, actual 44251423 (194.78x) (44024241) !!!!! +Testing collisions (low 29-45 bits) - Worst is 45 bits: 44251423/27 (1590203.53x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'TwoBytes' - up-to-20-byte keys, 86536545 total keys +Testing collisions ( 64-bit) - Expected 0.0, actual 86536543 (426334188880.37x) (86536543) !!!!! +Testing collisions (high 32-bit) - Expected 865959.1, actual 86536543 (99.93x) (85670584) !!!!! +Testing collisions (high 30-47 bits) - Worst is 47 bits: 86536543/26 (3252672.40x) !!!!! +Testing collisions (low 32-bit) - Expected 865959.1, actual 86536543 (99.93x) (85670584) !!!!! +Testing collisions (low 30-47 bits) - Worst is 47 bits: 86536543/26 (3252672.40x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +[[[ Keyset 'Text' Tests ]]] + +Keyset 'Text' - keys of form "FooXXXXBar" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 14776335 (2496795426648.33x) (14776335) !!!!! +Testing collisions (high 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing collisions (low 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Text' - keys of form "FooBarXXXX" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 14776335 (2496795426648.33x) (14776335) !!!!! +Testing collisions (high 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing collisions (low 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Text' - keys of form "XXXXFooBar" - 14776336 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 14776335 (2496795426648.33x) (14776335) !!!!! +Testing collisions (high 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing collisions (low 32-bit) - Expected 25389.0, actual 14776335 (582.00x) (14750946) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 14776335/24 (595283.08x) !!!!! +Testing distribution - Worst bias is the 20-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Words' - 4000000 random keys of len 6-16 from alnum charset +Testing collisions ( 64-bit) - Expected 0.0, actual 3999999 (9223372036854.78x) (3999999) !!!!! +Testing collisions (high 32-bit) - Expected 1862.1, actual 3999999 (2148.15x) (3998137) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 3999999/29 (137439.62x) !!!!! +Testing collisions (low 32-bit) - Expected 1862.1, actual 3999999 (2148.15x) (3998137) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 3999999/29 (137439.62x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Words' - 4000000 random keys of len 6-16 from password charset +Testing collisions ( 64-bit) - Expected 0.0, actual 3999999 (9223372036854.78x) (3999999) !!!!! +Testing collisions (high 32-bit) - Expected 1862.1, actual 3999999 (2148.15x) (3998137) !!!!! +Testing collisions (high 25-38 bits) - Worst is 38 bits: 3999999/29 (137439.62x) !!!!! +Testing collisions (low 32-bit) - Expected 1862.1, actual 3999999 (2148.15x) (3998137) !!!!! +Testing collisions (low 25-38 bits) - Worst is 38 bits: 3999999/29 (137439.62x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +Keyset 'Words' - 104334 dict words +Testing collisions ( 64-bit) - Expected 0.0, actual 104333 (353609447997959.50x) (104333) !!!!! +Testing collisions (high 32-bit) - Expected 1.3, actual 104333 (82331.78x) (104332) !!!!! +Testing collisions (high 20-28 bits) - Worst is 28 bits: 104333/20 (5146.36x) !!!!! +Testing collisions (low 32-bit) - Expected 1.3, actual 104333 (82331.78x) (104332) !!!!! +Testing collisions (low 20-28 bits) - Worst is 28 bits: 104333/20 (5146.36x) !!!!! +Testing distribution - Worst bias is the 14-bit window at bit 0 - 99.994% !!!!! + +*********FAIL********* + +[[[ Keyset 'Zeroes' Tests ]]] + +Keyset 'Zeroes' - 204800 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 204799 (180143985094819.84x) (204799) !!!!! +Testing collisions (high 32-bit) - Expected 4.9, actual 204799 (41943.71x) (204795) !!!!! +Testing collisions (high 21-29 bits) - Worst is 29 bits: 204799/39 (5243.55x) !!!!! +Testing collisions (low 32-bit) - Expected 4.9, actual 204799 (41943.71x) (204795) !!!!! +Testing collisions (low 21-29 bits) - Worst is 29 bits: 204799/39 (5243.55x) !!!!! +Testing distribution - Worst bias is the 15-bit window at bit 0 - 99.997% !!!!! + +*********FAIL********* + +[[[ Keyset 'Seed' Tests ]]] + +Keyset 'Seed' - 5000000 keys +Testing collisions ( 64-bit) - Expected 0.0, actual 4999999 (7378697629483.82x) (4999999) !!!!! +Testing collisions (high 32-bit) - Expected 2909.3, actual 4999999 (1718.65x) (4997090) !!!!! +Testing collisions (high 26-39 bits) - Worst is 39 bits: 4999999/22 (219902.99x) !!!!! +Testing collisions (low 32-bit) - Expected 2909.3, actual 4999999 (1718.65x) (4997090) !!!!! +Testing collisions (low 26-39 bits) - Worst is 39 bits: 4999999/22 (219902.99x) !!!!! +Testing distribution - Worst bias is the 19-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +[[[ Keyset 'PerlinNoise' Tests ]]] + +Testing 16777216 coordinates (L2) : +Testing collisions ( 64-bit) - Expected 0.0, actual 16777215 (2199023255552.00x) (16777215) !!!!! +Testing collisions (high 32-bit) - Expected 32725.4, actual 16777215 (512.67x) (16744490) !!!!! +Testing collisions (high 27-42 bits) - Worst is 42 bits: 16777215/31 (524288.67x) !!!!! +Testing collisions (low 32-bit) - Expected 32725.4, actual 16777215 (512.67x) (16744490) !!!!! +Testing collisions (low 27-42 bits) - Worst is 42 bits: 16777215/31 (524288.67x) !!!!! + +Testing AV variant, 128 count with 4 spacing, 4-12: +Testing collisions ( 64-bit) - Expected 0.0, actual 3096260 (11911595565966.08x) (3096260) +Testing collisions (high 32-bit) - Expected 1116.2, actual 3096767 (2774.51x) (3095651) !!!!! +Testing collisions (high 25-37 bits) - Worst is 37 bits: 3096766/34 (88763.47x) !!!!! +Testing collisions (low 32-bit) - Expected 1116.2, actual 3096260 (2774.05x) (3095144) !!!!! +Testing collisions (low 25-37 bits) - Worst is 37 bits: 3096260/34 (88748.97x) !!!!! + +*********FAIL********* + +[[[ Diff 'Differential' Tests ]]] + +Testing 8303632 up-to-5-bit differentials in 64-bit keys -> 64 bit hashes. +1000 reps, 8303632000 total tests, expecting 0.00 random collisions.......... +0 total collisions, of which 0 single collisions were ignored + +Testing 11017632 up-to-4-bit differentials in 128-bit keys -> 64 bit hashes. +1000 reps, 11017632000 total tests, expecting 0.00 random collisions.......... +0 total collisions, of which 0 single collisions were ignored + +Testing 2796416 up-to-3-bit differentials in 256-bit keys -> 64 bit hashes. +1000 reps, 2796416000 total tests, expecting 0.00 random collisions.......... +0 total collisions, of which 0 single collisions were ignored + + +[[[ DiffDist 'Differential Distribution' Tests ]]] + +Testing bit 0 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 1 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 2 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 3 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 4 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 5 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 6 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 7 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 8 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 9 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 10 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 11 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 12 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 13 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 14 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 15 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 16 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 17 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 18 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 19 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 20 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 21 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 22 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 23 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 24 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 25 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 26 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 27 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 28 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 29 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 30 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 31 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 32 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 33 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 34 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 35 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 36 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 37 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 38 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 39 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 40 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 41 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 42 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 43 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 44 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 45 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 46 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 47 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 48 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 49 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 50 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 51 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 52 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 53 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 54 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 55 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 56 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 57 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 58 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 59 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 60 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 61 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 62 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +Testing bit 63 +Testing collisions ( 64-bit) - Expected 0.0, actual 2097151 (17592186044416.00x) (2097151) !!!!! +Testing collisions (high 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (high 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing collisions (low 32-bit) - Expected 511.9, actual 2097151 (4096.67x) (2096640) !!!!! +Testing collisions (low 24-36 bits) - Worst is 36 bits: 2097151/31 (65536.67x) !!!!! +Testing distribution - Worst bias is the 18-bit window at bit 0 - 100.000% !!!!! + +*********FAIL********* + +[[[ MomentChi2 Tests ]]] + +Analyze hashes produced from a serie of linearly increasing numbers of 32-bit, using a step of 2 ... +Target values to approximate : 38918200.000000 - 273633.333333 +8 threads starting... done +Popcount 1 stats : 0.000000 - 0.000000 +Popcount 0 stats : 1073741824.000000 - 0.000000 +MomentChi2 for bits 1 : 5.53524e+09 +MomentChi2 for bits 0 : 3.91348e+12 + +Derivative stats (transition from 2 consecutive values) : +Popcount 1 stats : 0.000000 - 0.000000 +Popcount 0 stats : 1073741824.000000 - 0.000000 +MomentChi2 for deriv b1 : 5.53524e+09 +MomentChi2 for deriv b0 : 3.91348e+12 + + FAIL !!!! + + +*********FAIL********* + +[[[ Prng Tests ]]] + +Generating 33554432 random numbers : +Testing collisions ( 64-bit) - Expected 0.0, actual 33554431 (1099511627776.00x) (33554431) !!!!! +Testing collisions (high 32-bit) - Expected 130731.3, actual 33554431 (256.67x) (33423700) !!!!! +Testing collisions (high 28-44 bits) - Worst is 44 bits: 33554431/31 (1048576.67x) !!!!! +Testing collisions (low 32-bit) - Expected 130731.3, actual 33554431 (256.67x) (33423700) !!!!! +Testing collisions (low 28-44 bits) - Worst is 44 bits: 33554431/31 (1048576.67x) !!!!! + +*********FAIL********* + +[[[ BadSeeds Tests ]]] + +Testing 0 internal secrets: +0x0 !!!!!Bad seed 0x00000000 for len 1 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 2 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 4 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 8 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 12 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 16 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 32 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 64 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 128 confirmed => hashes: 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 16481586925581806080 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + +*********FAIL********* + + +Input vcode 0x00000001, Output vcode 0x00000001, Result vcode 0x00000001 +Verification value is 0x00000001 - Testing took 386.415618 seconds +------------------------------------------------------------------------------- +[[[ BadSeeds Tests ]]] + +Testing 0 internal secrets: +0x0 !!!!!Bad seed 0x00000000 for len 1 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 2 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 4 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 8 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 12 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 16 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 32 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 64 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! + !!!!!Bad seed 0x00000000 for len 128 confirmed => hashes: 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 14880556306748649728 !!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 5 (6148914691236516864.00x) (5) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 5 (1431655765.33x) (5) !!!!! +Testing the first 0xffffffff seeds ... +8 threads starting... +at 0 at 20000000 +Broken seed 0x00000000 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000000 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x00000000 +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Bad seed 0x20000000 +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, at 40000000 actual 3 (2147483648.00x) +Broken seed 0x40000000 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (2147483648.00x) (3) !!!!! + (3) !!!!! +at 60000000 +Broken seed 0x00000001 => 0 with key[16] of all 0 bytes +Bad seed 0x40000000 + !!!!!Bad seed 0x00000001 + +Broken seed 0x60000000 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions ( 64-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)actual 3 (9223372036854775808.00x) !!!!! +Bad seed 0x60000000 + (3) +Broken seed 0x20000001 => 0 with key[16] of all 0 bytes + (3) !!!!! +at 80000000 +Broken seed 0x80000000 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000000 + + !!!!!Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) (3) !!!!! + !!!!! + (3) !!!!!at a0000000 +Broken seed 0xa0000000 => 0 with key[16] of all 0 bytes + + +Broken seed 0x00000002 => 0 with key[16] of all 0 bytes + !!!!! !!!!!at e0000000 Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0xe0000000 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, at c0000000 +Broken seed 0xc0000000 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0xc0000000 +actual 3 (2147483648.00x) (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x)Bad seed 0xa0000000 + +Broken seed 0x40000001 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000000 +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) (3) !!!!! + !!!!!Bad seed 0x00000002 + (3)Bad seed 0x20000001 +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)actual 3 (9223372036854775808.00x)Testing collisions (low 32-bit) - Expected 0.0, !!!!! !!!!! (3) + !!!!! + + (3)actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, (3) !!!!! +actual 3 (9223372036854775808.00x) !!!!!Bad seed 0x40000001 +Testing collisions ( 64-bit) - Expected 0.0, + (3) !!!!! + !!!!! + +Broken seed 0x80000001 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! (3) !!!!! + +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x60000001 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3) !!!!!Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0x60000001 + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) (3) + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) !!!!! + (3) !!!!! + !!!!! + +Broken seed 0x20000002 => 0 with key[16] of all 0 bytes + +Broken seed 0xc0000001 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)Bad seed 0xc0000001 + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0xa0000001 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0x80000001 +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) !!!!! + (3) (3) !!!!! + !!!!!Testing collisions (high 32-bit) - Expected 0.0, +actual 3 (2147483648.00x) (3) !!!!! + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x40000002 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) !!!!!actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0x20000002 +actual 3 (2147483648.00x) +Broken seed 0x60000002 => 0 with key[16] of all 0 bytes +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0x40000002 + (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x) (3) +Broken seed 0xc0000002 => 0 with key[16] of all 0 bytes + !!!!! +actual 3 (9223372036854775808.00x) !!!!!actual 3 (9223372036854775808.00x) (3) (3) !!!!! + (3) !!!!! + +Broken seed 0xe0000001 => 0 with key[16] of all 0 bytes + !!!!! !!!!! + !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0xa0000001 +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x00000003 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x60000002 +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x) !!!!!actual 3 (9223372036854775808.00x) (3) !!!!! + (3) !!!!! + +Broken seed 0x80000002 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000002 +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0xe0000001 +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!!actual 3 (9223372036854775808.00x)Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0xc0000002 +actual 3 (2147483648.00x) + (3) !!!!! + (3)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! (3) + !!!!! +actual 3 (9223372036854775808.00x) (3) !!!!! + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3) +Broken seed 0x40000003 => 0 with key[16] of all 0 bytes + !!!!! + !!!!!Bad seed 0x00000003 +actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) (3) !!!!! + !!!!!Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0x40000003 +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x) !!!!! +actual 3 (2147483648.00x) +Broken seed 0xa0000002 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000003 => 0 with key[16] of all 0 bytes + + !!!!!Bad seed 0x80000003 + (3) (3)Bad seed 0xa0000002 + !!!!!Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, +actual 3 (9223372036854775808.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! +Testing collisions (high 32-bit) - Expected 0.0, !!!!! +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3)actual 3 (2147483648.00x) +Broken seed 0x60000003 => 0 with key[16] of all 0 bytes + !!!!! (3)Bad seed 0x60000003 + +Broken seed 0x20000003 => 0 with key[16] of all 0 bytes + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) !!!!!actual 3 (2147483648.00x) + !!!!! + !!!!!Testing collisions (high 32-bit) - Expected 0.0, (3)Bad seed 0x20000003 + +Broken seed 0xc0000003 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) !!!!! !!!!! + (3) (3)Bad seed 0xc0000003 +Testing collisions (low 32-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! !!!!! +actual 3 (2147483648.00x) +Testing collisions (low 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) (3) (3) !!!!! + !!!!! + +Broken seed 0xa0000003 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x60000004 => 0 with key[16] of all 0 bytes + !!!!! + (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!!Bad seed 0x60000004 +Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0x40000004 => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, !!!!!Bad seed 0x40000004 +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0xa0000003 +actual 3 (9223372036854775808.00x)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) (3)Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x) !!!!! + (3)actual 3 (9223372036854775808.00x) !!!!! + (3) !!!!! (3) !!!!! + !!!!! + +Broken seed 0x20000004 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000004 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xe0000002 => 0 with key[16] of all 0 bytes + !!!!! + !!!!! + +Broken seed 0x80000004 => 0 with key[16] of all 0 bytes + (3) !!!!! + !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xc0000004 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000004 +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!!actual 3 (2147483648.00x) +Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! + (3) !!!!! +actual 3 (2147483648.00x) (3) +Broken seed 0xc0000005 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000005 +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0x00000004 +actual 3 (9223372036854775808.00x) (3) +Broken seed 0x60000005 => 0 with key[16] of all 0 bytes +Testing collisions ( 64-bit) - Expected 0.0, !!!!!actual 3 (9223372036854775808.00x) (3) !!!!! !!!!! +Bad seed 0xe0000002 + +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x80000004 + +Broken seed 0x40000005 => 0 with key[16] of all 0 bytes +Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0xc0000006 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (9223372036854775808.00x) (3) (3)Bad seed 0xc0000006 +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3)Bad seed 0x60000005 + !!!!! !!!!! + +Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0x20000004 +actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x) !!!!! (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, +actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, (3) +Broken seed 0xa0000004 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, !!!!! + (3)actual 3 (2147483648.00x) (3)Bad seed 0x40000005 + !!!!! + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3)actual 3 (2147483648.00x) (3) (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) !!!!! + !!!!! !!!!! +Broken seed 0xc0000007 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000004 + (3) (3) !!!!! + !!!!! + +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) +Broken seed 0x80000005 => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) (3)actual 3 (9223372036854775808.00x) !!!!! + !!!!! !!!!! + (3)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! (3) !!!!! + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) (3) +Broken seed 0x00000005 => 0 with key[16] of all 0 bytes + !!!!! + !!!!!actual 3 (2147483648.00x) !!!!! + +Broken seed 0x40000006 => 0 with key[16] of all 0 bytes + !!!!! !!!!! + +Broken seed 0x20000005 => 0 with key[16] of all 0 bytes + (3) !!!!! + !!!!!Bad seed 0x00000005 + +Broken seed 0xe0000003 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000003 +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0x20000005 +Bad seed 0x40000006 +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x)Bad seed 0xc0000007 +actual 3 (9223372036854775808.00x) (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3)Testing collisions (low 32-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x) (3) !!!!! !!!!! + !!!!!actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, + +Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) (3) (3)actual 3 (2147483648.00x)Bad seed 0x80000005 + !!!!! + (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!!actual 3 (9223372036854775808.00x) !!!!! + !!!!! + (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3) !!!!! !!!!! +actual 3 (2147483648.00x) +actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) (3) +Broken seed 0x00000006 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000006 + (3) !!!!! + +Broken seed 0x40000007 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) !!!!! + +Broken seed 0x60000006 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000006 +Testing collisions ( 64-bit) - Expected 0.0, (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3) (3) !!!!! +actual 3 (2147483648.00x) !!!!! + (3) +Broken seed 0x20000006 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (9223372036854775808.00x) !!!!! + (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0xe0000004 => 0 with key[16] of all 0 bytes + !!!!! +Bad seed 0x40000007 +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, !!!!!actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3)actual 3 (9223372036854775808.00x) (3) !!!!!Bad seed 0x20000006 + !!!!! + !!!!! + (3) +Broken seed 0xc0000008 => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x) + +Broken seed 0xa0000005 => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0xe0000004 +Testing collisions (high 32-bit) - Expected 0.0, +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x) (3) !!!!!actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, !!!!! + (3)Bad seed 0xc0000008 +Testing collisions ( 64-bit) - Expected 0.0, (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) !!!!! + (3)actual 3 (9223372036854775808.00x) (3) !!!!! + !!!!! (3)actual 3 (2147483648.00x) (3) +Broken seed 0x80000006 => 0 with key[16] of all 0 bytes + !!!!! + !!!!! (3) !!!!! + +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) +Broken seed 0x60000007 => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x00000007 => 0 with key[16] of all 0 bytes + !!!!! +actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!!Bad seed 0x80000006 + !!!!! + !!!!!Testing collisions ( 64-bit) - Expected 0.0, (3) +Broken seed 0x40000008 => 0 with key[16] of all 0 bytes +Bad seed 0x00000007 +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3)actual 3 (2147483648.00x) !!!!!Bad seed 0xa0000005 +Testing collisions ( 64-bit) - Expected 0.0, !!!!! (3) !!!!! +Bad seed 0x60000007 +actual 3 (9223372036854775808.00x)Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x) !!!!! + + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xe0000005 => 0 with key[16] of all 0 bytes + (3) +Broken seed 0x20000007 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions ( 64-bit) - Expected 0.0, +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)Bad seed 0x40000008 +actual 3 (2147483648.00x) (3) (3) !!!!! (3) !!!!! + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, !!!!!Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)actual 3 (2147483648.00x) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, !!!!!Testing collisions (low 32-bit) - Expected 0.0, + +Broken seed 0x60000008 => 0 with key[16] of all 0 bytes + (3)actual 3 (2147483648.00x) !!!!! + (3) !!!!! +Bad seed 0x20000007 + !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) +Broken seed 0x80000007 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3) !!!!! + (3)Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, !!!!! +Broken seed 0x00000008 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000007 +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0xe0000005 +Testing collisions (high 32-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) !!!!!Bad seed 0x00000008 +actual 3 (9223372036854775808.00x) (3) (3)Testing collisions ( 64-bit) - Expected 0.0, (3) +Broken seed 0xc0000009 => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x)Testing collisions ( 64-bit) - Expected 0.0, (3) +actual 3 (9223372036854775808.00x) (3) !!!!! + !!!!! !!!!! !!!!! + + !!!!! + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x)Bad seed 0x60000008 + (3) !!!!! + !!!!! + (3) !!!!! + +Broken seed 0x40000009 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000009 +Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0xc0000009 +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) +Broken seed 0xa0000006 => 0 with key[16] of all 0 bytes + (3) (3)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) !!!!! +actual 3 (9223372036854775808.00x) !!!!! + !!!!! +Broken seed 0x20000008 => 0 with key[16] of all 0 bytes + !!!!! + !!!!! !!!!!Bad seed 0x20000008 +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) !!!!! (3)actual 3 (2147483648.00x) + (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! + !!!!! + +Broken seed 0x80000008 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, +actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3)Bad seed 0x80000008 +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x)actual 3 (9223372036854775808.00x) !!!!! +Bad seed 0xa0000006 + (3)actual 3 (2147483648.00x) (3) !!!!! + (3) +Broken seed 0xc000000a => 0 with key[16] of all 0 bytes +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3) +Broken seed 0x00000009 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Testing collisions (low 32-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Bad seed 0xc000000a + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) + (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, !!!!! (3) + (3) !!!!! +actual 3 (2147483648.00x)actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3) (3) !!!!! + !!!!! +actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0x4000000a => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000006 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) +Broken seed 0xa0000007 => 0 with key[16] of all 0 bytes + !!!!! +actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0x60000009 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (low 32-bit) - Expected 0.0, !!!!!Bad seed 0xa0000007 +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Bad seed 0x00000009 + (3) !!!!! +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, !!!!! + (3)actual 3 (9223372036854775808.00x)Bad seed 0x60000009 +Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x20000009 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) !!!!!Testing collisions ( 64-bit) - Expected 0.0, (3) !!!!! !!!!! +actual 3 (9223372036854775808.00x) (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3) +Bad seed 0xe0000006 +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x)Bad seed 0x4000000a + (3)Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0x80000009 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000009 +Bad seed 0x80000009 +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3) !!!!! + (3) !!!!! +actual 3 (9223372036854775808.00x) (3)Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0xc000000b => 0 with key[16] of all 0 bytes + (3) !!!!! !!!!! !!!!! + +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! +actual 3 (2147483648.00x) (3)Testing collisions (low 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x6000000a => 0 with key[16] of all 0 bytes + !!!!! + (3) !!!!! +actual 3 (2147483648.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x2000000a => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000008 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa0000008 +actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3)Bad seed 0x6000000a +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +Bad seed 0xc000000b +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3)actual 3 (9223372036854775808.00x) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, !!!!! +Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0xc000000c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000000c + +Broken seed 0x0000000a => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x) !!!!!actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x2000000a + +Broken seed 0xe0000007 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!!Bad seed 0x0000000a + + (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) (3)Bad seed 0xe0000007 + !!!!! +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) (3) (3) !!!!! + !!!!! + (3) !!!!! + +Broken seed 0x8000000a => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x4000000b => 0 with key[16] of all 0 bytes + (3)actual 3 (2147483648.00x) !!!!! (3) !!!!! + +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) !!!!! (3) + !!!!! +Bad seed 0x8000000a +actual 3 (2147483648.00x) !!!!!Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) +actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0x4000000b +Testing collisions ( 64-bit) - Expected 0.0, (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) !!!!! +actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xa0000009 => 0 with key[16] of all 0 bytes + (3) !!!!! +actual 3 (9223372036854775808.00x) (3) !!!!!Testing collisions (low 32-bit) - Expected 0.0, (3)Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x2000000b => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!!actual 3 (2147483648.00x) (3) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x) (3) !!!!! + !!!!! +Bad seed 0x2000000b +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, !!!!! + (3) !!!!! + !!!!! +actual 3 (9223372036854775808.00x) +Broken seed 0xe0000008 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000000d => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, !!!!!Bad seed 0xe0000008 +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x)Bad seed 0xa0000009 + (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) (3)actual 3 (2147483648.00x) !!!!! + (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) !!!!!Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x6000000b => 0 with key[16] of all 0 bytes + +actual 3 (2147483648.00x) (3) (3) !!!!! + !!!!! (3) !!!!! + +Broken seed 0x4000000c => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Bad seed 0xc000000d +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +Broken seed 0x8000000b => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x)Bad seed 0x6000000b + (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! + !!!!! +actual 3 (2147483648.00x)Bad seed 0x4000000c +Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0xe0000009 => 0 with key[16] of all 0 bytes + +Broken seed 0x0000000b => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!actual 3 (2147483648.00x) !!!!! (3) !!!!! +Testing collisions ( 64-bit) - Expected 0.0, +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0x8000000b +actual 3 (9223372036854775808.00x) (3)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x)Bad seed 0xe0000009 +Testing collisions ( 64-bit) - Expected 0.0, (3) (3) !!!!! + !!!!!Testing collisions ( 64-bit) - Expected 0.0, !!!!! + +actual 3 (9223372036854775808.00x) (3) !!!!! +actual 3 (9223372036854775808.00x) (3) +Broken seed 0x2000000c => 0 with key[16] of all 0 bytes +Bad seed 0x0000000b + !!!!! (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + !!!!! + +Broken seed 0xa000000a => 0 with key[16] of all 0 bytes + !!!!!Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!!Testing collisions (high 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! + +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +actual 3 (2147483648.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) (3) !!!!! + !!!!! + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) +Broken seed 0x6000000c => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc000000e => 0 with key[16] of all 0 bytes + (3) !!!!! !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0x6000000c +Bad seed 0x2000000c +Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0x8000000c => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x) (3) !!!!! +actual 3 (2147483648.00x) !!!!! (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0x0000000c => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x) (3) !!!!! (3) +Testing collisions (high 32-bit) - Expected 0.0, !!!!! + !!!!!Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0x0000000c +actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) !!!!! + (3)Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x) (3)Bad seed 0xc000000e +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, !!!!! + (3) !!!!! +actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) (3)actual 3 (9223372036854775808.00x) !!!!! +Broken seed 0x2000000d => 0 with key[16] of all 0 bytes + (3) !!!!!Bad seed 0x2000000d +Testing collisions ( 64-bit) - Expected 0.0, !!!!! + +Broken seed 0x4000000d => 0 with key[16] of all 0 bytes +actual 3 (9223372036854775808.00x) (3) !!!!! + +Broken seed 0x6000000d => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x8000000c + + !!!!!Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) + (3) (3) !!!!!Bad seed 0x4000000d + +Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0x6000000d +actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0xa000000a +Testing collisions (high 32-bit) - Expected 0.0, (3)Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) (3)actual 3 (9223372036854775808.00x) !!!!! + !!!!! !!!!! +Testing collisions (low 32-bit) - Expected 0.0, +actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3)Testing collisions (low 32-bit) - Expected 0.0, !!!!! +actual 3 (2147483648.00x) (3)Testing collisions (high 32-bit) - Expected 0.0, !!!!! (3) !!!!! + +actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x) (3) !!!!! (3) +Broken seed 0x0000000d => 0 with key[16] of all 0 bytes +Testing collisions (high 32-bit) - Expected 0.0, !!!!!Bad seed 0x0000000d + +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) +Broken seed 0x2000000e => 0 with key[16] of all 0 bytes + !!!!! (3)Testing collisions ( 64-bit) - Expected 0.0, !!!!! +actual 3 (9223372036854775808.00x) (3)actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, !!!!! + (3)Testing collisions (low 32-bit) - Expected 0.0, (3) +Broken seed 0x8000000d => 0 with key[16] of all 0 bytes + !!!!! + !!!!!actual 3 (2147483648.00x) !!!!!Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + (3) !!!!! + +Broken seed 0xa000000b => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) (3) !!!!! + !!!!! + +Broken seed 0x4000000e => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x)Testing collisions (low 32-bit) - Expected 0.0, (3) !!!!! +actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0xe000000a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000000e + +Broken seed 0xc000000f => 0 with key[16] of all 0 bytes + !!!!!Testing collisions ( 64-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (9223372036854775808.00x) (3) (3) !!!!! + !!!!! !!!!! +Broken seed 0x6000000e => 0 with key[16] of all 0 bytes +Bad seed 0x8000000d +Bad seed 0x4000000e +Testing collisions ( 64-bit) - Expected 0.0, +actual 3 (9223372036854775808.00x)Testing collisions (high 32-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x)Bad seed 0x6000000e +Testing collisions ( 64-bit) - Expected 0.0, !!!!!Testing collisions ( 64-bit) - Expected 0.0, (3)actual 3 (9223372036854775808.00x) (3) (3)actual 3 (9223372036854775808.00x)Bad seed 0xe000000a +Testing collisions (high 32-bit) - Expected 0.0, Testing collisions ( 64-bit) - Expected 0.0, (3) !!!!!actual 3 (2147483648.00x) !!!!! +actual 3 (9223372036854775808.00x) +Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0xc000000f + !!!!!actual 3 (2147483648.00x) +Broken seed 0xc0000010 => 0 with key[16] of all 0 bytes + (3) !!!!! (3) !!!!! + + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)actual 3 (2147483648.00x) (3) (3) !!!!! + !!!!! +Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x2000000f => 0 with key[16] of all 0 bytes + !!!!!actual 3 (2147483648.00x) +Broken seed 0x8000000e => 0 with key[16] of all 0 bytes + (3) (3) !!!!! +Bad seed 0xa000000b +Testing collisions ( 64-bit) - Expected 0.0, Testing collisions (low 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +actual 3 (2147483648.00x) !!!!!Bad seed 0xc0000010 + !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) (3) !!!!! + +Broken seed 0xc0000011 => 0 with key[16] of all 0 bytes + +Broken seed 0x0000000e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000000e + !!!!! +Bad seed 0x2000000f +Testing collisions ( 64-bit) - Expected 0.0, Bad seed 0xc0000011 + !!!!! +Broken seed 0x6000000f => 0 with key[16] of all 0 bytes +Bad seed 0x8000000e +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xa000000c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000000c +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xa000000d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000000d +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xa000000e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000000e +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! +Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xc0000012 => 0 with key[16] of all 0 bytes +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x)Testing collisions (high 32-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)actual 3 (2147483648.00x)Testing collisions ( 64-bit) - Expected 0.0, +Broken seed 0x20000010 => 0 with key[16] of all 0 bytes + (3) !!!!! !!!!! !!!!! +Bad seed 0x6000000f + + +Broken seed 0x60000010 => 0 with key[16] of all 0 bytes + (3)Bad seed 0x20000010 +Testing collisions (low 32-bit) - Expected 0.0, !!!!! (3) +Broken seed 0x20000011 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) !!!!! !!!!! + !!!!! + !!!!! +Broken seed 0xa000000f => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (high 32-bit) - Expected 0.0, (3)actual 3 (2147483648.00x) (3) !!!!! + !!!!! +Bad seed 0xa000000f +actual 3 (9223372036854775808.00x)Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x4000000f => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000010 => 0 with key[16] of all 0 bytes + !!!!! !!!!!actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x60000010 + +Broken seed 0x60000011 => 0 with key[16] of all 0 bytes + (3) +Broken seed 0xe000000b => 0 with key[16] of all 0 bytes + !!!!! + !!!!!Bad seed 0x60000011 +Bad seed 0xc0000012 + +Broken seed 0x60000012 => 0 with key[16] of all 0 bytes +Bad seed 0x20000011 + !!!!! +Broken seed 0x20000012 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000013 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0xe000000b +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) (3) !!!!! + +Broken seed 0x0000000f => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (high 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x60000012 + +Broken seed 0x8000000f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000000f + +Broken seed 0x60000013 => 0 with key[16] of all 0 bytes +Bad seed 0x20000012 + +Broken seed 0x20000013 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000013 + +Broken seed 0x60000014 => 0 with key[16] of all 0 bytes + +Broken seed 0x80000010 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa0000010 + +Broken seed 0xa0000011 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000011 + +Broken seed 0xa0000012 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000012 + +Broken seed 0xa0000013 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000013 +Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0xc0000014 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x)Bad seed 0x0000000f + (3) +Broken seed 0x00000010 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!! +Bad seed 0x20000013 +Testing collisions (low 32-bit) - Expected 0.0, +Broken seed 0x20000014 => 0 with key[16] of all 0 bytes + !!!!!actual 3 (2147483648.00x) (3) !!!!! +Bad seed 0x60000014 + +Broken seed 0xe000000c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000000f + +Broken seed 0x60000015 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000015 + +Broken seed 0x60000016 => 0 with key[16] of all 0 bytes +Bad seed 0x80000010 + +Broken seed 0x80000011 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000013 + +Broken seed 0xa0000014 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000010 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!!Bad seed 0xc0000014 + +Broken seed 0xc0000015 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000015 + +Broken seed 0xc0000016 => 0 with key[16] of all 0 bytes +Bad seed 0x20000014 +Bad seed 0x00000010 + +Broken seed 0x00000011 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe000000c +Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x) +Broken seed 0x20000015 => 0 with key[16] of all 0 bytes +Bad seed 0x00000011 + (3) !!!!! + +Broken seed 0x00000012 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000015 + +Broken seed 0x20000016 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000016 + !!!!!Bad seed 0x60000016 + +Broken seed 0x60000017 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x20000017 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000011 + +Broken seed 0x80000012 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000012 + +Broken seed 0x80000013 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000013 + +Broken seed 0x80000014 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000010 + +Broken seed 0x40000011 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000011 + +Broken seed 0x40000012 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000014 + +Broken seed 0xa0000015 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000015 + +Broken seed 0xa0000016 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000016 +Testing collisions (high 32-bit) - Expected 0.0, Bad seed 0xa0000016 + +Broken seed 0xa0000017 => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x) +Broken seed 0xc0000017 => 0 with key[16] of all 0 bytes + (3) !!!!! + !!!!!Testing collisions (low 32-bit) - Expected 0.0, Bad seed 0x60000017 +actual 3 (2147483648.00x) (3) +Broken seed 0x60000018 => 0 with key[16] of all 0 bytes +Bad seed 0x00000012 + +Broken seed 0x00000013 => 0 with key[16] of all 0 bytes + !!!!! +Bad seed 0xa0000017 + +Broken seed 0xa0000018 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xe000000d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000017 + !!!!! +Broken seed 0x20000018 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000018 +Bad seed 0x60000018 + +Broken seed 0x20000019 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x60000019 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000012 + +Broken seed 0x40000013 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000013 + +Broken seed 0x40000014 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000014 +Bad seed 0x80000014 +Bad seed 0xa0000018 + +Broken seed 0xa0000019 => 0 with key[16] of all 0 bytes + +Broken seed 0x80000015 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000015 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x40000015 +Bad seed 0xa0000019 + +Broken seed 0x40000016 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000001a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000013 + +Broken seed 0x00000014 => 0 with key[16] of all 0 bytes +Bad seed 0x60000019 + +Broken seed 0x6000001a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000014 +Bad seed 0xa000001a + +Broken seed 0x00000015 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000001b => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x20000019 + +Broken seed 0x2000001a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000001a +Bad seed 0xc0000017 +Bad seed 0x80000015 + +Broken seed 0xc0000018 => 0 with key[16] of all 0 bytes + +Broken seed 0x2000001b => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000016 => 0 with key[16] of all 0 bytes +Bad seed 0xe000000d + !!!!!Testing collisions ( 64-bit) - Expected 0.0, !!!!!actual 3 (9223372036854775808.00x)Bad seed 0x00000015 +Bad seed 0x80000016 +Bad seed 0xc0000018 + (3) +Broken seed 0xc0000019 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000019 + +Broken seed 0x80000017 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000001a => 0 with key[16] of all 0 bytes + +Broken seed 0x00000016 => 0 with key[16] of all 0 bytes + + !!!!!Testing collisions (high 32-bit) - Expected 0.0, !!!!!actual 3 (2147483648.00x)Bad seed 0x80000017 + +Broken seed 0x80000018 => 0 with key[16] of all 0 bytes +Bad seed 0xa000001b +Bad seed 0x00000016 + !!!!! +Broken seed 0x00000017 => 0 with key[16] of all 0 bytes + !!!!! (3) !!!!! +Bad seed 0x40000016 + +Broken seed 0x40000017 => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) !!!!! +Broken seed 0xa000001c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000001c +Bad seed 0x6000001a + (3) !!!!! + +Broken seed 0xa000001d => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe000000e => 0 with key[16] of all 0 bytes +Bad seed 0x2000001b + +Broken seed 0x2000001c => 0 with key[16] of all 0 bytes + +Broken seed 0x6000001b => 0 with key[16] of all 0 bytes +Bad seed 0xc000001a + !!!!!Bad seed 0x40000017 + +Broken seed 0x40000018 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000001b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000017 + !!!!! +Broken seed 0x00000018 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000001c + !!!!! +Broken seed 0x2000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000018 + +Broken seed 0x40000019 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000019 + +Broken seed 0x4000001a => 0 with key[16] of all 0 bytes +Bad seed 0xa000001d + +Broken seed 0xa000001e => 0 with key[16] of all 0 bytes +Bad seed 0xe000000e + !!!!!Testing collisions ( 64-bit) - Expected 0.0, actual 3 (9223372036854775808.00x)Bad seed 0x6000001b + (3) !!!!!Bad seed 0x4000001a +Bad seed 0x80000018 + +Broken seed 0x4000001b => 0 with key[16] of all 0 bytes + +Broken seed 0x80000019 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x6000001c => 0 with key[16] of all 0 bytes +Bad seed 0xa000001e + !!!!! +Broken seed 0xa000001f => 0 with key[16] of all 0 bytes + !!!!! + !!!!! !!!!!Bad seed 0x00000018 + +Broken seed 0x00000019 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000019 + +Broken seed 0x0000001a => 0 with key[16] of all 0 bytes +Bad seed 0xc000001b + !!!!! +Broken seed 0xc000001c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000001c + +Broken seed 0xc000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000001d + +Broken seed 0xc000001e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000019 +Bad seed 0x2000001d + +Broken seed 0x8000001a => 0 with key[16] of all 0 bytes + +Broken seed 0x2000001e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000001e + !!!!! +Broken seed 0xc000001f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000001a + +Broken seed 0x8000001b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000001f + +Broken seed 0xa0000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000020 + +Broken seed 0xa0000021 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000021 +Bad seed 0x4000001b + +Broken seed 0x4000001c => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000022 + +Broken seed 0xa0000023 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000001c + !!!!! +Broken seed 0x4000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000001a + +Broken seed 0x0000001b => 0 with key[16] of all 0 bytes +Bad seed 0x6000001c + +Broken seed 0x6000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000001d +Testing collisions (high 32-bit) - Expected 0.0, +Broken seed 0x6000001e => 0 with key[16] of all 0 bytes +actual 3 (2147483648.00x)Bad seed 0x2000001e + +Broken seed 0x2000001f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000001f + !!!!! +Broken seed 0x20000020 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x6000001e +Bad seed 0xc000001f + +Broken seed 0x6000001f => 0 with key[16] of all 0 bytes + (3) !!!!! + !!!!! +Broken seed 0xc0000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000001b + +Broken seed 0x8000001c => 0 with key[16] of all 0 bytes + !!!!!Testing collisions (low 32-bit) - Expected 0.0, actual 3 (2147483648.00x) (3) !!!!! + +Broken seed 0xe000000f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000020 + +Broken seed 0xc0000021 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000000f + +Broken seed 0xe0000010 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000020 +Bad seed 0xe0000010 + +Broken seed 0xe0000011 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000011 + +Broken seed 0x20000021 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000012 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000001f + +Broken seed 0x60000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000001d + +Broken seed 0x4000001e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000001e + +Broken seed 0x4000001f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000001f + +Broken seed 0x40000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000020 + +Broken seed 0x40000021 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000001c + +Broken seed 0x8000001d => 0 with key[16] of all 0 bytes +Bad seed 0x40000021 + +Broken seed 0x40000022 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000023 + +Broken seed 0xa0000024 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000021 + +Broken seed 0xc0000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000022 +Bad seed 0x20000021 + +Broken seed 0x40000023 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x20000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000012 + !!!!!Bad seed 0xc0000022 + +Broken seed 0xc0000023 => 0 with key[16] of all 0 bytes +Bad seed 0x60000020 + +Broken seed 0x60000021 => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000013 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000013 + !!!!! +Broken seed 0xe0000014 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000023 + +Broken seed 0xc0000024 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000024 + +Broken seed 0xa0000025 => 0 with key[16] of all 0 bytes +Bad seed 0x60000021 + +Broken seed 0x60000022 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000014 + +Broken seed 0xe0000015 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000015 + +Broken seed 0xe0000016 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000001b + +Broken seed 0x0000001c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000023 + +Broken seed 0x40000024 => 0 with key[16] of all 0 bytes +Bad seed 0x20000022 + +Broken seed 0x20000023 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000024 + +Broken seed 0xc0000025 => 0 with key[16] of all 0 bytes +Bad seed 0x60000022 + +Broken seed 0x60000023 => 0 with key[16] of all 0 bytes +Bad seed 0x20000023 + !!!!!Bad seed 0xc0000025 +Bad seed 0x8000001d + +Broken seed 0x8000001e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000023 +Bad seed 0xa0000025 + +Broken seed 0xc0000026 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000024 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x60000024 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa0000026 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000001e + +Broken seed 0x8000001f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000024 + +Broken seed 0x40000025 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000025 + +Broken seed 0x40000026 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000026 +Bad seed 0x0000001c + +Broken seed 0x0000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000001d + +Broken seed 0x40000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000026 + +Broken seed 0xc0000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000024 + +Broken seed 0x0000001e => 0 with key[16] of all 0 bytes + +Broken seed 0x20000025 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000025 + !!!!!Bad seed 0x0000001e + +Broken seed 0x0000001f => 0 with key[16] of all 0 bytes +Bad seed 0x60000024 + +Broken seed 0x60000025 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000025 + +Broken seed 0x60000026 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000027 + +Broken seed 0x20000026 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000028 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000026 + +Broken seed 0xa0000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000001f + !!!!! !!!!! +Broken seed 0x80000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000027 + +Broken seed 0xa0000028 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000028 + +Broken seed 0xa0000029 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000016 + +Broken seed 0xe0000017 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000026 + +Broken seed 0x60000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000026 + +Broken seed 0x20000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000027 + +Broken seed 0x20000028 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000028 + +Broken seed 0x20000029 => 0 with key[16] of all 0 bytes +Bad seed 0x40000027 + +Broken seed 0x40000028 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000028 + +Broken seed 0xc0000029 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000029 + +Broken seed 0xc000002a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000001f + +Broken seed 0x00000020 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000020 + +Broken seed 0x80000021 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000021 + +Broken seed 0x80000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000022 + +Broken seed 0x80000023 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000023 +Bad seed 0xa0000029 +Bad seed 0xe0000017 +Bad seed 0x60000027 + +Broken seed 0xe0000018 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000028 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000002a => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! +Broken seed 0x80000024 => 0 with key[16] of all 0 bytes +Bad seed 0x20000029 + +Broken seed 0x2000002a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000028 + +Broken seed 0x40000029 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000002a + +Broken seed 0x2000002b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000002a + +Broken seed 0xc000002b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000002b + +Broken seed 0xc000002c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000020 + +Broken seed 0x00000021 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000028 + +Broken seed 0x60000029 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000029 + +Broken seed 0x6000002a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000002a + +Broken seed 0xa000002b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000002b +Bad seed 0xe0000018 + +Broken seed 0xe0000019 => 0 with key[16] of all 0 bytes +Bad seed 0x40000029 + +Broken seed 0xa000002c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000024 + +Broken seed 0x80000025 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000002a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000019 + +Broken seed 0xe000001a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000001a + +Broken seed 0xe000001b => 0 with key[16] of all 0 bytes +Bad seed 0xc000002c + +Broken seed 0xc000002d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000021 + +Broken seed 0x00000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000002d + +Broken seed 0xc000002e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000002e + !!!!!Bad seed 0x00000022 + +Broken seed 0x00000023 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000002a + +Broken seed 0x6000002b => 0 with key[16] of all 0 bytes +Bad seed 0xe000001b + +Broken seed 0xe000001c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000002b + +Broken seed 0x2000002c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000002b + +Broken seed 0x6000002c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000025 + +Broken seed 0x80000026 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000002c + +Broken seed 0x2000002d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000026 + +Broken seed 0x80000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000023 + +Broken seed 0x00000024 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000002f + +Broken seed 0xc0000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000027 +Bad seed 0x4000002a + +Broken seed 0x4000002b => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000028 => 0 with key[16] of all 0 bytes +Bad seed 0xe000001c +Bad seed 0x6000002c + +Broken seed 0x6000002d => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000002c +Bad seed 0x4000002b + +Broken seed 0xa000002d => 0 with key[16] of all 0 bytes + +Broken seed 0xe000001d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000001d + !!!!! +Broken seed 0xe000001e => 0 with key[16] of all 0 bytes +Bad seed 0xa000002d + !!!!!Bad seed 0x6000002d + +Broken seed 0x4000002c => 0 with key[16] of all 0 bytes + +Broken seed 0x6000002e => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa000002e => 0 with key[16] of all 0 bytes +Bad seed 0x00000024 +Bad seed 0xe000001e + +Broken seed 0x00000025 => 0 with key[16] of all 0 bytes + +Broken seed 0xe000001f => 0 with key[16] of all 0 bytes +Bad seed 0xc0000030 + !!!!! !!!!! !!!!! !!!!!Bad seed 0x4000002c + +Broken seed 0xc0000031 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000025 + +Broken seed 0x4000002d => 0 with key[16] of all 0 bytes + +Broken seed 0x00000026 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000031 + !!!!! !!!!! +Broken seed 0xc0000032 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000002d + +Broken seed 0x2000002e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000026 + +Broken seed 0x00000027 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000002e + +Broken seed 0x2000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000002f + +Broken seed 0x20000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000030 + +Broken seed 0x20000031 => 0 with key[16] of all 0 bytes +Bad seed 0x80000028 +Bad seed 0xe000001f + !!!!! +Broken seed 0x80000029 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000020 => 0 with key[16] of all 0 bytes +Bad seed 0x4000002d + +Broken seed 0x4000002e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000002e + +Broken seed 0xa000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000002f +Bad seed 0x4000002e + +Broken seed 0x4000002f => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa0000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000002e + +Broken seed 0x6000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000002f + +Broken seed 0x60000030 => 0 with key[16] of all 0 bytes +Bad seed 0x00000027 + +Broken seed 0x00000028 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000028 + +Broken seed 0x00000029 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000029 + +Broken seed 0x0000002a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000002a + +Broken seed 0x0000002b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000031 +Bad seed 0xc0000032 + +Broken seed 0xc0000033 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000032 => 0 with key[16] of all 0 bytes +Bad seed 0x80000029 + +Broken seed 0x8000002a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000002a +Bad seed 0x4000002f + +Broken seed 0x8000002b => 0 with key[16] of all 0 bytes + +Broken seed 0x40000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000002b + !!!!! !!!!!Bad seed 0x8000002b + +Broken seed 0x8000002c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000002c +Bad seed 0x20000032 + +Broken seed 0x8000002d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000002d + +Broken seed 0x0000002c => 0 with key[16] of all 0 bytes +Bad seed 0xa0000030 + !!!!! +Broken seed 0x20000033 => 0 with key[16] of all 0 bytes +Bad seed 0xe0000020 + !!!!! +Broken seed 0xa0000031 => 0 with key[16] of all 0 bytes +Bad seed 0x60000030 + !!!!! +Broken seed 0x60000031 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000021 => 0 with key[16] of all 0 bytes +Bad seed 0x0000002c + +Broken seed 0x8000002e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000021 + +Broken seed 0xe0000022 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000031 +Bad seed 0xc0000033 + +Broken seed 0xa0000032 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xc0000034 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000034 + +Broken seed 0xc0000035 => 0 with key[16] of all 0 bytes +Bad seed 0x20000033 +Bad seed 0x8000002e + +Broken seed 0x8000002f => 0 with key[16] of all 0 bytes + +Broken seed 0x0000002d => 0 with key[16] of all 0 bytes + +Broken seed 0x20000034 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000030 +Bad seed 0xe0000022 + +Broken seed 0x40000031 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xe0000023 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000023 +Bad seed 0xc0000035 + +Broken seed 0xc0000036 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000024 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000031 + +Broken seed 0x60000032 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000032 + +Broken seed 0x60000033 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000032 + +Broken seed 0xa0000033 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000033 + +Broken seed 0xa0000034 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000034 + +Broken seed 0xa0000035 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000035 + +Broken seed 0xa0000036 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000036 + +Broken seed 0xa0000037 => 0 with key[16] of all 0 bytes +Bad seed 0x20000034 + +Broken seed 0x20000035 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x8000002f + +Broken seed 0x80000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000035 + +Broken seed 0x20000036 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000036 + +Broken seed 0xc0000037 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000036 + +Broken seed 0x20000037 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000031 + +Broken seed 0x40000032 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000033 + +Broken seed 0x60000034 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000037 + +Broken seed 0xa0000038 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000002d + +Broken seed 0x0000002e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000002e + +Broken seed 0x0000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000002f + +Broken seed 0x00000030 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000030 + +Broken seed 0x80000031 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000024 + +Broken seed 0xe0000025 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000025 + +Broken seed 0xe0000026 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000037 + +Broken seed 0xc0000038 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000037 + +Broken seed 0x20000038 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000038 + +Broken seed 0x20000039 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000039 + +Broken seed 0x2000003a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000003a + +Broken seed 0x2000003b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000003b +Bad seed 0x40000032 + +Broken seed 0x40000033 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000034 + +Broken seed 0x60000035 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000038 + +Broken seed 0xa0000039 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x2000003c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000033 + !!!!! +Broken seed 0x40000034 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000030 + +Broken seed 0x00000031 => 0 with key[16] of all 0 bytes +Bad seed 0x80000031 + +Broken seed 0x80000032 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000032 +Bad seed 0xe0000026 + +Broken seed 0x80000033 => 0 with key[16] of all 0 bytes +Bad seed 0x00000031 + +Broken seed 0x00000032 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000038 + +Broken seed 0xc0000039 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000027 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000003c + +Broken seed 0x2000003d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000032 + +Broken seed 0x00000033 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000033 + +Broken seed 0x00000034 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000027 +Bad seed 0x40000034 + +Broken seed 0x40000035 => 0 with key[16] of all 0 bytes +Bad seed 0x60000035 + +Broken seed 0xe0000028 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x60000036 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000039 + !!!!! +Broken seed 0xa000003a => 0 with key[16] of all 0 bytes +Bad seed 0x60000036 + +Broken seed 0x60000037 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000037 + !!!!! +Broken seed 0x60000038 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000039 + +Broken seed 0xc000003a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000003a + +Broken seed 0xc000003b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000003b +Bad seed 0x00000034 +Bad seed 0xa000003a + +Broken seed 0xa000003b => 0 with key[16] of all 0 bytes + +Broken seed 0xc000003c => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x00000035 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000035 + +Broken seed 0x40000036 => 0 with key[16] of all 0 bytes +Bad seed 0xc000003c + !!!!!Bad seed 0xe0000028 + +Broken seed 0xe0000029 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc000003d => 0 with key[16] of all 0 bytes +Bad seed 0xe0000029 +Bad seed 0x00000035 +Bad seed 0x2000003d + +Broken seed 0xe000002a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000003b + +Broken seed 0x00000036 => 0 with key[16] of all 0 bytes +Bad seed 0xc000003d + +Broken seed 0x2000003e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000038 + +Broken seed 0x60000039 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000033 + +Broken seed 0x80000034 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa000003c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000002a +Bad seed 0x80000034 +Bad seed 0x40000036 + +Broken seed 0xe000002b => 0 with key[16] of all 0 bytes + +Broken seed 0x40000037 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000003c + +Broken seed 0xa000003d => 0 with key[16] of all 0 bytes +Bad seed 0x2000003e + +Broken seed 0x2000003f => 0 with key[16] of all 0 bytes + +Broken seed 0xc000003e => 0 with key[16] of all 0 bytes +Bad seed 0x00000036 + !!!!!Bad seed 0xc000003e + +Broken seed 0x80000035 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc000003f => 0 with key[16] of all 0 bytes +Bad seed 0x60000039 + !!!!!Bad seed 0x40000037 + +Broken seed 0x00000037 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x6000003a => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x40000038 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000003f + +Broken seed 0xc0000040 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000040 + +Broken seed 0xc0000041 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000003f + +Broken seed 0x20000040 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000040 + +Broken seed 0x20000041 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000041 + +Broken seed 0x20000042 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000042 + +Broken seed 0x20000043 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000002b + +Broken seed 0xe000002c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000002c + +Broken seed 0xe000002d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000035 + +Broken seed 0x80000036 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000036 +Bad seed 0x00000037 +Bad seed 0x6000003a + +Broken seed 0x6000003b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000003b + +Broken seed 0x00000038 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000037 => 0 with key[16] of all 0 bytes + +Broken seed 0x6000003c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000038 +Bad seed 0x80000037 + !!!!! +Broken seed 0x80000038 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x00000039 => 0 with key[16] of all 0 bytes +Bad seed 0x40000038 + !!!!! +Broken seed 0x40000039 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000039 + +Broken seed 0x4000003a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000043 + +Broken seed 0x20000044 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000041 + +Broken seed 0xc0000042 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000042 +Bad seed 0x4000003a +Bad seed 0x6000003c + +Broken seed 0x6000003d => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000043 => 0 with key[16] of all 0 bytes +Bad seed 0x20000044 + +Broken seed 0x20000045 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000003b => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000003d + +Broken seed 0xa000003e => 0 with key[16] of all 0 bytes +Bad seed 0x20000045 + !!!!! +Broken seed 0x20000046 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000038 +Bad seed 0x6000003d + +Broken seed 0x80000039 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000039 + +Broken seed 0x6000003e => 0 with key[16] of all 0 bytes +Bad seed 0xe000002d +Bad seed 0x20000046 + +Broken seed 0xe000002e => 0 with key[16] of all 0 bytes + +Broken seed 0x20000047 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x8000003a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe000002e + +Broken seed 0xe000002f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000043 + +Broken seed 0xc0000044 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000044 + +Broken seed 0xc0000045 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000045 + +Broken seed 0xc0000046 => 0 with key[16] of all 0 bytes +Bad seed 0xa000003e +Bad seed 0x4000003b + +Broken seed 0xa000003f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000003e + +Broken seed 0x4000003c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000003c + +Broken seed 0x4000003d => 0 with key[16] of all 0 bytes +Bad seed 0xc0000046 +Bad seed 0x8000003a + !!!!!Bad seed 0xe000002f + !!!!! +Broken seed 0xe0000030 => 0 with key[16] of all 0 bytes + +Broken seed 0x6000003f => 0 with key[16] of all 0 bytes + +Broken seed 0xc0000047 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x00000039 + +Broken seed 0x0000003a => 0 with key[16] of all 0 bytes + +Broken seed 0x8000003b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000003d + +Broken seed 0x4000003e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000003e +Bad seed 0x20000047 + +Broken seed 0x4000003f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000003f +Bad seed 0xa000003f + +Broken seed 0x20000048 => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000040 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000047 + !!!!!Bad seed 0xa0000040 +Bad seed 0x6000003f + +Broken seed 0xa0000041 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000040 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000041 + +Broken seed 0xa0000042 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000048 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000040 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000040 + +Broken seed 0x40000041 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000048 + +Broken seed 0xc0000049 => 0 with key[16] of all 0 bytes +Bad seed 0xe0000030 + +Broken seed 0xe0000031 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x8000003b +Bad seed 0xe0000031 + +Broken seed 0xe0000032 => 0 with key[16] of all 0 bytes + +Broken seed 0x8000003c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000040 + +Broken seed 0x60000041 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000041 + +Broken seed 0x60000042 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000042 + +Broken seed 0x60000043 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000043 +Bad seed 0x20000048 + +Broken seed 0x20000049 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000049 +Bad seed 0x40000041 + +Broken seed 0x40000042 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000044 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000003a +Bad seed 0xc0000049 + +Broken seed 0x0000003b => 0 with key[16] of all 0 bytes + +Broken seed 0xc000004a => 0 with key[16] of all 0 bytes +Bad seed 0x8000003c + +Broken seed 0x2000004a => 0 with key[16] of all 0 bytes + +Broken seed 0x8000003d => 0 with key[16] of all 0 bytes +Bad seed 0x60000044 + !!!!! !!!!! +Broken seed 0x60000045 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000042 + +Broken seed 0xa0000043 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000043 + +Broken seed 0xa0000044 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000003b + +Broken seed 0x0000003c => 0 with key[16] of all 0 bytes +Bad seed 0xe0000032 + !!!!! !!!!!Bad seed 0xc000004a +Bad seed 0xa0000044 + +Broken seed 0xa0000045 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000003c + +Broken seed 0x0000003d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000003d + +Broken seed 0xe0000033 => 0 with key[16] of all 0 bytes +Bad seed 0x2000004a + !!!!! +Broken seed 0x2000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000045 + !!!!! +Broken seed 0x0000003e => 0 with key[16] of all 0 bytes + +Broken seed 0x60000046 => 0 with key[16] of all 0 bytes +Bad seed 0x40000042 + !!!!! +Broken seed 0x40000043 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000033 + !!!!!Bad seed 0x60000046 + +Broken seed 0x60000047 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000047 +Bad seed 0xa0000045 + +Broken seed 0xe0000034 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa0000046 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000034 + +Broken seed 0x60000048 => 0 with key[16] of all 0 bytes +Bad seed 0x2000004b + !!!!! +Broken seed 0x2000004c => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000035 => 0 with key[16] of all 0 bytes +Bad seed 0xc000004b + !!!!!Bad seed 0x8000003d + +Broken seed 0x8000003e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000003e + +Broken seed 0xc000004c => 0 with key[16] of all 0 bytes + +Broken seed 0x0000003f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa0000046 + +Broken seed 0xa0000047 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000043 + +Broken seed 0x40000044 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000044 + +Broken seed 0x40000045 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000045 +Bad seed 0x60000048 + +Broken seed 0x60000049 => 0 with key[16] of all 0 bytes +Bad seed 0x2000004c +Bad seed 0xc000004c + +Broken seed 0xc000004d => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x2000004d => 0 with key[16] of all 0 bytes + +Broken seed 0x40000046 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc000004d + !!!!! +Broken seed 0xc000004e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000035 + +Broken seed 0xe0000036 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000003e + +Broken seed 0x8000003f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000036 + +Broken seed 0xe0000037 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000004d + +Broken seed 0x2000004e => 0 with key[16] of all 0 bytes +Bad seed 0x40000046 +Bad seed 0xe0000037 + +Broken seed 0x40000047 => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000038 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x40000047 + +Broken seed 0x40000048 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000048 + +Broken seed 0x40000049 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000049 + +Broken seed 0x4000004a => 0 with key[16] of all 0 bytes +Bad seed 0x60000049 +Bad seed 0xc000004e + +Broken seed 0xc000004f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000004f +Bad seed 0xa0000047 + +Broken seed 0x6000004a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000003f + +Broken seed 0xc0000050 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000040 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xa0000048 => 0 with key[16] of all 0 bytes +Bad seed 0x8000003f + !!!!! !!!!! +Broken seed 0x80000040 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000040 + +Broken seed 0x00000041 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000041 +Bad seed 0xe0000038 + +Broken seed 0x00000042 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000039 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000039 + +Broken seed 0xe000003a => 0 with key[16] of all 0 bytes +Bad seed 0x6000004a + +Broken seed 0x6000004b => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000004a + +Broken seed 0x4000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000004b + +Broken seed 0x4000004c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000048 +Bad seed 0x4000004c + +Broken seed 0x4000004d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000004b + +Broken seed 0x6000004c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000050 + +Broken seed 0xc0000051 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000051 + +Broken seed 0xc0000052 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000052 + +Broken seed 0xc0000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000053 + +Broken seed 0xc0000054 => 0 with key[16] of all 0 bytes +Bad seed 0x80000040 + +Broken seed 0xa0000049 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000004e + !!!!! +Broken seed 0x2000004f => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000041 => 0 with key[16] of all 0 bytes +Bad seed 0xe000003a + +Broken seed 0xe000003b => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe000003b + +Broken seed 0xe000003c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000004c +Bad seed 0xe000003c + +Broken seed 0xe000003d => 0 with key[16] of all 0 bytes +Bad seed 0x00000042 + +Broken seed 0x6000004d => 0 with key[16] of all 0 bytes + +Broken seed 0x00000043 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa0000049 + +Broken seed 0xa000004a => 0 with key[16] of all 0 bytes +Bad seed 0xc0000054 + !!!!! +Broken seed 0xc0000055 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000004d +Bad seed 0x2000004f +Bad seed 0x6000004d + +Broken seed 0x20000050 => 0 with key[16] of all 0 bytes + +Broken seed 0x6000004e => 0 with key[16] of all 0 bytes +Bad seed 0x80000041 + +Broken seed 0x80000042 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000004e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000004a + +Broken seed 0xa000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000003d + !!!!! +Broken seed 0xe000003e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000055 + +Broken seed 0xc0000056 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000003e +Bad seed 0x20000050 +Bad seed 0x80000042 + +Broken seed 0x20000051 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000056 +Bad seed 0x4000004e + +Broken seed 0xc0000057 => 0 with key[16] of all 0 bytes + +Broken seed 0x4000004f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x6000004e + +Broken seed 0x6000004f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000051 +Bad seed 0x6000004f +Bad seed 0xa000004b + +Broken seed 0xa000004c => 0 with key[16] of all 0 bytes + +Broken seed 0x80000043 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000052 => 0 with key[16] of all 0 bytes + +Broken seed 0xe000003f => 0 with key[16] of all 0 bytes + +Broken seed 0x60000050 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x80000043 +Bad seed 0xa000004c + +Broken seed 0xa000004d => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000057 + +Broken seed 0xc0000058 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000003f + +Broken seed 0x80000044 => 0 with key[16] of all 0 bytes +Bad seed 0x60000050 +Bad seed 0x4000004f + +Broken seed 0x60000051 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000050 => 0 with key[16] of all 0 bytes +Bad seed 0x20000052 + !!!!!Bad seed 0xa000004d + +Broken seed 0x20000053 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000004e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000051 + +Broken seed 0x60000052 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xe0000040 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000050 + !!!!!Bad seed 0xc0000058 + +Broken seed 0xc0000059 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000059 +Bad seed 0x00000043 +Bad seed 0x80000044 + +Broken seed 0xc000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000004e + +Broken seed 0xa000004f => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000051 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x00000044 => 0 with key[16] of all 0 bytes +Bad seed 0x60000052 + !!!!! +Broken seed 0x80000045 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000053 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000045 + +Broken seed 0x80000046 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000044 + +Broken seed 0x00000045 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000045 +Bad seed 0x80000046 + +Broken seed 0x00000046 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000047 => 0 with key[16] of all 0 bytes +Bad seed 0xc000005a +Bad seed 0xa000004f + +Broken seed 0xc000005b => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000050 => 0 with key[16] of all 0 bytes +Bad seed 0x00000046 +Bad seed 0x40000051 + +Broken seed 0x40000052 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000047 + !!!!! +Broken seed 0x80000048 => 0 with key[16] of all 0 bytes +Bad seed 0xc000005b + !!!!! +Broken seed 0xc000005c => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x00000047 => 0 with key[16] of all 0 bytes +Bad seed 0x40000052 + +Broken seed 0x40000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000040 + !!!!! +Broken seed 0xe0000041 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000053 + +Broken seed 0x40000054 => 0 with key[16] of all 0 bytes +Bad seed 0x20000053 + !!!!! +Broken seed 0x20000054 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000050 + +Broken seed 0xa0000051 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000053 + +Broken seed 0x60000054 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000054 +Bad seed 0xc000005c +Bad seed 0xa0000051 + +Broken seed 0xc000005d => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000052 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000055 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0xe0000041 + +Broken seed 0xe0000042 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000042 + +Broken seed 0xe0000043 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000048 + +Broken seed 0x80000049 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000054 + +Broken seed 0x40000055 => 0 with key[16] of all 0 bytes +Bad seed 0x20000054 + +Broken seed 0x20000055 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000055 + +Broken seed 0x40000056 => 0 with key[16] of all 0 bytes +Bad seed 0x20000055 +Bad seed 0xc000005d + !!!!! +Broken seed 0xc000005e => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x20000056 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000052 + +Broken seed 0xa0000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000055 + +Broken seed 0x60000056 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000056 + +Broken seed 0x60000057 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000043 + +Broken seed 0xe0000044 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000044 + +Broken seed 0xe0000045 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000045 + +Broken seed 0xe0000046 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000047 + +Broken seed 0x00000048 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000049 + +Broken seed 0x8000004a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000048 + +Broken seed 0x00000049 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000056 + +Broken seed 0x40000057 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000056 +Bad seed 0x40000057 + +Broken seed 0x20000057 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000058 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000053 + +Broken seed 0xa0000054 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000046 + !!!!! +Broken seed 0xe0000047 => 0 with key[16] of all 0 bytes +Bad seed 0x20000057 +Bad seed 0x8000004a + +Broken seed 0x8000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000054 + +Broken seed 0x20000058 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xa0000055 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000004b + +Broken seed 0x8000004c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000057 + +Broken seed 0x60000058 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000058 + +Broken seed 0x60000059 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000059 +Bad seed 0x40000058 + +Broken seed 0x40000059 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000059 + +Broken seed 0x4000005a => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x6000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000049 + +Broken seed 0x0000004a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004a + +Broken seed 0x0000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000005e + +Broken seed 0xc000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004b + +Broken seed 0x0000004c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004c + +Broken seed 0x0000004d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000047 + +Broken seed 0xe0000048 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000048 + +Broken seed 0xe0000049 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000055 + +Broken seed 0xa0000056 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x8000004c + +Broken seed 0x8000004d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000004d + +Broken seed 0x8000004e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000004e + +Broken seed 0x8000004f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000004f +Bad seed 0x4000005a + +Broken seed 0x80000050 => 0 with key[16] of all 0 bytes + +Broken seed 0x4000005b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000005b +Bad seed 0x6000005a + +Broken seed 0x6000005b => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000005c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x20000058 + +Broken seed 0x20000059 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000005f + +Broken seed 0xc0000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004d + +Broken seed 0x0000004e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000060 + +Broken seed 0xc0000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000056 + +Broken seed 0xa0000057 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000057 + +Broken seed 0xa0000058 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000058 + +Broken seed 0xa0000059 => 0 with key[16] of all 0 bytes +Bad seed 0x6000005b + +Broken seed 0x6000005c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000050 + +Broken seed 0x80000051 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000005c + +Broken seed 0x6000005d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000005d + +Broken seed 0x6000005e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000059 + +Broken seed 0x2000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000049 + +Broken seed 0xe000004a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000004a + +Broken seed 0xe000004b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004e + +Broken seed 0x0000004f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000061 + +Broken seed 0xc0000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000005c + +Broken seed 0x4000005d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000005d + +Broken seed 0x4000005e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000059 + +Broken seed 0xa000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000051 +Bad seed 0xa000005a +Bad seed 0x6000005e + +Broken seed 0x6000005f => 0 with key[16] of all 0 bytes + +Broken seed 0xa000005b => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000005b +Bad seed 0x2000005a +Bad seed 0xc0000062 + +Broken seed 0xa000005c => 0 with key[16] of all 0 bytes +Bad seed 0xe000004b + !!!!! +Broken seed 0xe000004c => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x2000005b => 0 with key[16] of all 0 bytes + +Broken seed 0x80000052 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000063 +Bad seed 0x6000005f + +Broken seed 0x60000060 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000064 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000005e + +Broken seed 0x4000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000005f + +Broken seed 0x40000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000004f + +Broken seed 0x00000050 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000050 +Bad seed 0xa000005c + +Broken seed 0x00000051 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000005d => 0 with key[16] of all 0 bytes +Bad seed 0xe000004c + +Broken seed 0xe000004d => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000005d +Bad seed 0x00000051 + +Broken seed 0x00000052 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000005e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000064 + !!!!! +Broken seed 0xc0000065 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000052 + +Broken seed 0x80000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000052 + +Broken seed 0x00000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000053 + +Broken seed 0x00000054 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000004d + +Broken seed 0xe000004e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000005e + +Broken seed 0xa000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000005f + +Broken seed 0xa0000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000060 + +Broken seed 0x60000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000061 + +Broken seed 0x60000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000005b + +Broken seed 0x2000005c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000005c + +Broken seed 0x2000005d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000005d +Bad seed 0xc0000065 + +Broken seed 0xc0000066 => 0 with key[16] of all 0 bytes + +Broken seed 0x2000005e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000060 + +Broken seed 0x40000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000061 + +Broken seed 0x40000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000062 +Bad seed 0x80000053 + +Broken seed 0x80000054 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000063 +Bad seed 0x80000054 + +Broken seed 0x40000064 => 0 with key[16] of all 0 bytes + +Broken seed 0x80000055 => 0 with key[16] of all 0 bytes +Bad seed 0xa0000060 + +Broken seed 0xa0000061 => 0 with key[16] of all 0 bytes +Bad seed 0x00000054 + !!!!! !!!!! !!!!!Bad seed 0x80000055 + +Broken seed 0x00000055 => 0 with key[16] of all 0 bytes +Bad seed 0x60000062 +Bad seed 0xe000004e + +Broken seed 0x60000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000066 + +Broken seed 0xe000004f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x60000063 + +Broken seed 0x60000064 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000067 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000056 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000005e + +Broken seed 0x2000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000005f + +Broken seed 0x20000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000060 + +Broken seed 0x20000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000061 + +Broken seed 0x20000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000064 +Bad seed 0xa0000061 + +Broken seed 0x40000065 => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000062 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000065 +Bad seed 0x20000062 + +Broken seed 0x20000063 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000066 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000066 +Bad seed 0x00000055 + +Broken seed 0x00000056 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000067 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000064 + +Broken seed 0x60000065 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000056 +Bad seed 0xc0000067 + +Broken seed 0xc0000068 => 0 with key[16] of all 0 bytes +Bad seed 0x80000056 + +Broken seed 0x00000057 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000057 + +Broken seed 0x00000058 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000057 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x00000058 + +Broken seed 0x00000059 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000059 + +Broken seed 0x0000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000005a + +Broken seed 0x0000005b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000005b +Bad seed 0x20000063 +Bad seed 0xa0000062 + +Broken seed 0x20000064 => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000063 => 0 with key[16] of all 0 bytes + +Broken seed 0x0000005c => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000005c + !!!!!Bad seed 0x60000065 +Bad seed 0x20000064 + +Broken seed 0x0000005d => 0 with key[16] of all 0 bytes +Bad seed 0x40000067 + +Broken seed 0x40000068 => 0 with key[16] of all 0 bytes + +Broken seed 0x60000066 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000065 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000068 + +Broken seed 0xc0000069 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!! !!!!!Bad seed 0x0000005d + +Broken seed 0x0000005e => 0 with key[16] of all 0 bytes +Bad seed 0x80000057 +Bad seed 0xc0000069 + !!!!! +Broken seed 0xc000006a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000063 + +Broken seed 0xa0000064 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000058 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000066 + +Broken seed 0x60000067 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000067 + +Broken seed 0x60000068 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000068 + +Broken seed 0x60000069 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000004f + +Broken seed 0xe0000050 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000068 + +Broken seed 0x40000069 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000050 + +Broken seed 0xe0000051 => 0 with key[16] of all 0 bytes +Bad seed 0x20000065 + !!!!! +Broken seed 0x20000066 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000064 + +Broken seed 0xa0000065 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000065 +Bad seed 0x80000058 + +Broken seed 0x80000059 => 0 with key[16] of all 0 bytes +Bad seed 0x60000069 + +Broken seed 0xa0000066 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x6000006a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000066 + +Broken seed 0xa0000067 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000005e + +Broken seed 0x0000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000069 + +Broken seed 0x4000006a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000006a + +Broken seed 0x4000006b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000006b +Bad seed 0xe0000051 + +Broken seed 0xe0000052 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000052 +Bad seed 0x20000066 + +Broken seed 0x20000067 => 0 with key[16] of all 0 bytes +Bad seed 0xc000006a + !!!!! +Broken seed 0xc000006b => 0 with key[16] of all 0 bytes +Bad seed 0x20000067 + +Broken seed 0xe0000053 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000053 + +Broken seed 0xe0000054 => 0 with key[16] of all 0 bytes + +Broken seed 0x20000068 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000068 + !!!!! !!!!! +Broken seed 0x20000069 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000006c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000059 + +Broken seed 0x8000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000006c + +Broken seed 0x4000006d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000067 + +Broken seed 0xa0000068 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000068 + +Broken seed 0xa0000069 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000006a + +Broken seed 0x6000006b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000006b + +Broken seed 0x6000006c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000005f + +Broken seed 0x00000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000060 + +Broken seed 0x00000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000061 + +Broken seed 0x00000062 => 0 with key[16] of all 0 bytes +Bad seed 0xc000006b + +Broken seed 0xc000006c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000054 + +Broken seed 0xe0000055 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000062 + !!!!! +Broken seed 0x00000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000005a + +Broken seed 0x8000005b => 0 with key[16] of all 0 bytes +Bad seed 0xc000006c + !!!!! +Broken seed 0xc000006d => 0 with key[16] of all 0 bytes +Bad seed 0xe0000055 +Bad seed 0x20000069 +Bad seed 0x00000063 + !!!!! +Broken seed 0x00000064 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000056 => 0 with key[16] of all 0 bytes +Bad seed 0x00000064 +Bad seed 0xc000006d + +Broken seed 0xc000006e => 0 with key[16] of all 0 bytes + +Broken seed 0x2000006a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x2000006a + +Broken seed 0x2000006b => 0 with key[16] of all 0 bytes +Bad seed 0xa0000069 + !!!!! !!!!!Bad seed 0xc000006e + +Broken seed 0xc000006f => 0 with key[16] of all 0 bytes + +Broken seed 0xa000006a => 0 with key[16] of all 0 bytes + +Broken seed 0x00000065 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x6000006c + +Broken seed 0x6000006d => 0 with key[16] of all 0 bytes +Bad seed 0x4000006d + !!!!! +Broken seed 0x4000006e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000006e + +Broken seed 0x4000006f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000006a + +Broken seed 0xa000006b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000006b +Bad seed 0x4000006f +Bad seed 0xe0000056 + +Broken seed 0xa000006c => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000070 => 0 with key[16] of all 0 bytes +Bad seed 0x2000006b + +Broken seed 0x2000006c => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xe0000057 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x8000005b + +Broken seed 0x8000005c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000065 +Bad seed 0x6000006d +Bad seed 0x40000070 + +Broken seed 0x40000071 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x6000006e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000006f + +Broken seed 0x00000066 => 0 with key[16] of all 0 bytes + +Broken seed 0xc0000070 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000005c + !!!!! +Broken seed 0x8000005d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000006e + +Broken seed 0x6000006f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000070 + +Broken seed 0xc0000071 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000071 + +Broken seed 0xc0000072 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000072 + +Broken seed 0xc0000073 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000057 + +Broken seed 0xe0000058 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000073 + !!!!!Bad seed 0xe0000058 +Bad seed 0x40000071 + +Broken seed 0xc0000074 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000072 => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000059 => 0 with key[16] of all 0 bytes +Bad seed 0xa000006c +Bad seed 0xc0000074 + +Broken seed 0xc0000075 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000006d => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!!Bad seed 0x2000006c + +Broken seed 0x2000006d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000075 + +Broken seed 0xc0000076 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000005d + +Broken seed 0x8000005e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000006d + +Broken seed 0xa000006e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000006f + +Broken seed 0x60000070 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000005e + +Broken seed 0x8000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000066 + +Broken seed 0x00000067 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000067 + +Broken seed 0x00000068 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000076 + +Broken seed 0xc0000077 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000077 +Bad seed 0x2000006d + +Broken seed 0x2000006e => 0 with key[16] of all 0 bytes + +Broken seed 0xc0000078 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000059 + +Broken seed 0xe000005a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000072 + !!!!! +Broken seed 0x40000073 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000005a + +Broken seed 0xe000005b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000070 + +Broken seed 0x60000071 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000071 + +Broken seed 0x60000072 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000005f + +Broken seed 0x80000060 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000060 +Bad seed 0x60000072 +Bad seed 0x00000068 + +Broken seed 0x60000073 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000069 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000078 + +Broken seed 0x80000061 => 0 with key[16] of all 0 bytes + +Broken seed 0xc0000079 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x00000069 + +Broken seed 0x0000006a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000006e + +Broken seed 0x2000006f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000006f + !!!!!Bad seed 0xa000006e + +Broken seed 0xa000006f => 0 with key[16] of all 0 bytes + +Broken seed 0x20000070 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000006a + !!!!! +Broken seed 0x0000006b => 0 with key[16] of all 0 bytes +Bad seed 0x40000073 + +Broken seed 0x40000074 => 0 with key[16] of all 0 bytes +Bad seed 0xe000005b + !!!!! +Broken seed 0xe000005c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000005c + !!!!!Bad seed 0x80000061 + +Broken seed 0xe000005d => 0 with key[16] of all 0 bytes + +Broken seed 0x80000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000062 +Bad seed 0x60000073 + !!!!!Bad seed 0xe000005d + +Broken seed 0xe000005e => 0 with key[16] of all 0 bytes + +Broken seed 0x60000074 => 0 with key[16] of all 0 bytes + +Broken seed 0x80000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000079 + +Broken seed 0xc000007a => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x60000074 + +Broken seed 0x60000075 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000070 + +Broken seed 0x20000071 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000075 + +Broken seed 0x60000076 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000076 + +Broken seed 0x60000077 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000074 + +Broken seed 0x40000075 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000075 + +Broken seed 0x40000076 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000006b + +Broken seed 0x0000006c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000006c + +Broken seed 0x0000006d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000006d + +Broken seed 0x0000006e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000005e + +Broken seed 0xe000005f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000007a + +Broken seed 0xc000007b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000007b + +Broken seed 0xc000007c => 0 with key[16] of all 0 bytes +Bad seed 0x80000063 + +Broken seed 0x80000064 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa000006f + +Broken seed 0xa0000070 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000070 + +Broken seed 0xa0000071 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000071 + +Broken seed 0xa0000072 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000071 + +Broken seed 0x20000072 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000077 + +Broken seed 0x60000078 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000078 + +Broken seed 0x60000079 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000076 + +Broken seed 0x40000077 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000079 +Bad seed 0x0000006e + +Broken seed 0x6000007a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000077 +Bad seed 0x6000007a + +Broken seed 0x40000078 => 0 with key[16] of all 0 bytes + +Broken seed 0x6000007b => 0 with key[16] of all 0 bytes + +Broken seed 0x0000006f => 0 with key[16] of all 0 bytes +Bad seed 0x80000064 + !!!!! !!!!!Bad seed 0x0000006f +Bad seed 0xc000007c + +Broken seed 0x80000065 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000078 +Bad seed 0x20000072 + +Broken seed 0x20000073 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000073 + +Broken seed 0x20000074 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000079 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x00000070 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc000007d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000005f + !!!!!Bad seed 0xc000007d + +Broken seed 0xe0000060 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000007e => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x80000065 +Bad seed 0xa0000072 + +Broken seed 0x80000066 => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000073 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000073 + +Broken seed 0xa0000074 => 0 with key[16] of all 0 bytes +Bad seed 0xc000007e + +Broken seed 0xc000007f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000007f + +Broken seed 0xc0000080 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000080 + +Broken seed 0xc0000081 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000070 + !!!!! +Broken seed 0x00000071 => 0 with key[16] of all 0 bytes +Bad seed 0xc0000081 + !!!!! +Broken seed 0xc0000082 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000007b + +Broken seed 0x6000007c => 0 with key[16] of all 0 bytes +Bad seed 0x80000066 + +Broken seed 0x80000067 => 0 with key[16] of all 0 bytes +Bad seed 0x00000071 + !!!!!Bad seed 0x6000007c + !!!!! +Broken seed 0x6000007d => 0 with key[16] of all 0 bytes +Bad seed 0x80000067 + !!!!!Bad seed 0x6000007d + !!!!! +Broken seed 0x00000072 => 0 with key[16] of all 0 bytes + +Broken seed 0x6000007e => 0 with key[16] of all 0 bytes +Bad seed 0xa0000074 + +Broken seed 0x80000068 => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000075 => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!!Bad seed 0x20000074 +Bad seed 0x80000068 + +Broken seed 0x20000075 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000069 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000069 +Bad seed 0xa0000075 + +Broken seed 0x8000006a => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000076 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000060 + !!!!! +Broken seed 0xe0000061 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000007e + +Broken seed 0x6000007f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000007f + +Broken seed 0x60000080 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000072 +Bad seed 0x20000075 + +Broken seed 0x20000076 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000073 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x40000079 + +Broken seed 0x4000007a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000007a + +Broken seed 0x4000007b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000082 + +Broken seed 0xc0000083 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000083 + +Broken seed 0xc0000084 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000006a + +Broken seed 0x8000006b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000006b + +Broken seed 0x8000006c => 0 with key[16] of all 0 bytes +Bad seed 0xa0000076 + !!!!!Bad seed 0x8000006c + +Broken seed 0xa0000077 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000080 + +Broken seed 0x8000006d => 0 with key[16] of all 0 bytes + +Broken seed 0x60000081 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000073 + +Broken seed 0x00000074 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000077 + !!!!!Bad seed 0x8000006d + +Broken seed 0x8000006e => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000078 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x00000074 + +Broken seed 0x00000075 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000075 + +Broken seed 0x00000076 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000076 +Bad seed 0xc0000084 + +Broken seed 0xc0000085 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000077 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xe0000061 + +Broken seed 0xe0000062 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000077 + +Broken seed 0x00000078 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000078 + +Broken seed 0x00000079 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000081 + +Broken seed 0x60000082 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000082 +Bad seed 0x00000079 + +Broken seed 0x0000007a => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x60000083 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000007b + +Broken seed 0x4000007c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000006e +Bad seed 0x4000007c + +Broken seed 0x4000007d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000007d + +Broken seed 0x4000007e => 0 with key[16] of all 0 bytes + +Broken seed 0x8000006f => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xa0000078 + +Broken seed 0xa0000079 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000062 + +Broken seed 0xe0000063 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x8000006f + +Broken seed 0x80000070 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000007a + +Broken seed 0x0000007b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000007b + +Broken seed 0x0000007c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000083 + +Broken seed 0x60000084 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000084 + +Broken seed 0x60000085 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000085 + +Broken seed 0x60000086 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000085 + +Broken seed 0xc0000086 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000079 + +Broken seed 0xa000007a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000007a + +Broken seed 0xa000007b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000007e + +Broken seed 0x4000007f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000063 + +Broken seed 0xe0000064 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe0000064 + +Broken seed 0xe0000065 => 0 with key[16] of all 0 bytes +Bad seed 0x80000070 + +Broken seed 0x80000071 => 0 with key[16] of all 0 bytes +Bad seed 0x0000007c + +Broken seed 0x0000007d => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x20000076 + !!!!! +Broken seed 0x20000077 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000071 + +Broken seed 0x80000072 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000072 + +Broken seed 0x80000073 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000086 + +Broken seed 0xc0000087 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000087 + +Broken seed 0xc0000088 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000088 + +Broken seed 0xc0000089 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000089 + +Broken seed 0xc000008a => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000008a + +Broken seed 0xc000008b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000007f + +Broken seed 0x40000080 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000008b +Bad seed 0xa000007b + +Broken seed 0xc000008c => 0 with key[16] of all 0 bytes + +Broken seed 0xa000007c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa000007c +Bad seed 0x0000007d + !!!!!Bad seed 0xc000008c + +Broken seed 0x0000007e => 0 with key[16] of all 0 bytes +Bad seed 0x60000086 + !!!!! +Broken seed 0x60000087 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000007d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000007e + +Broken seed 0xc000008d => 0 with key[16] of all 0 bytes + +Broken seed 0x0000007f => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x60000087 +Bad seed 0xe0000065 + +Broken seed 0xe0000066 => 0 with key[16] of all 0 bytes +Bad seed 0x20000077 + +Broken seed 0x60000088 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x20000078 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000088 + +Broken seed 0x60000089 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x60000089 +Bad seed 0x40000080 + +Broken seed 0x40000081 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x6000008a => 0 with key[16] of all 0 bytes +Bad seed 0x80000073 +Bad seed 0xa000007d + +Broken seed 0x80000074 => 0 with key[16] of all 0 bytes +Bad seed 0x40000081 + !!!!! +Broken seed 0x40000082 => 0 with key[16] of all 0 bytes + +Broken seed 0xa000007e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000074 + !!!!! !!!!! +Broken seed 0x80000075 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000082 + +Broken seed 0x40000083 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000083 + +Broken seed 0x40000084 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000084 + +Broken seed 0x40000085 => 0 with key[16] of all 0 bytes +Bad seed 0xe0000066 + +Broken seed 0xe0000067 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000078 + +Broken seed 0x20000079 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000079 + +Broken seed 0x2000007a => 0 with key[16] of all 0 bytes +Bad seed 0x0000007f + !!!!! !!!!!Bad seed 0x40000085 +Bad seed 0xa000007e + +Broken seed 0x00000080 => 0 with key[16] of all 0 bytes + +Broken seed 0x40000086 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x40000086 +Bad seed 0x2000007a + !!!!! +Broken seed 0x2000007b => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000008a + +Broken seed 0x40000087 => 0 with key[16] of all 0 bytes +Bad seed 0xc000008d +Bad seed 0x2000007b + +Broken seed 0xa000007f => 0 with key[16] of all 0 bytes + +Broken seed 0x2000007c => 0 with key[16] of all 0 bytes + +Broken seed 0x6000008b => 0 with key[16] of all 0 bytes + +Broken seed 0xc000008e => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!!Bad seed 0x00000080 + !!!!! +Broken seed 0x00000081 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x2000007c + !!!!! +Broken seed 0x2000007d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x6000008b +Bad seed 0xe0000067 + +Broken seed 0x6000008c => 0 with key[16] of all 0 bytes + +Broken seed 0xe0000068 => 0 with key[16] of all 0 bytes +Bad seed 0xa000007f +Bad seed 0x2000007d +Bad seed 0x80000075 + !!!!! +Broken seed 0x80000076 => 0 with key[16] of all 0 bytes +Bad seed 0x6000008c + +Broken seed 0x2000007e => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! +Broken seed 0x6000008d => 0 with key[16] of all 0 bytes + +Broken seed 0xa0000080 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xa0000080 +Bad seed 0x40000087 + +Broken seed 0xa0000081 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x40000088 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc000008e +Bad seed 0x00000081 + +Broken seed 0x00000082 => 0 with key[16] of all 0 bytes + +Broken seed 0xc000008f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc000008f + !!!!!Bad seed 0x00000082 + +Broken seed 0x00000083 => 0 with key[16] of all 0 bytes +Bad seed 0x80000076 + !!!!!Bad seed 0x00000083 + +Broken seed 0xc0000090 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000090 + +Broken seed 0xc0000091 => 0 with key[16] of all 0 bytes +Bad seed 0xe0000068 + !!!!!Bad seed 0xc0000091 + +Broken seed 0x00000084 => 0 with key[16] of all 0 bytes +Bad seed 0x2000007e + !!!!! +Broken seed 0xe0000069 => 0 with key[16] of all 0 bytes + +Broken seed 0x2000007f => 0 with key[16] of all 0 bytes +Bad seed 0xa0000081 +Bad seed 0x40000088 + +Broken seed 0xa0000082 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000084 + +Broken seed 0x80000077 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000085 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0x40000089 => 0 with key[16] of all 0 bytes + !!!!! !!!!! +Broken seed 0xc0000092 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000092 + +Broken seed 0xc0000093 => 0 with key[16] of all 0 bytes +Bad seed 0x40000089 +Bad seed 0x00000085 +Bad seed 0x6000008d + +Broken seed 0x6000008e => 0 with key[16] of all 0 bytes +Bad seed 0x80000077 + !!!!! +Broken seed 0x80000078 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000086 => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x4000008a => 0 with key[16] of all 0 bytes + !!!!! !!!!! !!!!! !!!!!Bad seed 0x2000007f + +Broken seed 0x20000080 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000080 + +Broken seed 0x20000081 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000081 + +Broken seed 0x20000082 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000082 + +Broken seed 0x20000083 => 0 with key[16] of all 0 bytes +Bad seed 0xe0000069 + +Broken seed 0xe000006a => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0xc0000093 + +Broken seed 0xc0000094 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000086 + +Broken seed 0x00000087 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000087 + +Broken seed 0x00000088 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x00000088 +Bad seed 0x4000008a +Bad seed 0x80000078 + +Broken seed 0x4000008b => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x80000079 => 0 with key[16] of all 0 bytes + +Broken seed 0x00000089 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000008b + +Broken seed 0x4000008c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x4000008c + +Broken seed 0x4000008d => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000006a +Bad seed 0xa0000082 + +Broken seed 0xe000006b => 0 with key[16] of all 0 bytes +Bad seed 0x4000008d + !!!!!Bad seed 0x20000083 + +Broken seed 0xa0000083 => 0 with key[16] of all 0 bytes +Bad seed 0xe000006b + +Broken seed 0xe000006c => 0 with key[16] of all 0 bytes + +Broken seed 0x4000008e => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xe000006c + !!!!! !!!!! +Broken seed 0xe000006d => 0 with key[16] of all 0 bytes + +Broken seed 0x20000084 => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x4000008e + +Broken seed 0x4000008f => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000094 +Bad seed 0x00000089 + +Broken seed 0xc0000095 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x80000079 + +Broken seed 0x8000007a => 0 with key[16] of all 0 bytes + +Broken seed 0x0000008a => 0 with key[16] of all 0 bytes +Bad seed 0xc0000095 + !!!!!Bad seed 0x6000008e + +Broken seed 0x6000008f => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0xc0000096 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0xc0000096 +Bad seed 0x0000008a + +Broken seed 0x0000008b => 0 with key[16] of all 0 bytes + !!!!! !!!!!Bad seed 0x0000008b + +Broken seed 0x0000008c => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x20000084 + +Broken seed 0x20000085 => 0 with key[16] of all 0 bytes + !!!!!Bad seed 0x0000008c +Bad seed 0x4000008f + +Broken seed 0x40000090 => 0 with key[16] of all 0 bytes +Bad seed 0x20000085 + +Broken seed 0x0000008d => 0 with key[16] of all 0 bytes + !!!!! +Broken seed 0x20000086 => 0 with key[16] of all 0 bytes +Bad seed 0x6000008f + +Broken seed 0x60000090 => 0 with key[16] of all 0 bytes + !!!!! \ No newline at end of file